ActivityHistoryRecord - 전역

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 50분
  • ActivityHistoryRecord API는 WorkflowModelManager 개체와의 상호 작용을 용이하게 하는 메서드를 제공합니다. WorkflowModelManager 클래스의 멤버인 데이터 개체입니다.

    이 API는 기본적으로 활동 이력 [wf_history] 테이블의 Glide 기록에서 가져온 데이터의 복사본입니다. 이 클래스에 대해 정의된 몇 가지 도우미 메서드도 있습니다. 이 클래스의 단순 데이터 요소에 대한 접근자 또는 변경자가 없습니다.

    ActivityHistoryRecord - addArrivedActivityToJoin(문자열 배열 activityIds)

    이미 알려진 ID를 arrivedState로 변경합니다.

    이 메서드는 알려진 ID를 true로 변경하는 arrivedState 즉시 조인이 충족되는지 확인합니다. 충족되는 경우 모델 워크를 계속할 수 있습니다. 그렇지 않은 경우 다음으로 적절한 전환을 계속해야 합니다. 이는 조인으로 전달될 wf_activities 예상대로 재생 중에 호출됩니다.

    표 1. 매개변수
    이름 유형 설명
    activityId 문자열 배열 조인으로 향하는 wf_activity.sys_ids의 배열입니다.
    표 2. 반환
    유형 설명
    void

    ActivityHistoryRecord - addJoinFromActivityIds(문자열 배열 activityIds)

    이 조인을 통과할 것으로 예상되는 모든 예상 wf_activity sys_ids 시드하고 arriveState = false를 설정합니다.

    예상되는 각 활동이 이 조인 인스턴스로 전환되면 이 상태가 true 로 전환됩니다. 이 메서드는 메모리에 캐시된 모델을 빌드하는 과정에서 호출되며 재생 중에는 호출되지 않습니다.

    표 3. 매개변수
    이름 유형 설명
    activityId 문자열 배열 조인으로 향하는 wf_activity.sys_ids의 배열입니다.
    표 4. 반환
    유형 설명
    void

    ActivityHistoryRecord - addTransition(Object InTransition)

    모델이 _getExecutedTransitions()에 의해 캐시되므로, 이 메서드는 이 활동에서 .to 활동으로 이동한 전환을 추가합니다.

    표 5. 매개변수
    이름 유형 설명
    전환 중 객체 ExecutedTransition 이 활동에 추가할 Javascript 객체입니다.
    표 6. 반환
    유형 설명
    void

    ActivityHistoryRecord - debugDump( )

    디버그 정보를 인쇄합니다.

    표 7. 매개변수
    이름 유형 설명
    없음
    표 8. 반환
    유형 설명
    void

    다음 코드 예제에서는 이 메서드를 사용하는 방법을 보여 줍니다. 기본 인스턴스의 가장 오래된 워크플로우 이력 기록을 사용합니다.

    // These are associated with the Change Request - Normal workflow for CHG0000037.
    var wfhGR = new GlideRecord ('wf_history');
    wfhGR.addQuery('context.id', '41cdb152db252200a6a2b31be0b8f527');
    wfhGR.addQuery('context.table', 'change_request');
    wfhGR.orderBy ('activity_index');
    wfhGR.query();
    while (wfhGR.next())  {
      var script_name = 'AHR';
      //
      //  Acquire the execution history of the workflow's activities.
      //  Do this just once while processing the first activity.
    
      if(wfhGR.activity_index == 0) {
        var model = new WorkflowModelManager( wfhGR.context );
        model.getExecutedHistory();
      }
    
    //
    // Access a hash of ActivityHistoryRecord javascript objects,
    // hashed by the sys_id of the wf_history record.
    // There will be one ActivityHistoryRecord for each activity.
    
      var ActivityHistoryRecord = model.getActivityHistoryRecordById(wfhGR.sys_id);
    
    //
    // Use ActivityHistoryRecord methods to display selected values
    
      gs.log('Log String [' + ActivityHistoryRecord.getLogString() + ']', script_name);
      gs.log('debugDump START', script_name);
      ActivityHistoryRecord.debugDump();
      gs.log('debugDump END', script_name);
      gs.log('Turnstile?[' + ActivityHistoryRecord.isTurnstile() + ']', script_name);
      gs.log('Transition Count[' + ActivityHistoryRecord.getTransitionCount() + ']\n', script_name );
    }

    출력:

    [0:00:00.133] Script completed in scope global: script
    Script execution history and recovery available here
    AHR: Log String [HISTORY RECORD:  History ID:a228c4b6dba52200a6a2b31be0b8f57a  History INDEX:0  History START TIME:1585659881000  History END TIME:1585659881000  WF Activity ID:e233b949cb020200d71cb9c0c24c9c1f  WF Activity NAME:Begin  WF Activity DEF ID:c7a5e32c0a0a0b3a002377c24ed8ea76  WF Activity DEF NAME:Begin  Transition Count: 1  Is Turnstile (loop) : false  Is Join: false]
    AHR: debugDump START
    *** Script: 
    *** Script: WF HISTORY RECORD:
    *** Script:           History ID: a228c4b6dba52200a6a2b31be0b8f57a
    *** Script:        History INDEX: 0
    *** Script:   History START TIME: 1585659881000
    *** Script:     History END TIME: 1585659881000
    *** Script:        History INDEX: 0
    *** Script:       WF Activity ID: e233b949cb020200d71cb9c0c24c9c1f
    *** Script:     WF Activity NAME: Begin
    *** Script:   WF Activity DEF ID: c7a5e32c0a0a0b3a002377c24ed8ea76
    *** Script: WF Activity DEF NAME: Begin
    *** Script:     Transition Count: 1
    *** Script: Roll Back Originator: 
    *** Script:  Is Turnstile (loop): false
    *** Script:              Is Join: false
    AHR: debugDump END
    AHR: Turnstile? [false]
    AHR: Transition Count [1]
    
    
    AHR: Log String [HISTORY RECORD:  History ID:a228c4b6dba52200a6a2b31be0b8f57d  History INDEX:1  History START TIME:1585659881000  History END TIME:1585659881000  WF Activity ID:2e33b949cb020200d71cb9c0c24c9c20  WF Activity NAME:Change moves to Assess  WF Activity DEF ID:d93a02ae0a0a0aa30077abad3fdac035  WF Activity DEF NAME:Wait for condition  Transition Count: 1  Is Turnstile (loop) : false  Is Join: false]
    AHR: debugDump START
    *** Script: 
    *** Script: WF HISTORY RECORD:
    *** Script:           History ID: a228c4b6dba52200a6a2b31be0b8f57d
    *** Script:        History INDEX: 1
    *** Script:   History START TIME: 1585659881000
    *** Script:     History END TIME: 1585659881000
    *** Script:        History INDEX: 1
    *** Script:       WF Activity ID: 2e33b949cb020200d71cb9c0c24c9c20
    *** Script:     WF Activity NAME: Change moves to Assess
    *** Script:   WF Activity DEF ID: d93a02ae0a0a0aa30077abad3fdac035
    *** Script: WF Activity DEF NAME: Wait for condition
    *** Script:     Transition Count: 1
    *** Script: Roll Back Originator: 
    *** Script:  Is Turnstile (loop): false
    *** Script:              Is Join: false
    AHR: debugDump END
    AHR: Turnstile? [false]
    AHR: Transition Count [1]
    
    
    AHR: Log String [HISTORY RECORD:  History ID:3e28c4b6dba52200a6a2b31be0b8f57e  History INDEX:2  History START TIME:1585659881000  History END TIME:1585659881000  WF Activity ID:6e33b949cb020200d71cb9c0c24c9c1f  WF Activity NAME:Requested  WF Activity DEF ID:50a78fa50a6a803f66d064255f7201a5  WF Activity DEF NAME:Approval Action  Transition Count: 1  Is Turnstile (loop) : false  Is Join: false]
    AHR: debugDump START
    *** Script: 
    *** Script: WF HISTORY RECORD:
    *** Script:           History ID: 3e28c4b6dba52200a6a2b31be0b8f57e
    *** Script:        History INDEX: 2
    *** Script:   History START TIME: 1585659881000
    *** Script:     History END TIME: 1585659881000
    *** Script:        History INDEX: 2
    *** Script:       WF Activity ID: 6e33b949cb020200d71cb9c0c24c9c1f
    *** Script:     WF Activity NAME: Requested
    *** Script:   WF Activity DEF ID: 50a78fa50a6a803f66d064255f7201a5
    *** Script: WF Activity DEF NAME: Approval Action
    *** Script:     Transition Count: 1
    *** Script: Roll Back Originator: 
    *** Script:  Is Turnstile (loop): false
    *** Script:              Is Join: false
    AHR: debugDump END
    AHR: Turnstile? [false]
    AHR: Transition Count [1]
    
    
    AHR: Log String [HISTORY RECORD:  History ID:0d38c4b6dba52200a6a2b31be0b8f5cc  History INDEX:3  History START TIME:1585659881000  History END TIME:1585659891000  WF Activity ID:2a33b949cb020200d71cb9c0c24c9c26  WF Activity NAME:Technical approvals  WF Activity DEF ID:354e911f0a0a029a00e6a0e6ad74206f  WF Activity DEF NAME:Approval - Group  Transition Count: 1  Is Turnstile (loop) : false  Is Join: false]
    AHR: debugDump START
    *** Script: 
    *** Script: WF HISTORY RECORD:
    *** Script:           History ID: 0d38c4b6dba52200a6a2b31be0b8f5cc
    *** Script:        History INDEX: 3
    *** Script:   History START TIME: 1585659881000
    *** Script:     History END TIME: 1585659891000
    *** Script:        History INDEX: 3
    *** Script:       WF Activity ID: 2a33b949cb020200d71cb9c0c24c9c26
    *** Script:     WF Activity NAME: Technical approvals
    *** Script:   WF Activity DEF ID: 354e911f0a0a029a00e6a0e6ad74206f
    *** Script: WF Activity DEF NAME: Approval - Group
    *** Script:     Transition Count: 1
    *** Script: Roll Back Originator: 
    *** Script:  Is Turnstile (loop): false
    *** Script:              Is Join: false
    AHR: debugDump END
    AHR: Turnstile? [false]
    AHR: Transition Count [1]
    
    
    AHR: Log String [HISTORY RECORD:  History ID:c538c4b6dba52200a6a2b31be0b8f5ce  History INDEX:4  History START TIME:1585659891000  History END TIME:1585659891000  WF Activity ID:6233b949cb020200d71cb9c0c24c9c5b  WF Activity NAME:Check if Change is "On hold"  WF Activity DEF ID:98f621ca0a0a0b5900f7c291f5e45a0e  WF Activity DEF NAME:If  Transition Count: 1  Is Turnstile (loop) : false  Is Join: false]
    AHR: debugDump START
    *** Script: 
    *** Script: WF HISTORY RECORD:
    *** Script:           History ID: c538c4b6dba52200a6a2b31be0b8f5ce
    *** Script:        History INDEX: 4
    *** Script:   History START TIME: 1585659891000
    *** Script:     History END TIME: 1585659891000
    *** Script:        History INDEX: 4
    *** Script:       WF Activity ID: 6233b949cb020200d71cb9c0c24c9c5b
    *** Script:     WF Activity NAME: Check if Change is "On hold"
    *** Script:   WF Activity DEF ID: 98f621ca0a0a0b5900f7c291f5e45a0e
    *** Script: WF Activity DEF NAME: If
    *** Script:     Transition Count: 1
    *** Script: Roll Back Originator: 
    *** Script:  Is Turnstile (loop): false
    *** Script:              Is Join: false
    AHR: debugDump END
    AHR: Turnstile? [false]
    AHR: Transition Count [1]
    
    
    AHR: Log String [HISTORY RECORD:  History ID:cd3808b6dba52200a6a2b31be0b8f501  History INDEX:5  History START TIME:1585659891000  History END TIME:1585659891000  WF Activity ID:e633b949cb020200d71cb9c0c24c9c20  WF Activity NAME:Move to Authorize  WF Activity DEF ID:1ca8d7cf0a0a0b265e9a000c2c08248c  WF Activity DEF NAME:Set Values  Transition Count: 1  Is Turnstile (loop) : false  Is Join: false]
    AHR: debugDump START
    *** Script: 
    *** Script: WF HISTORY RECORD:
    *** Script:           History ID: cd3808b6dba52200a6a2b31be0b8f501
    *** Script:        History INDEX: 5
    *** Script:   History START TIME: 1585659891000
    *** Script:     History END TIME: 1585659891000
    *** Script:        History INDEX: 5
    *** Script:       WF Activity ID: e633b949cb020200d71cb9c0c24c9c20
    *** Script:     WF Activity NAME: Move to Authorize
    *** Script:   WF Activity DEF ID: 1ca8d7cf0a0a0b265e9a000c2c08248c
    *** Script: WF Activity DEF NAME: Set Values
    *** Script:     Transition Count: 1
    *** Script: Roll Back Originator: 
    *** Script:  Is Turnstile (loop): false
    *** Script:              Is Join: false
    AHR: debugDump END
    AHR: Turnstile? [false]
    AHR: Transition Count [1]
    

    ActivityHistoryRecord - doesJoinContainActivity( )

    이 이력 기록에 시드된 것으로 예상되는 수신 wf_activity sys_id 테스트합니다. 이 경우 이 조인을 통해 들어오는 활동인지 확인하기 위해 테스트됩니다.

    표 9. 매개변수
    이름 유형 설명
    없음
    표 10. 반환
    유형 설명
    부울 이 조인을 통해 들어오는 활동인 경우 True입니다.

    ActivityHistoryRecord - getLogString( )

    이력 기록에서 로그 문자열을 반환합니다.

    표 11. 매개변수
    이름 유형 설명
    없음
    표 12. 반환
    유형 설명
    문자열 로그 문자열입니다.

    다음 코드 예제에서는 이 메서드를 사용하는 방법을 보여 줍니다. 기본 인스턴스의 가장 오래된 워크플로우 이력 기록을 사용합니다.

    // These are associated with the Change Request - Normal workflow for CHG0000037.
    var wfhGR = new GlideRecord ('wf_history');
    wfhGR.addQuery('context.id', '41cdb152db252200a6a2b31be0b8f527');
    wfhGR.addQuery('context.table', 'change_request');
    wfhGR.orderBy ('activity_index');
    wfhGR.query();
    while (wfhGR.next())  {
      var script_name = 'AHR';
      //
      //  Acquire the execution history of the workflow's activities.
      //  Do this just once while processing the first activity.
    
      if(wfhGR.activity_index == 0) {
        var model = new WorkflowModelManager( wfhGR.context );
        model.getExecutedHistory();
      }
    
    //
    // Access a hash of ActivityHistoryRecord javascript objects,
    // hashed by the sys_id of the wf_history record.
    // There will be one ActivityHistoryRecord for each activity.
    
      var ActivityHistoryRecord = model.getActivityHistoryRecordById(wfhGR.sys_id);
    
    //
    // Use ActivityHistoryRecord methods to display selected values
    
      gs.log('Log String [' + ActivityHistoryRecord.getLogString() + ']', script_name);
      gs.log('debugDump START', script_name);
      ActivityHistoryRecord.debugDump();
      gs.log('debugDump END', script_name);
      gs.log('Turnstile?[' + ActivityHistoryRecord.isTurnstile() + ']', script_name);
      gs.log('Transition Count[' + ActivityHistoryRecord.getTransitionCount() + ']\n', script_name );
    }

    출력:

    [0:00:00.133] Script completed in scope global: script
    Script execution history and recovery available here
    AHR: Log String [HISTORY RECORD:  History ID:a228c4b6dba52200a6a2b31be0b8f57a  History INDEX:0  History START TIME:1585659881000  History END TIME:1585659881000  WF Activity ID:e233b949cb020200d71cb9c0c24c9c1f  WF Activity NAME:Begin  WF Activity DEF ID:c7a5e32c0a0a0b3a002377c24ed8ea76  WF Activity DEF NAME:Begin  Transition Count: 1  Is Turnstile (loop) : false  Is Join: false]
    AHR: debugDump START
    *** Script: 
    *** Script: WF HISTORY RECORD:
    *** Script:           History ID: a228c4b6dba52200a6a2b31be0b8f57a
    *** Script:        History INDEX: 0
    *** Script:   History START TIME: 1585659881000
    *** Script:     History END TIME: 1585659881000
    *** Script:        History INDEX: 0
    *** Script:       WF Activity ID: e233b949cb020200d71cb9c0c24c9c1f
    *** Script:     WF Activity NAME: Begin
    *** Script:   WF Activity DEF ID: c7a5e32c0a0a0b3a002377c24ed8ea76
    *** Script: WF Activity DEF NAME: Begin
    *** Script:     Transition Count: 1
    *** Script: Roll Back Originator: 
    *** Script:  Is Turnstile (loop): false
    *** Script:              Is Join: false
    AHR: debugDump END
    AHR: Turnstile? [false]
    AHR: Transition Count [1]
    
    
    AHR: Log String [HISTORY RECORD:  History ID:a228c4b6dba52200a6a2b31be0b8f57d  History INDEX:1  History START TIME:1585659881000  History END TIME:1585659881000  WF Activity ID:2e33b949cb020200d71cb9c0c24c9c20  WF Activity NAME:Change moves to Assess  WF Activity DEF ID:d93a02ae0a0a0aa30077abad3fdac035  WF Activity DEF NAME:Wait for condition  Transition Count: 1  Is Turnstile (loop) : false  Is Join: false]
    AHR: debugDump START
    *** Script: 
    *** Script: WF HISTORY RECORD:
    *** Script:           History ID: a228c4b6dba52200a6a2b31be0b8f57d
    *** Script:        History INDEX: 1
    *** Script:   History START TIME: 1585659881000
    *** Script:     History END TIME: 1585659881000
    *** Script:        History INDEX: 1
    *** Script:       WF Activity ID: 2e33b949cb020200d71cb9c0c24c9c20
    *** Script:     WF Activity NAME: Change moves to Assess
    *** Script:   WF Activity DEF ID: d93a02ae0a0a0aa30077abad3fdac035
    *** Script: WF Activity DEF NAME: Wait for condition
    *** Script:     Transition Count: 1
    *** Script: Roll Back Originator: 
    *** Script:  Is Turnstile (loop): false
    *** Script:              Is Join: false
    AHR: debugDump END
    AHR: Turnstile? [false]
    AHR: Transition Count [1]
    
    
    AHR: Log String [HISTORY RECORD:  History ID:3e28c4b6dba52200a6a2b31be0b8f57e  History INDEX:2  History START TIME:1585659881000  History END TIME:1585659881000  WF Activity ID:6e33b949cb020200d71cb9c0c24c9c1f  WF Activity NAME:Requested  WF Activity DEF ID:50a78fa50a6a803f66d064255f7201a5  WF Activity DEF NAME:Approval Action  Transition Count: 1  Is Turnstile (loop) : false  Is Join: false]
    AHR: debugDump START
    *** Script: 
    *** Script: WF HISTORY RECORD:
    *** Script:           History ID: 3e28c4b6dba52200a6a2b31be0b8f57e
    *** Script:        History INDEX: 2
    *** Script:   History START TIME: 1585659881000
    *** Script:     History END TIME: 1585659881000
    *** Script:        History INDEX: 2
    *** Script:       WF Activity ID: 6e33b949cb020200d71cb9c0c24c9c1f
    *** Script:     WF Activity NAME: Requested
    *** Script:   WF Activity DEF ID: 50a78fa50a6a803f66d064255f7201a5
    *** Script: WF Activity DEF NAME: Approval Action
    *** Script:     Transition Count: 1
    *** Script: Roll Back Originator: 
    *** Script:  Is Turnstile (loop): false
    *** Script:              Is Join: false
    AHR: debugDump END
    AHR: Turnstile? [false]
    AHR: Transition Count [1]
    
    
    AHR: Log String [HISTORY RECORD:  History ID:0d38c4b6dba52200a6a2b31be0b8f5cc  History INDEX:3  History START TIME:1585659881000  History END TIME:1585659891000  WF Activity ID:2a33b949cb020200d71cb9c0c24c9c26  WF Activity NAME:Technical approvals  WF Activity DEF ID:354e911f0a0a029a00e6a0e6ad74206f  WF Activity DEF NAME:Approval - Group  Transition Count: 1  Is Turnstile (loop) : false  Is Join: false]
    AHR: debugDump START
    *** Script: 
    *** Script: WF HISTORY RECORD:
    *** Script:           History ID: 0d38c4b6dba52200a6a2b31be0b8f5cc
    *** Script:        History INDEX: 3
    *** Script:   History START TIME: 1585659881000
    *** Script:     History END TIME: 1585659891000
    *** Script:        History INDEX: 3
    *** Script:       WF Activity ID: 2a33b949cb020200d71cb9c0c24c9c26
    *** Script:     WF Activity NAME: Technical approvals
    *** Script:   WF Activity DEF ID: 354e911f0a0a029a00e6a0e6ad74206f
    *** Script: WF Activity DEF NAME: Approval - Group
    *** Script:     Transition Count: 1
    *** Script: Roll Back Originator: 
    *** Script:  Is Turnstile (loop): false
    *** Script:              Is Join: false
    AHR: debugDump END
    AHR: Turnstile? [false]
    AHR: Transition Count [1]
    
    
    AHR: Log String [HISTORY RECORD:  History ID:c538c4b6dba52200a6a2b31be0b8f5ce  History INDEX:4  History START TIME:1585659891000  History END TIME:1585659891000  WF Activity ID:6233b949cb020200d71cb9c0c24c9c5b  WF Activity NAME:Check if Change is "On hold"  WF Activity DEF ID:98f621ca0a0a0b5900f7c291f5e45a0e  WF Activity DEF NAME:If  Transition Count: 1  Is Turnstile (loop) : false  Is Join: false]
    AHR: debugDump START
    *** Script: 
    *** Script: WF HISTORY RECORD:
    *** Script:           History ID: c538c4b6dba52200a6a2b31be0b8f5ce
    *** Script:        History INDEX: 4
    *** Script:   History START TIME: 1585659891000
    *** Script:     History END TIME: 1585659891000
    *** Script:        History INDEX: 4
    *** Script:       WF Activity ID: 6233b949cb020200d71cb9c0c24c9c5b
    *** Script:     WF Activity NAME: Check if Change is "On hold"
    *** Script:   WF Activity DEF ID: 98f621ca0a0a0b5900f7c291f5e45a0e
    *** Script: WF Activity DEF NAME: If
    *** Script:     Transition Count: 1
    *** Script: Roll Back Originator: 
    *** Script:  Is Turnstile (loop): false
    *** Script:              Is Join: false
    AHR: debugDump END
    AHR: Turnstile? [false]
    AHR: Transition Count [1]
    
    
    AHR: Log String [HISTORY RECORD:  History ID:cd3808b6dba52200a6a2b31be0b8f501  History INDEX:5  History START TIME:1585659891000  History END TIME:1585659891000  WF Activity ID:e633b949cb020200d71cb9c0c24c9c20  WF Activity NAME:Move to Authorize  WF Activity DEF ID:1ca8d7cf0a0a0b265e9a000c2c08248c  WF Activity DEF NAME:Set Values  Transition Count: 1  Is Turnstile (loop) : false  Is Join: false]
    AHR: debugDump START
    *** Script: 
    *** Script: WF HISTORY RECORD:
    *** Script:           History ID: cd3808b6dba52200a6a2b31be0b8f501
    *** Script:        History INDEX: 5
    *** Script:   History START TIME: 1585659891000
    *** Script:     History END TIME: 1585659891000
    *** Script:        History INDEX: 5
    *** Script:       WF Activity ID: e633b949cb020200d71cb9c0c24c9c20
    *** Script:     WF Activity NAME: Move to Authorize
    *** Script:   WF Activity DEF ID: 1ca8d7cf0a0a0b265e9a000c2c08248c
    *** Script: WF Activity DEF NAME: Set Values
    *** Script:     Transition Count: 1
    *** Script: Roll Back Originator: 
    *** Script:  Is Turnstile (loop): false
    *** Script:              Is Join: false
    AHR: debugDump END
    AHR: Turnstile? [false]
    AHR: Transition Count [1]
    

    ActivityHistoryRecord - getSatisfiedJoinActivities( )

    이미 통과한 이 조인 활동으로 전환되는 이력 기록의 sys_ids 반환합니다.

    표 13. 매개변수
    이름 유형 설명
    없음
    표 14. 반환
    유형 설명
    문자열 배열 이 조인 활동으로 전환되는 sys_ids 이력 기록의 배열입니다.

    ActivityHistoryRecord - getTransitionCount( )

    이 활동의 전환 횟수를 반환합니다.

    표 15. 매개변수
    이름 유형 설명
    없음
    표 16. 반환
    유형 설명
    번호 이 활동의 전환 수입니다.

    다음 코드 예제에서는 이 메서드를 사용하는 방법을 보여 줍니다. 기본 인스턴스의 가장 오래된 워크플로우 이력 기록을 사용합니다.

    // These are associated with the Change Request - Normal workflow for CHG0000037.
    var wfhGR = new GlideRecord ('wf_history');
    wfhGR.addQuery('context.id', '41cdb152db252200a6a2b31be0b8f527');
    wfhGR.addQuery('context.table', 'change_request');
    wfhGR.orderBy ('activity_index');
    wfhGR.query();
    while (wfhGR.next())  {
      var script_name = 'AHR';
      //
      //  Acquire the execution history of the workflow's activities.
      //  Do this just once while processing the first activity.
    
      if(wfhGR.activity_index == 0) {
        var model = new WorkflowModelManager( wfhGR.context );
        model.getExecutedHistory();
      }
    
    //
    // Access a hash of ActivityHistoryRecord javascript objects,
    // hashed by the sys_id of the wf_history record.
    // There will be one ActivityHistoryRecord for each activity.
    
      var ActivityHistoryRecord = model.getActivityHistoryRecordById(wfhGR.sys_id);
    
    //
    // Use ActivityHistoryRecord methods to display selected values
    
      gs.log('Log String [' + ActivityHistoryRecord.getLogString() + ']', script_name);
      gs.log('debugDump START', script_name);
      ActivityHistoryRecord.debugDump();
      gs.log('debugDump END', script_name);
      gs.log('Turnstile?[' + ActivityHistoryRecord.isTurnstile() + ']', script_name);
      gs.log('Transition Count[' + ActivityHistoryRecord.getTransitionCount() + ']\n', script_name );
    }

    출력:

    [0:00:00.133] Script completed in scope global: script
    Script execution history and recovery available here
    AHR: Log String [HISTORY RECORD:  History ID:a228c4b6dba52200a6a2b31be0b8f57a  History INDEX:0  History START TIME:1585659881000  History END TIME:1585659881000  WF Activity ID:e233b949cb020200d71cb9c0c24c9c1f  WF Activity NAME:Begin  WF Activity DEF ID:c7a5e32c0a0a0b3a002377c24ed8ea76  WF Activity DEF NAME:Begin  Transition Count: 1  Is Turnstile (loop) : false  Is Join: false]
    AHR: debugDump START
    *** Script: 
    *** Script: WF HISTORY RECORD:
    *** Script:           History ID: a228c4b6dba52200a6a2b31be0b8f57a
    *** Script:        History INDEX: 0
    *** Script:   History START TIME: 1585659881000
    *** Script:     History END TIME: 1585659881000
    *** Script:        History INDEX: 0
    *** Script:       WF Activity ID: e233b949cb020200d71cb9c0c24c9c1f
    *** Script:     WF Activity NAME: Begin
    *** Script:   WF Activity DEF ID: c7a5e32c0a0a0b3a002377c24ed8ea76
    *** Script: WF Activity DEF NAME: Begin
    *** Script:     Transition Count: 1
    *** Script: Roll Back Originator: 
    *** Script:  Is Turnstile (loop): false
    *** Script:              Is Join: false
    AHR: debugDump END
    AHR: Turnstile? [false]
    AHR: Transition Count [1]
    
    
    AHR: Log String [HISTORY RECORD:  History ID:a228c4b6dba52200a6a2b31be0b8f57d  History INDEX:1  History START TIME:1585659881000  History END TIME:1585659881000  WF Activity ID:2e33b949cb020200d71cb9c0c24c9c20  WF Activity NAME:Change moves to Assess  WF Activity DEF ID:d93a02ae0a0a0aa30077abad3fdac035  WF Activity DEF NAME:Wait for condition  Transition Count: 1  Is Turnstile (loop) : false  Is Join: false]
    AHR: debugDump START
    *** Script: 
    *** Script: WF HISTORY RECORD:
    *** Script:           History ID: a228c4b6dba52200a6a2b31be0b8f57d
    *** Script:        History INDEX: 1
    *** Script:   History START TIME: 1585659881000
    *** Script:     History END TIME: 1585659881000
    *** Script:        History INDEX: 1
    *** Script:       WF Activity ID: 2e33b949cb020200d71cb9c0c24c9c20
    *** Script:     WF Activity NAME: Change moves to Assess
    *** Script:   WF Activity DEF ID: d93a02ae0a0a0aa30077abad3fdac035
    *** Script: WF Activity DEF NAME: Wait for condition
    *** Script:     Transition Count: 1
    *** Script: Roll Back Originator: 
    *** Script:  Is Turnstile (loop): false
    *** Script:              Is Join: false
    AHR: debugDump END
    AHR: Turnstile? [false]
    AHR: Transition Count [1]
    
    
    AHR: Log String [HISTORY RECORD:  History ID:3e28c4b6dba52200a6a2b31be0b8f57e  History INDEX:2  History START TIME:1585659881000  History END TIME:1585659881000  WF Activity ID:6e33b949cb020200d71cb9c0c24c9c1f  WF Activity NAME:Requested  WF Activity DEF ID:50a78fa50a6a803f66d064255f7201a5  WF Activity DEF NAME:Approval Action  Transition Count: 1  Is Turnstile (loop) : false  Is Join: false]
    AHR: debugDump START
    *** Script: 
    *** Script: WF HISTORY RECORD:
    *** Script:           History ID: 3e28c4b6dba52200a6a2b31be0b8f57e
    *** Script:        History INDEX: 2
    *** Script:   History START TIME: 1585659881000
    *** Script:     History END TIME: 1585659881000
    *** Script:        History INDEX: 2
    *** Script:       WF Activity ID: 6e33b949cb020200d71cb9c0c24c9c1f
    *** Script:     WF Activity NAME: Requested
    *** Script:   WF Activity DEF ID: 50a78fa50a6a803f66d064255f7201a5
    *** Script: WF Activity DEF NAME: Approval Action
    *** Script:     Transition Count: 1
    *** Script: Roll Back Originator: 
    *** Script:  Is Turnstile (loop): false
    *** Script:              Is Join: false
    AHR: debugDump END
    AHR: Turnstile? [false]
    AHR: Transition Count [1]
    
    
    AHR: Log String [HISTORY RECORD:  History ID:0d38c4b6dba52200a6a2b31be0b8f5cc  History INDEX:3  History START TIME:1585659881000  History END TIME:1585659891000  WF Activity ID:2a33b949cb020200d71cb9c0c24c9c26  WF Activity NAME:Technical approvals  WF Activity DEF ID:354e911f0a0a029a00e6a0e6ad74206f  WF Activity DEF NAME:Approval - Group  Transition Count: 1  Is Turnstile (loop) : false  Is Join: false]
    AHR: debugDump START
    *** Script: 
    *** Script: WF HISTORY RECORD:
    *** Script:           History ID: 0d38c4b6dba52200a6a2b31be0b8f5cc
    *** Script:        History INDEX: 3
    *** Script:   History START TIME: 1585659881000
    *** Script:     History END TIME: 1585659891000
    *** Script:        History INDEX: 3
    *** Script:       WF Activity ID: 2a33b949cb020200d71cb9c0c24c9c26
    *** Script:     WF Activity NAME: Technical approvals
    *** Script:   WF Activity DEF ID: 354e911f0a0a029a00e6a0e6ad74206f
    *** Script: WF Activity DEF NAME: Approval - Group
    *** Script:     Transition Count: 1
    *** Script: Roll Back Originator: 
    *** Script:  Is Turnstile (loop): false
    *** Script:              Is Join: false
    AHR: debugDump END
    AHR: Turnstile? [false]
    AHR: Transition Count [1]
    
    
    AHR: Log String [HISTORY RECORD:  History ID:c538c4b6dba52200a6a2b31be0b8f5ce  History INDEX:4  History START TIME:1585659891000  History END TIME:1585659891000  WF Activity ID:6233b949cb020200d71cb9c0c24c9c5b  WF Activity NAME:Check if Change is "On hold"  WF Activity DEF ID:98f621ca0a0a0b5900f7c291f5e45a0e  WF Activity DEF NAME:If  Transition Count: 1  Is Turnstile (loop) : false  Is Join: false]
    AHR: debugDump START
    *** Script: 
    *** Script: WF HISTORY RECORD:
    *** Script:           History ID: c538c4b6dba52200a6a2b31be0b8f5ce
    *** Script:        History INDEX: 4
    *** Script:   History START TIME: 1585659891000
    *** Script:     History END TIME: 1585659891000
    *** Script:        History INDEX: 4
    *** Script:       WF Activity ID: 6233b949cb020200d71cb9c0c24c9c5b
    *** Script:     WF Activity NAME: Check if Change is "On hold"
    *** Script:   WF Activity DEF ID: 98f621ca0a0a0b5900f7c291f5e45a0e
    *** Script: WF Activity DEF NAME: If
    *** Script:     Transition Count: 1
    *** Script: Roll Back Originator: 
    *** Script:  Is Turnstile (loop): false
    *** Script:              Is Join: false
    AHR: debugDump END
    AHR: Turnstile? [false]
    AHR: Transition Count [1]
    
    
    AHR: Log String [HISTORY RECORD:  History ID:cd3808b6dba52200a6a2b31be0b8f501  History INDEX:5  History START TIME:1585659891000  History END TIME:1585659891000  WF Activity ID:e633b949cb020200d71cb9c0c24c9c20  WF Activity NAME:Move to Authorize  WF Activity DEF ID:1ca8d7cf0a0a0b265e9a000c2c08248c  WF Activity DEF NAME:Set Values  Transition Count: 1  Is Turnstile (loop) : false  Is Join: false]
    AHR: debugDump START
    *** Script: 
    *** Script: WF HISTORY RECORD:
    *** Script:           History ID: cd3808b6dba52200a6a2b31be0b8f501
    *** Script:        History INDEX: 5
    *** Script:   History START TIME: 1585659891000
    *** Script:     History END TIME: 1585659891000
    *** Script:        History INDEX: 5
    *** Script:       WF Activity ID: e633b949cb020200d71cb9c0c24c9c20
    *** Script:     WF Activity NAME: Move to Authorize
    *** Script:   WF Activity DEF ID: 1ca8d7cf0a0a0b265e9a000c2c08248c
    *** Script: WF Activity DEF NAME: Set Values
    *** Script:     Transition Count: 1
    *** Script: Roll Back Originator: 
    *** Script:  Is Turnstile (loop): false
    *** Script:              Is Join: false
    AHR: debugDump END
    AHR: Turnstile? [false]
    AHR: Transition Count [1]
    

    ActivityHistoryRecord - getUnSatisfiedJoinActivities( )

    조인이 여전히 기다리고 있는 이 조인 활동으로 전환되는 기록 레코드의 sys_ids 반환합니다.

    표 17. 매개변수
    이름 유형 설명
    없음
    표 18. 반환
    유형 설명
    문자열 배열 이 조인 활동으로 전환되는 sys_ids 이력 기록의 배열입니다.

    ActivityHistoryRecord - isARollback( )

    이 활동이 롤백 활동 중 하나인지 여부를 결정합니다.

    표 19. 매개변수
    이름 유형 설명
    없음
    표 20. 반환
    유형 설명
    부울

    활동이 롤백 활동 중 하나인지 여부를 나타내는 플래그입니다.

    유효한 값은 다음과 같습니다.
    • true: 활동이 롤백입니다.
    • false: 활동이 롤백이 아닙니다.

    ActivityHistoryRecord - isIdADestination(String ahrSys_id)

    전달된 sys_id이 ActivityHistoryRecord의 이 인스턴스와 연결된 전환의 대상인지 확인합니다.

    표 21. 매개변수
    이름 유형 설명
    ahrSys_id 문자열 테이블 wf_history에서 활동 이력 sys_id.
    표 22. 반환
    유형 설명
    부울 True, 전달된 sys_id가 전환의 대상인 경우.

    ActivityHistoryRecord - isJoin( )

    이 활동이 조인인지 여부를 결정합니다.

    표 23. 매개변수
    이름 유형 설명
    없음
    표 24. 반환
    유형 설명
    부울 활동이 "참가"인 경우 예입니다.

    ActivityHistoryRecord - isJoinSatisfied( )

    arriveState의 값을 검사합니다.

    전환 sys_id으로의 전환이 조인인 활동을 가리키는 경우 재생 중에 호출됩니다.

    표 25. 매개변수
    이름 유형 설명
    없음
    표 26. 반환
    유형 설명
    부울 조인이 충족되는 경우 True입니다.

    ActivityHistoryRecord - isJoinWaitingForActivity(문자열 배열 activityIds)

    이 이력 기록에 시드된 것으로 예상되는 수신 wf_activity sys_id 테스트합니다.

    그렇다면 이미 통과했는지 확인하기 위해 테스트를 거칩니다. 이 경우 이 조인은 이 활동을 대기하지 않으며 대기 중인 활동을 더 다운스트림에서 확인해야 합니다. 이 테스트는 모델이 진행될 때 순서대로 호출되므로 롤백 및 루프 인스턴스에서 가정합니다. sys_id 여기에 있고 플래그가 이면 대기 중인 이 조인이 시퀀스의 위쪽에 있습니다. 이러한 종류의 검사는 조인의 기록 레코드가 기록 테이블에서 제거되므로 해당 기록 테이블에 일치하는 레코드가 없는 전환 테이블에 있을 수 있지만 동일한 조인의 이전 실행 인스턴스와 여전히 적절하게 일치하기 때문에 필요합니다.

    표 27. 매개변수
    이름 유형 설명
    activityId 문자열 배열 조인으로 향하는 wf_activity.sys_ids의 배열입니다.
    표 28. 반환
    유형 설명
    부울 활동이 이미 완료된 경우 True입니다.

    ActivityHistoryRecord - isRolledBack( )

    이 워크플로우가 롤백되었는지 여부를 결정합니다.

    표 29. 매개변수
    이름 유형 설명
    없음
    표 30. 반환
    유형 설명
    부울 이 워크플로우가 롤백된 경우 True입니다.

    ActivityHistoryRecord - isTurnstile( )

    현재 활동이 개찰구인지 여부를 결정합니다.

    표 31. 매개변수
    이름 유형 설명
    없음
    표 32. 반환
    유형 설명
    부울

    활동이 개찰구인지 여부를 나타내는 플래그입니다.

    유효한 값은 다음과 같습니다.
    • true: 활동이 개찰구입니다.
    • false: 활동은 개찰구가 아닙니다.

    다음 코드 예제에서는 이 메서드를 사용하여 개찰구를 검색하는 방법을 보여 줍니다. 이는 롤백 워크플로우 활동에 있는 워크플로우를 기반으로 합니다. 요청된 항목(RITM) 양식에 워크플로우를 표시할워크플로우 활동 이력 탭을 살펴보면 이 스크립트의 출력을 확인할 수 있습니다.

    var wfhGR = new GlideRecord ('wf_history');
    wfhGR.addQuery ('context.id','cc45480d2f9b8110b99eb2e72799b6f9'); // sys_id of the RITM
    wfhGR.addQuery ('context.table','sc_req_item'); // Table for the RITM
    wfhGR.orderBy  ('activity_index');
    wfhGR.query();
    var turnstile_count = 0;
    while (wfhGR.next())  {
      var script_name = 'AHR';
      //
      // Acquire the execution history of the workflow's activities.
      // Do this just once while processing the first activity.
    
      if(wfhGR.activity_index == 0) {
        var model = new WorkflowModelManager(wfhGR.context);
        model.getExecutedHistory();
      }
    
      //
      // Access a hash of ActivityHistoryRecord javascript objects,
      // hashed by the sys_id of the wf_history record.
      // There will be one ActivityHistoryRecord for each activity.
    
      var ActivityHistoryRecord = model.getActivityHistoryRecordById(wfhGR.sys_id);
    
      //
      // Use ActivityHistoryRecord methods to display turnstile activities.
    
      if(ActivityHistoryRecord.isTurnstile()) {
        var log_string = ActivityHistoryRecord.getLogString();
        var name_start = log_string.indexOf('WF Activity NAME:');
        var name_end = log_string.indexOf('WF Activity DEF ID:');
        var name = log_string.substring(name_start, name_end).trim();
        gs.log(name + ' Activity ' + wfhGR.activity_index + ' is a turnstile.', script_name);
        turnstile_count++;
      } 
    } 
    gs.log ('Turnstile activities detected: ' + turnstile_count, script_name);

    출력:

    AHR: WF Activity NAME:Prevent infinite loops Activity 8 is a turnstile.
    AHR: WF Activity NAME:Prevent infinite loops Activity 13 is a turnstile.
    AHR: WF Activity NAME:Prevent infinite loops Activity 18 is a turnstile.
    AHR: WF Activity NAME:Prevent infinite loops Activity 23 is a turnstile.
    AHR: Turnstile activities detected: 4