Determination 예시
Determination 예시
1. Behavior Definition에 정의
1
determination set_lifecycle_status_init on modify { create }
2. Abap Class에 method 작성
determination 에 ctrl + 1, 자동생성 ```abap METHOD set_lifecycle_status_init.
” 1. [Entity 제어 선언] “ 비즈니스 객체(zbr_i_salesorder)의 데이터를 변경(MODIFY)하겠다고 선언합니다. “ IN LOCAL MODE를 사용하여 내부 로직으로 안전하게 실행합니다. MODIFY ENTITIES OF zbr_i_salesorder IN LOCAL MODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
" 2. [대상 엔티티 지정]
" 값을 수정할 대상 비즈니스 객체(엔티티)의 이름을 명시합니다.
ENTITY zbr_i_salesorder
" 3. [수정할 필드 명시]
" 업데이트할 3개의 필드를 괄호 ( ) 안에 '쉼표 없이 공백으로만' 나열합니다.
" 괄호 시작과 끝( 앞뒤 )에 반드시 공백이 있어야 에러가 나지 않습니다.
UPDATE FIELDS ( lifecycle_status devName description )
" 4. [데이터 매핑 및 값 할당]
" 입력 데이터(keys)를 순회하며 3개의 필드에 각각 값을 매핑합니다.
WITH VALUE #(
" 파라미터로 들어온 신규 데이터 배열(keys)을 하나씩 꺼내어 'key' 변수로 순회합니다.
FOR key IN keys (
" [식별자 매핑]
" 현재 순회 중인 레코드의 고유 키(Total Key)를 매핑하여 대상을 타겟팅합니다.
" 드래프트 상태든 액티브 상태든 %tky가 알아서 구별해 줍니다.
" 임시 변수.
%tky = key-%tky
" [필드 1: 상태 초기값]
" 해당 레코드의 상태 필드에 신규 생성 초기값인 'N'(New)을 할당합니다.
lifecycle_status = 'N'
" [필드 2: 개발자명 임시 세팅]
" devName 필드에 '아무개'라는 고정 문자열을 임시로 박아둡니다.
devName = '아무개'
" [필드 3: 기본 설명 추가]
" 임의로 추가한 세 번째 필드에 시스템이 자동 생성했다는 기본 텍스트를 할당합니다.
description = '시스템 자동 생성 오더'
)
).
ENDMETHOD. ```
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.