목차
ACTION
Action은 Business Object의 데이터에 대해 비즈니스 로직을 실행하는 Method 입니다. 일반적인 CRUD 표준작업 외에 특정 상태를 변경하거나 추가적인 연산을 수행할때 사용합니다. Action의 주요 유형으로는 다음과 같습니다.
1. Instance Action : 특정 행을 지정하여 수행하는 Action으로 가장 일반적인 형태의 Action 입니다.
2. Static Action : 특정 행 지정없이 BO 전체 레벨에서 실행되는 Action 입니다.
3. Factory Action : Action의 실행 결과로 신규 행을 생성하는 Action 입니다. 보통 행 복사 기능에 주로 사용합니다.
4. Internal Action : BO 내부에서만 호출하여 사용하는 Action입니다.
간단하게 RAP에서의 Action은 Classic ABAP에서 버튼을 추가하고 PAI User-Command 에 로직을 구현하는것과 비슷하다고 생각하시면 됩니다.
Instance Action
Booked 라는 버튼을 하나 만들겠습니다. 데이터를 선택하고 Booked 버튼을 클릭하면 선택된 행데 대해서 Travel Status 를 Booked(B) 상태로 Update 하는 Action을 구현해 보겠습니다. Interface Behavior Definition 으로 이동합니다.
Booked 라는 버튼을 클릭했을때 수행되는 Action을 아래와 같이 추가합니다. Action 앞에 아무것도 입력하지 않으면 Instance Action이 됩니다. Action 명 뒤에 나오는 result는 Action 수행 후 결과값을 반환하겠다는 의미입니다. 그뒤에 [1]은 결과값을 1개만 반환하겠다는 뜻이고 $self는 반환하는 결과값에 대한 타입입니다. $self라고 하면 현재 Action 이 수행되고 있는 Entity 즉 Travel Entity 의 구조로 반환되게 됩니다. 만약 다른 특정 구조로 반환을 원한다면 $self 대신 특정 구조체를 입력하면 됩니다. 그럼 Quick Assist 기능으로 Action에 대한 Method를 생성해 보겠습니다.

Method가 생성되면 Parameter 를 한번 확인해 봅니다. 입력받은 keys정보로 Entity를 읽어서 Status를 'B'로 Update하고 result 로 결과를 반환하면 될 것 같습니다. 먼저 화면에 버튼을 만들고 데이터 선택 후 버튼을 눌렀을때 keys로 값이 어떻게 들어오는지 확인해 보겠습니다.

Metadata Extension을 열어서 아래와 같이 Action 버튼을 추가합니다. 위치는 가독성을 위해 가장 첫번째 필드에 추가하는게 보통이지만 해당 Action 과 관계가 있는 필드에 추가를 해도 상관 없습니다.

마지막으로 Projection Behavior Definition에도 Action 을 추가해주고 App을 실행시켜 보겠습니다.

버튼이 추가되었습니다. Instance Action 이기 때문에 데이터가 선택되어야만 버튼이 활성화 됩니다. Method에 디버깅을 걸고 Action 버튼을 클릭해 보겠습니다.

선택한 3건이 한번에 들어오지 않고 한건씩 총 3번 호출되는걸 알 수 있습니다. 그럼 로직을 구현해 보겠습니다.

먼저 입력받은 keys의 값으로 Travel Status 를 'B'로 Update를 합니다. 그 후에 새로 Entity를 읽어서 Update된 정보를 Result로 반환하는 간단한 로직입니다. App을 실행시켜 제대로 반영이 되는지 확인해 보겠습니다.

아래와 같이 데이터를 선택합니다. 필드 갯수가 많아 필드가 잘리는 경우 우측 상단의 "Show More per Row" 버튼을 클릭하면 아래와 같이 모든 필드들을 볼수 있습니다. 이제 set Booked 버튼을 클릭해 보겠습니다.

정상적으로 상태가 변경되었습니다.

'RAP' 카테고리의 다른 글
| RAP 13 - MANAGED REPORT : VALIDATION (0) | 2026.08.03 |
|---|---|
| RAP 12 - MANAGED REPORT : EML (0) | 2026.07.26 |
| RAP 11 - MANAGED REPORT : Early numbering(2) (0) | 2026.07.21 |
| RAP 10 - MANAGED REPORT : Early numbering(1) (0) | 2026.07.09 |
| RAP 09 - MANAGED REPORT : Behavior Implementation (1) | 2026.07.06 |