Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

액션 제출 조건

액션 제출 조건(Submission criteria)은 주어진 입력과 사용자 및 실행 맥락에서 액션(Action)을 제출할 수 있는지 결정합니다. 액션 유형(Action type)을 편집할 권한과는 별도이며 같은 객체 유형(Object type)에 있는 여러 액션도 각자 조건을 가집니다.

가상의 항공편에서 배정 Aircraft를 바꾸려면 사용자가 운항 통제 그룹에 속하고 항공기가 운영 중이어야 한다는 조건을 함께 둘 수 있습니다.

조건 템플릿

조건 하나는 두 값과 비교 연산자로 이루어집니다. Current user, Parameter와 Execution context 중 맥락을 선택합니다.

현재 사용자

Current User에서는 사용자 ID, 직접 또는 상속된 그룹 소속의 그룹 ID와 조직 등 Multipass 속성을 확인할 수 있습니다. 사용자 ID는 문자열이므로 고정 ID 목록이나 사용자 ID를 담은 문자열 입력과 비교합니다.

그룹 ID는 고정 그룹 선택 또는 다른 매개변수의 그룹 ID와 비교할 수 있습니다. Multipass 속성은 문자열 목록이며 문자열 또는 문자열 목록과 비교합니다. Other user attribute로 목록에 없는 속성을 정할 수도 있지만 사용자가 그 속성에 접근할 수 없으면 조건에 실패합니다.

그룹, 보안 표지(Marking)나 조직(Organization) 소속을 NOT으로 검사하지 않습니다. 범위가 제한된 토큰은 사용자의 권한 일부만 담으므로 실제 소속 속성이 빠질 수 있습니다. 부재를 NOT으로 뒤집으면 의도보다 넓은 권한을 허용하는 잘못된 구성이 됩니다.

매개변수

매개변수(Parameter) 값과 객체 참조가 가리키는 속성으로 업무 조건을 검사합니다. 예제에서는 Aircraft 입력의 운영 상태를 사용합니다.

Attachment와 Object set 입력은 제출 조건에서 지원하지 않으며 선택 목록에서도 제외됩니다.

실행 맥락

Execution context는 액션이 온톨로지 시나리오(Ontology scenario) 안에서 실행되는지 구분합니다. 특정 시나리오의 식별자를 알려 주는 조건은 아닙니다.

예를 들어 사용자 권한 조건을 (시나리오 실행 AND 계획 그룹 구성원) OR 운항 통제 그룹 구성원으로 구성하면 시나리오 안에서는 계획 담당자도 배정을 시험할 수 있습니다. 항공기 운영 상태처럼 공통으로 유지할 업무 조건은 별도로 명시합니다. 기본 데이터로 반영하는 시나리오 병합 액션의 권한은 따로 제한합니다.

비교할 값과 연산자

객체 참조나 목록 입력은 그 안의 어떤 값을 쓸지 선택합니다. 목록 내용 대신 길이를 비교할 수도 있습니다.

선택한 자료형에 맞는 연산자만 표시합니다. 매개변수를 바꾸면 이를 사용하는 조건도 다시 구성합니다.

다음 문자열은 비교 의미를 보여 주는 가상 값입니다. 실제 사용자 및 그룹 권한에는 이름이 아니라 해당 ID를 사용합니다.

단일 값 연산자예와 결과의미
isJohn Doe와 John Doe는 참정확히 같음
is notJohn Doe와 Maria Smith는 참서로 다름
matchesJohn Doe가 ^[AEIOU].*$에 맞는지는 거짓지정한 정규식과 일치
is less than4가 2보다 작은지는 거짓작은 값
is greater than or equals4가 2 이상인지는 참크거나 같음

^[AEIOU]는 첫 문자를 대문자 모음으로 제한하며, 뒤의 .*는 나머지 문자를 0개 이상 허용합니다.

목록 연산자예와 결과의미
includes[John Doe, Maria Smith]에 John Doe가 있으면 참왼쪽 목록에 오른쪽 값 하나가 있음
includes any[King Louis, John Doe]와 [John Doe, Maria Smith]는 참두 목록에 공통 값이 하나 이상 있음
is included inJohn Doe가 [John Doe, Maria Smith]에 포함되면 참왼쪽 값이 오른쪽 목록에 있음
each is[John Doe, Maria Smith]가 모두 John Doe인지는 거짓왼쪽의 모든 값이 오른쪽과 같음
each is not[John Doe, Maria Smith]가 각각 King Louis와 다르면 참왼쪽의 모든 값이 오른쪽과 다름

객체 참조 목록은 객체 값 또는 선택한 속성값의 목록으로 비교합니다. 사용자 그룹 목록과 특정 그룹 하나를 비교할 때에는 includes, 운영 상태를 정확히 비교할 때에는 is를 사용합니다.

오른쪽 값과 논리 결합

오른쪽에는 다른 입력, 고정값 또는 No value를 사용할 수 있습니다. No value는 비어 있거나 null인지 확인하며 선택지는 왼쪽 자료형에 따라 달라집니다.

운항 통제 권한이 항상 같은 그룹을 요구한다면 specific value에서 그 그룹을 고릅니다. 운영 상태도 specific value의 Yes와 비교할 수 있습니다.

논리 연산자로 하위 조건을 모두, 하나 이상 또는 하나도 만족하지 않는 경우를 묶고 중첩할 수 있습니다. 멤버십의 부정을 사용하는 잘못된 구성을 만들지 않습니다.

실패 메시지

최상위 조건과 최상위 논리 묶음은 각각 실패 메시지를 가집니다. 하위 조건이 실패하면 해당 최상위 부모의 메시지를 보여 줍니다. 같은 메시지는 Object Explorer, Workshop과 Quiver 등에서 사용자에게 제출이 막힌 이유를 알려 줍니다.

시험 실행으로 조건 평가를 확인할 수 있지만 결과 계산에 필요한 외부 호출은 실제로 실행될 수 있으므로 범위를 확인합니다.