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

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

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

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

    결과

    워크플로우 디자이너는 활동의 스크립트 필드에서 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 특정 시간대로 설정된 경우에만 나타납니다.

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

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

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

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

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

    조건

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

    상태

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