제출 기준(이전의 검증이라고도 함)은 액션 제출이 가능한지 결정하는 조건입니다. 제출 기준은 데이터 편집 권한에 비즈니스 로직을 인코딩하여 온톨로지 데이터의 품질과 편집 거버넌스를 확보하는 데 도움이 됩니다.
제출 기준은 컨텍스트(사용자 또는 파라미터와 같은)와 정적 정보를 기반으로 하는 조건을 결합하여 논리적 명제를 생성합니다. 제출 기준은 오브젝트, 관계, 심지어 사용자 정보를 논리적 명제에 포함시켜 액션이 제출될 수 있는지 여부를 결정할 수 있습니다.
예를 들어, 항공사는 특정 항공편에 대해 나열된 항공기를 변경하려고 할 수 있습니다. 구성된 액션은 사용자가 항공편
오브젝트와 연결된 항공기
오브젝트를 변경할 수 있게 합니다. 그러나 항공사는 선택된 사용자(예: 항공기 조종사)만이 이 액션을 사용할 수 있도록 하여, 아직 운영 중인 항공기만 사용되도록 하고자 합니다. 제출 기준을 사용하여 구성자는 사용자의 그룹 구성원 자격과 액션이 제출되는 순간의 항공기 상태를 결합하여 항공편의 항공기를 변경하는 액션이 기준이 충족되었을 때만 제출할 수 있는지 확인할 수 있습니다.
제출 기준은 조건과 연산자로 구성됩니다. 조건은 파라미터 또는 사용자 속성의 값에 대한 단일 명제입니다. 연산자는 다양한 조건을 결합하고 중첩하는 데 사용됩니다.
다양한 유형의 연산자를 사용하면 비즈니스 프로세스와 요구 사항을 반영하는 더 복잡한 명제를 만들 수 있습니다. 모든 제출 기준이 충족되어야 액션을 제출할 수 있습니다. 이는 액션 유형 자체를 편집할 수 있는지에 대한 권한과는 독립적입니다. 오브젝트 유형은 오브젝트를 추가, 수정, 제거하는 여러 액션 유형을 가질 수 있지만, 각 액션 유형은 독립적인 제출 기준을 가지고 있습니다.
조건은 두 값 사이의 단일 비교 검사입니다. 각 조건은 파라미터 또는 사용자 입력에 따라 통과하거나 실패합니다. 조건은 "현재 사용자 기반" 또는 "파라미터 기반" 두 가지 조건 템플릿 중 하나를 사용하여 설정할 수 있습니다. 이러한 템플릿은 조건의 나머지 부분에 대한 프레임워크를 제공합니다. 모든 조건은 중간에 연산자를 사용하여 두 값 사이의 간단한 비교입니다.
예시를 계속해서, 항공기 조종사 요구 사항은 액션을 제출하는 사람의 컨텍스트가 필요하기 때문에 현재 사용자
템플릿을 사용하여 설정할 수 있습니다. 항공기가 아직 운영 중인지 여부를 알려면 항공기
오브젝트를 파라미터
템플릿을 통해 사용해야 합니다.
현재 사용자
템플릿은 액션을 제출하는 사용자를 기준으로 권한을 정의합니다. 현재 사용자
입력은 사용자 ID, 그룹 ID를 통한 그룹 구성원 자격 또는 사용 가능한 다른 멀티패스 속성(사용자의 그룹과 같은)을 확인하는 데 사용할 수 있습니다. Foundry는 문자열로 사용자 ID를 평가하여 정적으로 정의된 사용자 ID 목록 또는 사용자 ID를 저장하는 문자열 파라미터와 비교할 수 있습니다.
그룹 ID 옵션을 사용하면 액션의 사용자가 구성원인 그룹(직접 또는 상속된 구성원 자격 포함)을 사용하여 조건을 생성할 수 있습니다. 그룹은 정적으로 선택한 그룹 또는 다른 파라미터에 의해 제공된 그룹 ID와 비교할 수 있습니다.
멀티패스 속성은 문자열 목록으로 처리되며 다른 문자열 또는 문자열 목록과만 비교할 수 있습니다. 사용자는 사용자가 액세스할 수 있는 제안된 멀티패스 속성 목록을 가집니다. 다른 사용자 속성
필드를 사용하여 사용자가 액세스하지 못하는 속성에 대한 조건을 설정할 수 있습니다. 사용자가 속성에 액세스할 수 없는 경우 조건에 실패합니다.
예시에서 사용자가 항공기 조종사인지 확인하려면 사용자가 항공기 조종사 그룹의 구성원인지 확인해야 합니다.
제출 기준은 또한 파라미터 섹션에서 정의된 파라미터를 사용할 수 있습니다. 파라미터는 다른 앱 또는 사용자로부터 액션 유형으로 전달됩니다. 파라미터에 대한 조건을 사용하면 빌더가 액션 유형에 비즈니스 로직을 포함시키고 비즈니스 요구 사항과 일치하지 않는 데이터에 대한 액션을 제출하는 사용자를 차단할 수 있습니다.
예시에서 운영 상태는 항공기
오브젝트를 통해 제공되며, 항공기마다 변경될 수 있습니다. 조건은 항공기
오브젝트 유형 파라미터 위에 구축되어야 합니다.
제출 기준은 첨부 파일과 오브젝트셋 파라미터를 지원하지 않습니다. 이러한 파라미터 유형은 선택 패널에서 제거됩니다.
조건 템플릿을 선택한 후 비교할 값을 선택합니다. 일부 파라미터(목록 또는 오브젝트 파라미터와 같은)는 비교에서 사용할 값의 더 세밀한 선택이 필요할 수 있습니다. 목록의 길이를 비교할 수도 있습니다.
항공기 예시에서 항공기의 운영 상태는 항공기
오브젝트의 속성에 저장됩니다.
연산자는 두 값 사이의 비교를 정의합니다. 구성 워크플로를 단순화하기 위해 연산자는 파라미터에 유효한 연산자의 선택만 표시하는 것으로 사전 필터링됩니다. 파라미터가 변경되면 이 파라미터를 사용하는 모든 조건을 다시 구성해야 합니다.
선택된 파라미터에 따라 여러 연산자를 사용할 수 있습니다. 단일 값 파라미터의 경우 다음 연산자를 사용할 수 있습니다.
연산자 | 예시 | 데이터 예시 | 설명 |
---|---|---|---|
is | 이름 is John Doe | "John Doe" is "John Doe" = 참 | 왼쪽 값이 오른쪽 값과 정확히 일치합니다. |
is not | 현재 사용자 is not John Doe | "John Doe" is not "Maria Smith" = 참 | 왼쪽 값과 오른쪽 값이 일치하지 않습니다. |
matches | 이름 matches ^[A|E|I|O|U]* | "John Doe" matches | 왼쪽 값이 정규 표현식과 일치합니다. |
is less than | 항공기 > 엔진 수 is less than 2 | 4 is less than 2 = 참 | 왼쪽 값이 오른쪽 값보다 작습니다. |
is greater than or equals | 항공기 > 엔진 수 is greater than or equals 2 | 4 is greater than or equals 2 = 참 | 왼쪽 값이 오른쪽 값보다 큽니다. |
여러 값의 파라미터의 경우 다음 연산자를 사용할 수 있습니다. 오브젝트 참조 목록은 값 목록(오브젝트 값 또는 정의된 속성의 값)으로 변환됩니다.
연산자 | 예시 | 데이터 예시 | 설명 |
---|---|---|---|
includes | 항공기 > 조종사 이름 includes "John Doe" | [ "John Doe", "Maria Smith" ] includes "John Doe" = 참 | 왼쪽 값 중 적어도 하나가 오른쪽 값과 정확히 일치합니다. |
includes any | 이름 목록 includes any 항공기 > 조종사 이름 | ["King Louis", "John Doe"] is included in [ "John Doe", "Maria Smith" ] = 참 | 왼쪽 값 중 적어도 하나가 오른쪽 값 중 적어도 하나와 정확히 일치합니다. |
is included in | 이름 is included in [ "John Doe", "Maria Smith" ] | "John Doe" is included in [ "John Doe", "Maria Smith" ] = 참 | 왼쪽 값이 오른쪽 값 중 적어도 하나와 정확히 일치합니다. |
each is | 항공기 > 조종사 이름 each is "John Doe" | [ "John Doe", "Maria Smith" ] each is "John Doe" = 거짓 | 모든 왼쪽 값이 오른쪽 값과 정확히 일치합니다. |
each is not | 항공기 > 조종사 이름 each is not "John Doe" | [ "John Doe", "Maria Smith" ] each is not "King Louis" = 참 | 모든 왼쪽 값이 오른쪽 값과 정확히 일치하지 않습니다. |
예시에서 사용자가 많은 그룹의 구성원이지만 비교는 단일 그룹에 대한 것이므로, 겹치는 것을 확인하기 위해 포함
연산자를 선택해야 합니다. 그러나 운영 상태는 예상 상태와 정확히 일치해야 하므로 is
연산자를 설정해야 합니다.
값은 비교의 다른 쪽을 나타냅니다. 값은 기존 파라미터, 정적 값 또는 값 없음을 기반으로 할 수 있습니다. 값 없음은 첫 번째 값이 비어 있거나(null) 확인합니다. 연산자와 마찬가지로 사용 가능한 옵션은 첫 번째 값 유형에 따라 달라집니다.
이제 항공기 예시에서 필요한 두 가지 조건을 완료할 수 있습니다. 항공기 조종사의 경우, 올바른 그룹을 정적 파라미터로 선택해야 합니다. 이는 그룹이 변경되어서는 안되며, 매번 액션을 제출할 때마다 컨텍스트와 관계없이 동일해야 하기 때문입니다. 따라서 특정 값
이 사용되고 원하는 그룹이 드롭다운을 통해 선택됩니다. 항공기가 운영 중인 것으로 간주되면 운영 상태 속성이 예
로 설정되어 특정 값 옵션을 다시 사용할 수 있습니다.
논리 연산자는 다양한 조건을 결합하는 데 사용할 수 있습니다. 논리 연산자는 더 복잡한 로직을 생성하기 위해 중첩될 수도 있으며, 이를 통해 모든 조건, 일부 조건 또는 하위 조건이 충족되지 않아야 통과할 수 있습니다.
실패 메시지는 액션을 제출할 수 없을 때 표시되어야 하는 오류를 정의하는 데 도움이 됩니다. 모든 조건과 루트 레벨의 논리 연산자는 각각 자체 실패 메시지를 가지고 있습니다. 하위 레벨의 조건이 충족되지 않으면 해당 루트 레벨(부모)의 실패 메시지가 표시됩니다. 실패 메시지는 조건이 충족되지 않을 때 사용자에게 Foundry(Object Explorer, Workshop 또는 퀴버)에서 표시되며, 사용자가 액션을 제출하는 것이 차단된 이유에 대해 알립니다.