인터페이스를 대상으로 하는 액션
인터페이스(Interface)를 구현한 여러 객체 유형(Object type)에 공통 액션을 적용할 수 있습니다. 인터페이스 액션 규칙은 객체의 생성, 수정, 삭제와 링크 변경을 정의합니다. 인터페이스 참조 매개변수(Interface reference parameter)는 해당 인터페이스를 구현하는 어느 유형의 객체든 입력으로 받습니다. 수정과 삭제 규칙에 필요한 입력이며, 다른 액션 규칙에서도 객체를 참조하는 데 사용할 수 있습니다.
인터페이스 액션 유형 제약은 구현 유형이 어떤 구체 액션을 제공해야 하는지 정하는 계약입니다. 액션 규칙은 실제 편집을 수행하고, 제약은 그 계약에 맞는 액션을 매핑합니다. TypeScript OSDK에서는 매핑된 구체 액션을 찾아 호출할 수 있습니다. 제약 자체를 편집 규칙이나 독립적인 실행 액션으로 취급하지 않습니다.
공통 속성과 실행 범위
가상의 Ticket 인터페이스를 Feature request와 Bug 유형이 구현한다고 가정합니다. Create a ticket은 두 유형의 객체를 만들 수 있지만, 인터페이스에서 공유하는 속성 범위로 규칙을 구성해야 합니다. Bug에만 있는 속성을 이 공통 액션의 규칙으로 생성하거나 수정할 수는 없습니다.
제출 조건(Submission criteria)은 모든 구현 유형에 동일하게 적용됩니다. 하나의 인터페이스 액션 안에서 유형별로 다른 실행 권한을 설정할 수 없습니다. 구성 전에 누가 각 구현 유형의 객체를 생성, 수정 또는 삭제하게 되는지 검토해야 합니다.
액션 유형 생성
- Ontology Manager에서
New의Action type을 선택합니다. Interfaces에서 대상 인터페이스와 규칙 종류를 선택합니다.- 속성을 사용하는 규칙이면 포함할 공통 속성을 선택합니다.
- 이름과 설명 등 메타데이터를 입력합니다. 특정 구현 유형에만 맞는 설명을 사용하지 않습니다.
Submission criteria에서 실행 가능한 사용자를 설정합니다. 더 복잡한 조건은 이후에 구성할 수 있습니다. 선택한 사용자는 대상 객체를 편집할 권한도 충족해야 합니다.Create를 선택합니다.
객체의 액션 드롭다운에는 그 객체에 적용 가능한 구체 유형의 액션과 인터페이스 액션이 함께 나타납니다. 기본 권한 모델은 일반 액션 권한과 같습니다.
생성과 기본 키
생성 규칙에는 Object type 매개변수가 자동으로 추가됩니다. 폼이나 표에서 사용자가 어떤 구현 유형의 객체를 만들지 선택합니다.
객체를 생성하려면 기본 키(Primary key)가 필요합니다. 인터페이스와 생성 규칙에 각 구현 유형의 기본 키로 사용할 속성이 포함되어 있어야 합니다. 선택한 유형의 기본 키를 규칙에서 지정하지 않으면 제출 시 실패합니다.
수정과 삭제
수정 규칙은 선택한 인터페이스로 제한된 인터페이스 참조 입력을 자동으로 만듭니다. 일반 객체 참조가 한 유형의 객체를 선택하는 것과 달리, 이 입력에서는 인터페이스를 구현한 여러 유형의 객체를 선택할 수 있습니다.
기본 키 값은 어떤 액션으로도 수정할 수 없습니다. 같은 인터페이스 속성이라도 구현 유형에 따라 기본 키에 매핑되어 있는지 확인해야 합니다. 예를 들어 Bug 유형이 Title을 기본 키로 사용하면 제목을 바꾸는 Edit ticket 액션은 해당 객체에서 실패합니다.
삭제 규칙도 특정 인터페이스로 제한된 참조 매개변수로 기존 객체를 지정합니다. 폼이나 표에서 선택한 구체 객체가 삭제 대상입니다.
인터페이스 링크 생성과 삭제
두 규칙 모두 인터페이스와 그 인터페이스에 정의한 링크 제약(Link constraint)을 선택합니다. 링크 제약의 양끝이 인터페이스이면 출발점과 도착점에 각각 인터페이스 참조 입력이 생성됩니다. 도착점이 구체 객체 유형이면 출발점은 인터페이스 참조, 도착점은 객체 참조 입력이 됩니다.
| 구분 | 자동 생성 입력을 대신할 수 있는 대상 | 같은 제약에 구체 링크 구현이 여러 개일 때 |
|---|---|---|
Create interface link | 기존 객체를 가리키는 객체 참조나 인터페이스 참조 입력, 또는 같은 액션의 Create object나 Create object(s) of interface 규칙으로 생성한 객체 | 어느 링크를 만들지 결정할 수 없어 액션이 실패합니다. |
Delete interface link | 기존 객체를 가리키는 객체 참조나 인터페이스 참조 입력만 사용합니다. | 각 구체 링크 유형에서 입력으로 지정한 객체들 사이의 링크를 삭제하려고 시도합니다. |
일대다 링크 생성은 다수 쪽 객체의 외래 키(Foreign key)를 수정합니다. 같은 액션에 Create object나 Modify object(s) 규칙이 있고 그 외래 키도 설정한다면, 두 규칙의 편집이 충돌하지 않게 구성해야 합니다.
지원 범위와 유형별 제어
Ontology Manager에서는 인터페이스 액션을 생성하고, 제출 조건과 덮어쓰기에서 인터페이스 매개변수를 사용할 수 있습니다. Object Explorer와 Object Views는 인터페이스에 정의된 액션을 표시합니다.
특정 구현 유형에서 인터페이스 액션을 허용하지 않으려면 Ontology Manager에서 그 객체 유형의 Interfaces 탭을 열고 Interface action control에서 상속받는 액션을 제어합니다. 하나의 공통 액션에 유형별 제출 권한을 따로 넣는 방식으로 대체할 수는 없습니다.
인터페이스 기반 액션은 액션 로그를 지원하지 않으며 함수와 함께 사용할 수 없습니다. 이 제한은 인터페이스 액션의 기능 범위에 관한 것입니다. 인터페이스를 사용하는 일반 함수나 OSDK의 지원 범위는 각각 구분해서 확인해야 합니다.