승인 - 그룹 워크플로우 활동

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 소요 시간: 9분
  • 승인 - 그룹 활동은 지정된 그룹의 각 구성원에 대한 승인 기록을 만듭니다.

    주:
    이 활동은 워크플로우가 작업을 확장하는 테이블에서 실행되는 경우에만 사용할 수 있습니다.

    그룹 승인은 대기 필드에 지정된 논리에 따라 사용자 승인에 따라 승인되거나 거부됩니다.

    결과

    워크플로우 디자이너는 활동의 스크립트 필드 내에서 activity.result를 사용하여 결과 값을 할당할 수 있습니다. 기본적으로 결과 값은 최종 승인 처리입니다. 이 처리는 승인자가 수행하는 승인 동작과 대기 또는 누구나 거부할 때 필드에 지정된 승인 조건에 따라 달라집니다. 가능한 결과 값은 다음과 같습니다.
    • 승인함
    • 거부됨
    • 삭제됨
    • 취소함

    입력 변수

    입력 변수는 활동의 초기 동작을 결정합니다.

    표 1. 승인 - 그룹 활동 입력 변수
    필드 설명
    승인 - 그룹화 시기

    이 활동으로 그룹 승인 기록을 작성하는 시기를 지정합니다.

    조건 충족 시 그룹 승인 작성을 유발하는 조건입니다. 조건이 충족되지 않으면 승인은 건너뜁니다.
    승인 - 그룹 승인자

    승인을 요청할 그룹을 지정합니다.

    그룹 승인을 요청할 그룹

    이 필드를 편집하려면 잠금 아이콘을 클릭하십시오. 이름을 기준으로 특정 그룹을 선택하려면 조회 목록을 사용하십시오. 런타임 시 현재 기록의 필드 값에서 그룹을 선택하려면 나무 아이콘을 클릭합니다.

    그러면 각 그룹 구성원에게 개별 승인 기록이 할당됩니다.

    그룹이 선택되지 않은 경우, 활동은 자동으로 승인을 승인됨으로 설정합니다.

    승인 - 그룹 조건

    개별 그룹 구성원의 응답에 따라 활동의 그룹 승인 또는 거부 결정 방식을 지정합니다.

    대기
    활동 승인을 승인하거나 거부하는 개별 승인이나 거부를 결정하기 위해 다른 승인 논리 간 선택. 옵션은 다음과 같습니다.
    • 각 그룹의 승인: 각 그룹의 모든 사용자가 승인할 수 있으며 각 그룹이 첫 번째 승인하면 활동이 승인 됨의 결과로 완료됩니다(거부 처리 방법은 아래 참조).
    • 임의 그룹의 승인: 모든 그룹의 모든 사용자가 승인할 수 있으며 임의의 그룹에서 첫 번째 승인을 받으면 활동이 완료되고 결과는 승인됨입니다.
    • 모든 그룹의 모든 사람의 승인: 모든 그룹의 모든 사용자가 승인해야 활동이 승인 됨 결과로 완료됩니다(거부 처리 방법은 아래 참조).
    • 각 그룹의 첫 번째 응답: 각 그룹에 있는 사용자의 첫 번째 승인 또는 거부는 그룹 승인 상태를 나타내는 데 사용됩니다(거부 처리 방법은 아래 참조).

      모든 사용자가 승인 요청을 거부할 때 발생하는 일을 나타냅니다. 옵션은 다음과 같습니다.

    • 승인을 거부합니다. 거부됨 결과가 있는 활동을 즉시 완료 하십시오.
    • 임의 그룹의 첫 번째 응답: 그룹에 속한 사용자가 첫 번째 승인 또는 거부하면 활동이 완료되고 결과는 승인 됨 또는 거부됨입니다.
    • 스크립트 기반 조건: 사용자가 승인 또는 거부할 때마다 활동을 완료해야 하는지 여부를 결정하기 위해 승인 스크립트 가 호출됩니다.
    승인 스크립트

    대기스크립트에 따른 조건으로 설정된 경우에만 나타납니다.

    변수 대기스크립트에 기반한 조건으로 설정되면 승인이나 거부를 처리하는 방법을 결정하기 위해 이 스크립트가 호출됩니다. 스크립트는 이 승인에 대한 전체 상태를 나타내려면 변수 대답 을 승인됨 또는 거부됨으로 설정해야 합니다.

    이 스크립트는 모든 그룹의 전체 승인 상태를 반환하기 전에 이 승인 활동의 일부인 각 그룹의 승인 상태를 설정하는 작업을 담당합니다.

    호출되면 이 승인 활동의 일부인 모든 그룹의 스크립트에서 다음 변수를 사용할 수 있습니다.

    counts.total = total number of groups that are part of this approval
                      counts.approved = # of groups that approved so far
                      counts.rejected = # of groups that rejected so far
                      counts.requested = # of groups that are pending approval
                      counts.not_requested = # of groups that are not pending approval
                      counts.not_required = # of groups that approval is not required
    그리고 각 그룹에 대해 다음을 수행합니다.
    groups[group_id].total = total number of users that are part of this group's approval
                        groups[group_id].approved = # of users that approved so far
                        groups[group_id].rejected = # of users that rejected so far
                        groups[group_id].requested = # of users that are pending approval
                        groups[group_id].not_requested = # of users that are not pending approval
                        groups[group_id].not_required = # of users that approval is not required
                        groups[group_id].approvalIDs[state] = array of user ids that are at the specified approval state
    참고: 다음을 사용하여 그룹을 반복합니다.
    for (var id in groups) {
                        var group = groups[id];
                        ... group.total ...
                        }
    참고 : 다음 코드를 사용하여 그룹 객체를 가져옵니다 (반복되는 그룹 이름과 같은 것을 가져 오려면).
    var objGroup = fncGetGroupObj(id);
                        var strGroupName = objGroup.name;
                        
                        function fncGetGroupObj(sidGroupApproval)
                        {
                        var objGroupApproval = new GlideRecord('sysapproval_group');
                        objGroupApproval.get(sidGroupApproval);
                        
                        var objGroup = new GlideRecord('sys_user_group');
                        objGroup.get(objGroupApproval.assignment_group.sys_id);
                        
                        return objGroup;
                        }
    승인 스크립트도 계산을 허용합니다. 예를 들어, 승인의 절반만 필요한 경우:
    if (counts.approved/counts.total > .49) {
                        answer = 'approved';
                        }
                        else if (counts.rejected/counts.total > .50) {
                        answer = 'rejected';
                        }
    모두 거부한 때
    활동 승인을 거부하는 개별 거부를 결정하기 위해 다른 승인 논리 간 선택. 옵션은 다음과 같습니다.
    • 승인을 거부합니다. 거부됨 결과가 있는 활동을 즉시 완료 하십시오.
    • 결정하기 전에 다른 응답을 기다립니다. 승인 또는 거부 결정을 내리기 전에 다른 응답을 받을 때까지 기다리십시오. 이를 통해 사용자는 결정이 내려질 때까지 마음을 바꿀 수 있습니다.
    주:
    대기승인할 모든 사용자로 설정된 경우 한 명 이상의 사용자가 거부하더라도 단일 승인으로 활동이 완료되고 승인됨의 결과가 나타납니다.
    승인 - 그룹 일정

    예상되는 승인 기록 시작 날짜와 기한에 대한 워크플로우의 계산 방식을 지정합니다. '기한 기준' 및 '일정 기준'을 선택하면 해당하는 필드가 표시됩니다.

    기한 기준 워크플로우가 작업의 기간, 기한 및 일정을 결정하는 방법을 선택합니다.
    • 사용자 지정 기간: 기간은 사용자 지정 값을 기준으로 합니다.
    • 상대 기간: 기간은 상대적 기간(예: 다음 영업일 종료)에서 계산됩니다.
    • 날짜/시간 또는 기간 필드: 기간은 현재 기록의 필드 값을 기준으로 합니다.
    • 각본: 기간은 스크립트에 의해 반환됩니다.
    기간

    기한 기준사용자 지정 기간으로 설정된 경우에만 나타납니다.

    특정 일 수 및 시간입니다.
    상대 기간

    기한 기준A 상대 기간으로 설정된 경우에만 나타납니다.

    일반적인 영업일 수 및 길이입니다.
    기한 필드

    기한 기준 A 날짜/시간 또는 기간 필드로 설정된 경우에만 나타납니다.

    날짜/시간 또는 기간 필드입니다.
    기한 스크립트

    기한 기준 스크립트로 설정된 경우에만 나타납니다.

    지속 시간 동안 초의 수에 대한 "응답"을 설정하는 스크립트.
    일정 기준 타이머에서 근무 시간을 계산하는 데 사용하는 기본 일정입니다. 일정이 지정되면 일정에 지정된 시간에만 기간이 고려됩니다. 예를 들어 기간이 2시간이고 워크플로우가 오전 8시 - 오후 5시 일정에서 오후 4:00에 시작되면 다음 날 오전 9:00에 종료됩니다. 옵션은 다음과 같습니다.
    • 이 워크플로우의 일정은 다음과 같습니다. 일정은 값에 따라 워크플로우 컨텍스트 날짜, 시간 및 선택적 시간대 를 사용합니다.
    • 특정 일정: 일정은 값에 따라 미리 정의된 일정과 시간대(선택 사항)를 사용합니다.
    • 일정 필드: 일정은 값 에 따라 테이블의 값과 시간대(선택 사항)를 사용합니다.
    일정

    일정 기준 A 특정 일정으로 설정된 경우에만 나타납니다.

    목록에서 미리 정의된 일정
    일정 필드

    일정 기준이 A 일정 필드로 설정된 경우에만 나타납니다.

    테이블과 연결된 일정의 날짜 및 시간 또는 기간 필드입니다. 유효한 필드는 트리에서 요소 선택 대화 상자에 파란색으로 표시됩니다.
    시간대 기준 지속 시간을 계산할 시간대입니다. 시간대는 다음을 기반으로 할 수 있습니다.
    • 시간대 없음: 기본값. 워크플로우는 GMT 시간대를 사용합니다.
    • 특정 시간대: 선택 목록에서 선택하는 특정 시간대 입니다.
    • 시간대 필드: 양식의 필드에서 기간을 추적하는 시간대 필드 입니다.
    시간대

    시간대 기준 특정 시간대로 설정된 경우에만 나타납니다.

    .
    선택 목록에서 원하는 시간대를 선택합니다.
    시간대 필드

    시간대 기준 A 시간대 필드로 설정된 경우에만 나타납니다.

    테이블과 연결된 일정의 날짜 및 시간 또는 기간 필드입니다. 유효한 필드는 트리에서 요소 선택 대화 상자에 파란색으로 표시됩니다.
    승인 - 고급

    원하는 경우 승인을 요청할 추가 사용자를 결정하기 위한 스크립트를 작성합니다.

    고급 승인을 요청할 추가 사용자를 결정하기 위해 스크립트를 쓰려면 이 확인란을 선택합니다. 추가 그룹 스크립트를 사용하여 그룹 승인을 사용자 지정합니다.
    추가 그룹 스크립트
    고급 확인란을 선택하면 작성할 모든 추가 그룹 승인을 결정하기 위해 이 스크립트가 호출됩니다. 스크립트는 변수 대답 을 승인자 그룹으로 추가할 그룹 ID의 쉼표로 구분된 목록 또는 그룹 ID의 배열로 설정해야 합니다. 예:
    answer = [];
           answer.push('id1');
           answer.push('id2');

    조건

    다음 조건에 따라 이 활동 후에 실행되는 전환이 결정됩니다.
    주:
    승인 활동은 작업이 워크플로우가 대기 중이던 승인 또는 거부 조건과 일치하는 사용자로 실행되며 워크플로우를 진행합니다.
    표 2. 승인 - 그룹 활동 조건
    조건 설명
    승인함 그룹의 사용자가 대기 규칙에 따라 요청을 승인 했습니다 .
    거부됨 그룹의 사용자가 대기 규칙에 따라 요청을 거부 했습니다 .
    오류 오류를 생성하는 이벤트 또는 조건입니다.
    건너뜀 건너뛴 승인을 허용하는 이벤트 또는 조건입니다.

    상태

    활동 상태는 워크플로우 엔진에 활동으로 수행할 작업을 알려줍니다.
    표 3. 승인 - 그룹 활동 상태
    상태 설명
    실행 워크플로우 엔진이 활동의 execute 함수를 시작합니다.
    대기 중 활동을 다시 시작하는 특정 이벤트가 발생하기 전에는 워크플로우 엔진이 활동을 무시합니다.
    마침 활동 실행이 완료되었습니다. 활동의 결과 값을 확인합니다.
    취소됨 이 활동 또는 이 활동을 포함하고 있는 워크플로우가 취소되었습니다.
    오류 JavaScript 오류가 발생했습니다. 로그에서 오류 정보를 검토하십시오.