SAP

FIELD, CHAIN 문

selectall 2025. 12. 3. 17:58

FEILD 문

: 특정 변수의 값을 추적하여 모듈의 실행 여부를 결정.

FIELD PARAM MODULE MODULE_TEST ON [REQUEST|INPUT}.
 

→ PARAM의 값이 변경되면 지정한 MODULE_TEST 를 실행.

※ 대표적으로 FIELD 문 과 같이 사용되는 ON REQUEST 혹은 ON INPUT.

 

1. ON REQUEST

: PARAM 의 값이 변할 때 마다 MODULE 실행

-> 처음 입력 후 다른 값 변경 될 때 탄다.

 

2. ON INPUT

: PARAM의 초기 값에서 다른 값으로 변할 때만 MODULE 실행

⇒ 값이 입력되면 무조건 실행

⇒ 어떠한 값을 입력하여 그 값으로 계속 유지되어도 이 필드에는 값이 계속 입력이 되는 것이기에 계속 탄다.

 


말로 하면 잘 모르겠으니 테스트 해보자.

* 나오고자 하는 결과 *

판매처 필드에 ON REQUEST와 ON INPUT 일 때 유효성을 검사하는 로직을 타는지 DEBUGGING으로 확인.

로직을 탄다면 해당 BP의 텍스트(이름)을 가져온다.

 

 

1. screen 에서 FIELD 와 모듈 선언.

 

 

 

* 판매처(PARTY_ID_RE)는 ON REQUEST으로, 청구처(ORDER_PARTY_ID)는 ON INPUT로 테스트

 

2. 해당 모듈의 상세로직에서 디버깅을 찍어준다.

 

 

3. 디버깅 타는지 확인

-> ON REQUEST

빈 값 엔터 시 디버깅 타지 않음.

 

1234 입력 후 엔터 시 디버깅 탐.
다시 엔터 시, 디버깅 타지 않는다.
다른 필드의 값을 넣을 시, 디버깅 타지 않는다.

-> ON INPUT

빈 값 엔터 시 디버깅 타지 않음.
 
1234 입력 후 엔터 시 디버깅 탐.
 
다시 엔터 시 디버깅 탐.
다른 필드의 값을 넣었을 경우에도 디버깅을 탄다.

 

이처럼

ON REQUEST 는

처음 값과 다를 경우, 입력된 값이 이전과 같을 경우 (다시 같은 값을 입력하는 경우 제외) 다시 로직을 타지 않는다.

 

ON INPUT 는

처음 값과 다를 경우 무조건 로직을 탄다.

다른 필드에 값이 들어가도 로직을 탄다.

 

그렇기에, 값 변경 시에만 로직을 타고 아닌 경우 번거로운 상황을 피하고 싶을 시에는 ON REQUEST

무조건, 로직을 타게 하고 싶을 땐 ON INPUT.

 

* 참고로 FIELD 문에 ON REQUEST 혹은 ON INPUT 없다면 무조건 로직을 탄다.


CHAIN 문

: 특정 변수들의 값을 추적하여 모듈의 실행 여부를 결정.

CHAIN. 
FIELD PARAM1.
FIELD PARAM2.

MODULE MOUDLE_TEST ON CHAIN {INPUT|REQUEST}.

ENDCHAIN.
 

→ PARAM1 과 PARAM2 중 하나의 값이 변경되면 지정한 MODULE 실행.

→ CHAIN 문 안에서도 ON CHAIN INPUT 혹은 ON CHAIN REQUEST 사용 가능.


말로 하면 잘 모르겠으니 테스트 해보자.

 

1. 독립적으로 필드를 사용하였던 것을 CHAIN문으로 바꾸어준다.

 

2. 판매처와 청구처의 텍스트 (이름)을 가져오는 로직에 디버깅을 찍어준다.

 

3. 디버깅 테스트

판매처, 청구처 빈 값 일때는 둘다 로직을 안탄다.
판매처만 값을 넣었을 때 디버깅을 탄다.
청구처만 값을 넣었을 때 디버깅을 탄다.

 

두 필드의 값을 넣었을 때 디버깅을 두번 탄다.
다른 필드의 값을 넣었을 때도 탄다.

-> CHAIN 문 시 ON INPUT, REQUEST 사용 하지 않으면 다른 필드의 값이 변경 되었을 때 로직을 타게 되었다.

 

4. ON CHAIN REQUEST TEST

 

-> 위에 체인문과 같이 해당 필드의 값 변경 시 디버깅을 탄다.

-> 하지만 다른 필드의 값 변경 시 해당 필드의 로직을 타지 않는다.

 

판매처 청구처 값이 있는 상태에서 다른 필드의 값 변경 시 디버깅 로직 안탐.

 

5. ON CHAIN INPUT TEST

-> 해당 필드의 값이 있다면 무조건 탄다.

-> 다른 필드의 값 변경 시에도 무조건 탄다.

'SAP' 카테고리의 다른 글

자주 쓰는 FUNCTION 모음  (0) 2025.12.08
NEW SYNTAX  (0) 2025.12.05
Field Catalog / Layout / Sort  (0) 2025.12.05
Hotspot_click 핫해 핫해  (0) 2025.12.05
통화 / 단위 Possible Entries (F4) 안 뜰 때  (0) 2025.12.03