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





-> ON INPUT







이처럼
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 |