Workshop에서 액션 구성과 실행
액션은 정한 규칙과 제출 조건으로 객체를 만들고, 수정하고, 삭제하거나 연결하는 업무 동작입니다. 액션 유형의 정의에서 입력 form을 생성하므로 같은 액션을 Workshop과 객체 뷰 등 여러 앱에 사용할 수 있습니다.
가상의 항공 업무에서는 다음과 같이 사용할 수 있습니다.
| 액션 | 변경 |
|---|---|
| Create New Flight | Flight 객체를 만들고 Flight Number, Time of Departure, Origin과 Destination을 설정합니다. |
| Delay Flight | 기존 Flight의 Time of Departure를 늦춥니다. |
| Modify Flight Destination | 기존 Flight의 Destination과 변경에 관한 Comment를 수정합니다. |
| Assign To Flight | Flight와 Passenger를 연결합니다. |
| 잘못 만든 Flight 삭제 | 잘못 생성한 객체를 제거합니다. |
조사 시작은 분석가에게 허용하고 종료는 관리자 그룹에 한정하는 식으로 실행 조건을 나눌 수 있습니다. 기본 정의와 편집 경로는 액션 개요 및 액션 유형 만들기에 설명합니다.
정의 권한과 실행 권한
프로젝트에 저장한 액션 유형의 정의는 프로젝트 및 자원의 권한으로 관리합니다. 액션 자체와 그 액션이 편집하는 온톨로지 리소스 유형에 필요한 편집 권한을 갖춰야 합니다. 구형 권한 모델을 사용하는 리소스는 온톨로지 역할 또는 데이터소스 파생 권한을 따릅니다.
앱에서 이미 정의한 액션을 실행하는 최종 사용자는 액션 정의의 편집 권한과 별도의 실행 권한 및 제출 조건을 충족해야 합니다. Workshop 모듈을 열 수 있다는 사실만으로 액션을 실행할 수 있는 것은 아닙니다.
목적지 변경 액션의 전제
아래는 가상의 Flight 유형과 Destination 및 Comment 속성을 사용합니다. 실제 온톨로지에서 대응하는 유형과 속성, 객체 편집 설정을 준비해야 합니다. 항공편 자체의 선택에는 기존 Flight 객체를 사용합니다.
액션 유형 생성
Ontology Manager의 Action types에서 New action type을 선택하거나, Flight 객체 유형의 액션 영역에서 Create new action type을 선택합니다.
표시 이름을 Modify Flight Destination으로 정하고 Flight 객체의 수정 동작을 선택합니다. 마법사의 Modify 또는 Modify object(s) 구성에서 Comment와 Destination을 변경할 속성으로 추가합니다.
Overview에서 API Name, 사용자에게 보이는 Display Name과 Description, Status를 구성합니다. API 이름은 외부에서 참조하는 식별자이므로 신중히 정합니다. 이름 변경은 experimental 상태에서만 가능하며 active 상태에서는 바꿀 수 없습니다.
Rules와 Parameters
Rules에서 객체 유형, 수정 규칙과 속성 매핑을 확인합니다. 추가로 수정할 속성이 필요하면 목록에서 더 선택할 수 있습니다.
Parameters에는 규칙에서 만든 입력이 나타납니다. 이 예제는 선택한 Flight, Modified Destination과 Comment 입력을 사용합니다.
제출 조건
Security & Submission Criteria의 Submission Criteria에서 Add a condition을 선택합니다. Parameter 조건으로 목적지 입력을 다음 정규식과 비교합니다.
^[A-Z]{3}$
이 조건은 EWR처럼 영문 대문자 세 자리 형식을 검사합니다. 실제로 등록된 공항 코드인지 조회하는 조건은 아닙니다. 실패 이유를 사용자에게 알릴 오류 메시지도 구성합니다.
Parameters 오른쪽 form 미리보기에서 값을 바꾸고 Submit으로 제출 가능 여부를 확인할 수 있습니다. 이 미리보기는 온톨로지에 액션을 실제 적용하지 않습니다. 아래 Workshop 실행 form의 Submit과 구분합니다.
Save를 선택하여 변경 목록을 검토하고 저장 확인을 진행합니다. 이 흐름에서는 처음 Save 뒤 두 차례의 추가 Save 확인을 거쳐 온톨로지 정의를 저장합니다.
Workshop 버튼에 연결
기본 모듈 구성을 준비한 뒤 Button Group이나 Inline Action 위젯으로 액션을 노출할 수 있습니다. 여기서는 Flight Inbox의 Button Group을 사용합니다.
Button Group을 추가하고 선택하면 오른쪽 Widget setup에 Button type, Button configuration과 Display & formatting이 나타납니다. Button type과 Display & formatting은 배치와 상세 표시를, Button configuration은 표시 정보와 실행할 동작을 정합니다.
Text를 Modify Destination으로 정하고 Color, Left icon과 Right icon을 지정합니다. 버튼의 레이블과 모양으로 사용자가 실행 결과를 예상할 수 있게 합니다.
색은 none, primary, success, warning과 danger의 Intent 또는 사용자 정의 색을 선택할 수 있습니다. Hex 코드로 지정하는 방식도 있습니다.
On click의 Select an action...에서 앞서 만든 목적지 변경 액션을 찾아 선택합니다. 해당 액션의 세 입력이 표시됩니다.
Parameter defaults
Add all parameters로 모든 입력을 한 번에 구성하거나 Remove all parameters로 위젯에 설정한 기본값을 지울 수 있습니다. 객체 목록, 객체 참조, 정수나 문자열 등 각 입력은 액션 유형의 매개변수에 대응합니다.
Selected Flight에는 항공편 표의 Active object 출력 변수를 기본값으로 연결합니다. 기본값을 지정한 매개변수에는 다음 표시 방식을 선택할 수 있습니다.
| 선택 | Form에서의 동작 |
|---|---|
| Visible | 기본 선택입니다. 값이 표시되며 사용자가 수정할 수 있습니다. |
| Hidden | 입력을 form에 표시하지 않습니다. |
| Disabled | 값을 표시하지만 읽기 전용입니다. |
이 예제에서는 Selected Flight를 Visible로 유지합니다. Modified Destination과 Comment에는 별도 기본값을 지정하지 않아 사용자가 입력할 빈 필드로 둡니다.
입력의 표시 방식과 실제 실행 권한은 별개입니다. 허용할 대상과 값은 액션의 권한 및 제출 조건으로 통제합니다.
실제 액션 제출
사용자가 Modify Destination 버튼을 누르면 form이 열립니다. Selected Flight는 현재 변수값으로 채우고 나머지 필드는 사용자가 입력합니다.
아직 목적지 형식이 맞지 않으면 아래의 1 issue에 포인터를 올려 원인을 확인할 수 있습니다.
입력과 제출 조건을 통과하면 Submit을 사용할 수 있습니다.
Workshop의 이 Submit은 액션을 실제 실행합니다. 성공하면 초록색 알림을 표시하고 선택한 Flight에 변경을 반영합니다.
액션과 이벤트 연결
위젯 설정 아래에서 액션 수명주기의 어느 시점에 이벤트를 실행할지 정합니다.
- On start of Action submission은 제출이 시작할 때 실행합니다.
- On successful completion of Action submission은 액션이 성공한 뒤 실행합니다.
데이터 새로고침, 페이지 이동과 변수 갱신을 이 시점에 연결할 수 있습니다. 시작 이벤트가 실행됐다는 사실을 액션 성공으로 해석하지 않습니다.
업로드 후 액션 실행
Media Uploader에서도 파일 업로드 뒤 액션을 실행하여 처리, 보강이나 연결 작업에 사용할 수 있습니다. 위젯 선택기 이름은 Media uploader (Legacy)이며 새 구성에서는 미디어 집합 목적지를 숨깁니다. 데이터셋과 폴더 목적지는 계속 사용할 수 있습니다.
새로 미디어 집합에 업로드하려면 Button Group에서 액션 form을 열거나 Inline Action 위젯을 사용합니다. 기존 업로드 구성과 목적지에 따라 특수 file identifier 값은 다음과 같습니다.
| 업로드 목적지 | 액션에 전달할 file identifier |
|---|---|
| 데이터셋 | 업로드한 파일명 |
| Compass 폴더 | 업로드한 파일 RID |
| 기존 미디어 집합 업로드 구성 | 업로드한 파일의 미디어 참조 |
여러 파일 업로드를 켜면 파일마다 액션을 한 번씩 실행하며 그 파일에 해당하는 식별자를 전달합니다. 업로드 버튼, 허용 확장자와 동적 목적지도 함께 구성합니다.
복잡한 편집 로직에는 함수 기반 액션을 같은 방식으로 연결할 수 있습니다.