WorkflowModelManager - 전역

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 23분
  • WorkflowModelManager 스크립트 포함은 워크플로 모델을 쿼리하고, 지정된 워크플로 기록 항목 간에 앞뒤로 이동하고, 작업 및 전환 관련 정보에 대해 기록을 쿼리하는 메서드를 제공합니다.

    WorkflowModelManager 스크립트 포함과의 상호 작용은 ActivityHistoryRecord 데이터 개체를 통해 이루어집니다. ActivityHistoryRecord 개체는 내부 클래스이며 WorkflowModelManager와 상호 작용하는 동안에만 사용됩니다.

    워크플로우 활동의 실행 이력을 얻으려면 다음과 같이 하십시오.
    var model = new WorkflowModelManager('myContextId');
    var activities = model.getExecutedHistory();
    
    워크플로우 재생을 출력하려면:
    var model = new WorkflowModelManager('myContextId');
    model.getExecutedHistory();
    model.playBack();
    

    이때 실행된 전환을 로드하려면 playBack이 필요합니다. 이것은 또한 특정 활동으로 롤백하기 위해 모델에서 뒤로 걷는 역할도 합니다.

    캐시된 모델의 상세 정보를 보려면 다음을 수행합니다.
    var model = new WorkflowModelManager('myContextId');
     model.getExecutedHistory();
     model.dump();

    WorkflowModelManager - WorkflowModelManager(String contextId)

    지정된 컨텍스트 내에서 새 WorkflowModelManager 개체(생성자)를 만듭니다.

    표 1. 매개변수
    이름 유형 설명
    contextId 문자열 WorkflowModelManager를 만들 컨텍스트의 ID입니다.
    표 2. 반환
    유형 설명
    활동 이력 기록 요청된 ActivityHistoryRecord JavaScript 개체입니다.
    var model = new WorkflowModelManager('MyContextId');

    WorkflowModelManager - getActivityHistoryRecordById(String, haRecordSysId)

    인수에 제공된 항목에 wf_history.sys_id 의해 캐시된 이력 활동을 조회합니다.

    표 3. 매개변수
    이름 유형 설명
    haRecordSysId 문자열 원하는 활동 이력 [wf_history] 기록의 Sys_id.
    표 4. 반환
    유형 설명
    활동 이력 기록 요청된 ActivityHistoryRecord JavaScript 객체입니다.

    이 예는 지정된 이력 활동 기록을 얻기 위해 메서드를 사용하는 방법을 보여줍니다.

    var model = new WorkflowModelManager('a71efa6345550110a86630cf9552f3af');  // The sys_id of the wf_context
    model.getExecutedHistory();
    var current_hist_obj = model.getActivityHistoryRecordById('2b1efa6345550110a86630cf9552f3bc'); // The sys_id of the desired record
    gs.info(JSON.stringify(current_hist_obj));

    출력:

    
    {
       "sys_id":"2b1efa6345550110a86630cf9552f3bc",
       "index":"3",
       "startTime":1643795456000,
       "endTime":1643795456000,
       "wfaId":"31bf2a05e7c133009a610558d2f6a968",
       "wfaIsParent":{
         
       },
       "parent":"",
       "wfaName":{
         
       },
       "adId":"db8c65aec0a8016501d00259bc7203a4",
       "adName":{
         
       },
       "transitions":[
          {
             "sys_id":"e31efa6345550110a86630cf9552f3c0",
             "ahrId":"2b1efa6345550110a86630cf9552f3bc",
             "to":"39bf2a05e7c133009a610558d2f6a970",
             "from":"31bf2a05e7c133009a610558d2f6a968",
             "rolledBack":"false",
             "rolledBackBy":""
          },
          {
             "sys_id":"e71efa6345550110a86630cf9552f3c0",
             "ahrId":"2b1efa6345550110a86630cf9552f3bc",
             "to":"7dbf2a05e7c133009a610558d2f6a96b",
             "from":"31bf2a05e7c133009a610558d2f6a968",
             "rolledBack":"false",
             "rolledBackBy":""
          }
       ],
       "rolledBackBy":"",
       "ARRIVED":true,
       "NOT_ARRIVED":false,
       "joinFroms":[
         
       ],
       "joinSatisfied":false,
       "rollingBackBy":0
    }

    WorkflowModelManager - getAllTransitionedIntoActivity(개체 설명)

    실행 및 인수에 표시된 sys_id 활동으로 전환된 이력 활동을 조회합니다.

    다음 상태는 워크플로우의 기록에서 실행된 ActivityHistoryRecords와 연결된 전환에서 TO로 존재하는 haRecord에 표시된 활동과 연결된 상태를 기반으로 wf_activity.sys_id 합니다. (이는 실행 순서(시간별)에서 haRecord 앞에 오는 TO 전환만 반환하는 getPreviousByTransition과 다릅니다.) 반환 값은 인수 haRecord.wfaId를 TO 활동으로 식별하는 ActivityHistoryRecords의 컬렉션입니다. 반환 값은 전환되는 실행된 기록 컬렉션의 모든 전환을 기반으로 합니다. 이 활동 이전에 실행된 활동을 시간 내에 가져오려면 getPreviousByExecutedOrder를 사용합니다.

    표 5. 매개변수
    이름 유형 설명
    설명 객체 ActivityHistoryRecord JavaScript 객체입니다.
    표 6. 반환
    유형 설명
    객체 배열 ActivityHistoryRecord JavaScript 객체의 배열입니다.

    WorkflowModelManager - getAllTransitionedIntoActivityId(String, haRecordSysId)

    실행 및 인수에 표시된 sys_id 활동으로 전환된 이력 활동을 조회합니다. next 상태는 워크플로우의 기록에서 실행된 ActivityHistoryRecords와 연결된 전환에서 TO로 존재하는 haRecord에 표시된 활동과 연결된 상태를 기반으로 wf_activity.sys_id 합니다. (이는 실행 순서(시간별)에서 haRecord 앞에 오는 TO 전환만 반환하는 getPreviousByTransition과 다릅니다. 반환 값은 인수 haRecord.wfaId를 TO 활동으로 식별하는 ActivityHistoryRecords의 컬렉션입니다.

    next 상태는 워크플로우의 기록에서 실행된 ActivityHistoryRecords와 연결된 전환에서 TO로 존재하는 haRecord에 표시된 활동과 연결된 상태를 기반으로 wf_activity.sys_id 합니다. (이는 실행 순서(시간별)에서 haRecord 앞에 오는 TO 전환만 반환하는 getPreviousByTransition과 다릅니다. 반환 값은 인수 haRecord.wfaId를 TO 활동으로 식별하는 ActivityHistoryRecords의 컬렉션입니다.

    표 7. 매개변수
    이름 유형 설명
    haRecordSysId 문자열 활동 이력의 sys_id(테이블 wf_history).
    표 8. 반환
    유형 설명
    객체 배열 요청된 ActivityHistoryRecord JavaScript 객체의 배열입니다.
    var model = new WorkflowModelManager('a143585c3b001000dada82c09ccf3d44');
          model.getExecutedHistory();
          var activity = model.begin;
          gs.print('activity: ' + activity.wfaName + ', transitions: ' + activity.transitions.length);
          while( activity != null){    
              gs.print('activity: ' + activity.wfaName + ', transitions: ' + activity.transitions.length);    
              var parents = model.getAllTransitionedIntoActivity(activity);
              for( var i = 0; i < parents.length; i++ ){
                  gs.print(' ---------------  parent activity: ' + parents[i].wfaName );
                }
               activity = model.getNextByExecutedOrder( activity );
          }
        

    WorkflowModelManager - getExecutedHistory( )

    WorkflowModelManager 개체를 초기화하기 위해 호출해야 하는 작업자 메서드입니다. WorkflowModelManager 개체를 초기화하는 과정에서 getExecutedHistory()activityHistoryRecord 데이터 개체 배열( WorkflowModelManager 클래스의 멤버)을 만들고 채웁니다. 대부분의 WorkflowModelManager 메서드는 activityHistoryRecord 배열의 하위 집합을 반환합니다. 그런 다음 스크립트에서 하나 이상의 activityHistoryRecord 메서드를 호출하여 추가 작업을 수행할 수 있습니다.

    표 9. 매개변수
    이름 유형 설명
    없음
    표 10. 반환
    유형 설명
    문자열 배열 테이블 wf_history의 sys_ids 정렬된 배열 클라이언트 코드가 반환 값을 사용할 가능성은 거의 없습니다. 후속 메서드 호출에서 사용할 수 있도록 이 개체에 내부적으로 보관됩니다.
    var model = new WorkflowModelManager('myContextId');
    var activities = model.getExecutedHistory();
    var current = model.getActivityHistoryRecordById('d6681d573b130000dada82c09ccf3d10');

    WorkflowModelManager - getFinalExecutedActivityList( )

    컨텍스트별로 wf_history 테이블을 쿼리하고 이 객체의 생성에 설정된 컨텍스트에 의해 지정된 워크플로우에서 실행된 모든 활동을 검색합니다.

    이 함수는 새 activity_index 사용하여 서버 측 ActivityManager.java 전달되는 각 활동이 데이터베이스에서 나오는 순서를 강제하는 정확한 순서로 실행된 활동 목록을 생성합니다. 이 전화는 전체 그림을 제공하지 않습니다. 전환을 로드하고 매핑해야 합니다.

    표 11. 매개변수
    이름 유형 설명
    없음
    표 12. 반환
    유형 설명
    객체 배열 ActivityHistoryRecord javascript 객체의 배열입니다.

    WorkflowModelManager - getFinalExecutedActivityIdList( )

    성공적으로 실행되었지만 함수가 호출된 순간까지 롤백되거나 건너뛰지 않은 모든 활동의 목록을 wf_history.sys_ids 가져옵니다.

    표 13. 매개변수
    이름 유형 설명
    없음
    표 14. 반환
    유형 설명
    문자열 배열 실행된 활동에 대한 wf_history.sys_id 값의 배열입니다.
    var model = new WorkflowModelManager('ee3e0a053b101000dada82c09ccf3d7c');
          model.getExecutedHistory();
          var finals = model.getFinalExecutedActivityIdList();
          gs.print(' EXECUTION PATH IDs --------------- : '  + finals.length);
          
          for ( var x = 0; x < finals.length; x++ ) {
              gs.print(finals[x] );
          }

    WorkflowModelManager - getNextByExecutedOrder(객체 haRecord)

    인수에 제공된 활동 바로 다음에 실행된 이력 활동을 조회합니다.

    next 상태는 시간상 가장 가까운 이전 활동을 반영하는 활동 인덱스를 기반으로 하며, 제공된 활동이 전환된 가장 가까운 다음 wf_activity 반드시 일치하지는 않습니다. 전달된 이 haRecord로 전환된 가장 가까운 다음 활동을 가져오려면 getNextByTransitionOrder(haRecord)를 사용하십시오.
    주:
    실행 순서 배열을 조합하는 과정에서 기록 개체가 삭제된 배열에 공백이 남습니다. 이는 배열의 인덱스와 객체의 activity_index 동기화 상태를 유지하기 위해 수행됩니다. 이러한 이유로 실행 순서 배열에서 나오는 모든 객체는 nil()에 대해 테스트되어야 하며 activity_index 또는 배열 인덱스 값만을 기반으로 이전 레코드로 가정해서는 안 됩니다.
    표 15. 매개변수
    이름 유형 설명
    ha기록 객체 ActivityHistoryRecord JavaScript 객체입니다.
    표 16. 반환
    유형 설명
    객체 요청된 ActivityHistoryRecord JavaScript 객체입니다.

    다음 예제에서는 getNextByExecutedOrder() 메서드를 사용하여 지정된 작업 이후에 실행된 기록 작업을 검색하는 방법을 보여 줍니다.

    var model = new WorkflowModelManager('34451ec2cb200200d71cb9c0c24c9c66'); // Sys_id of the workflow context
    model.getExecutedHistory();
    var current_hist_obj = model.getActivityHistoryRecordById('0199483adba52200a6a2b31be0b8f562');// Sys_id of the current activity from wf_history table
    var next_hist_obj = model.getNextByExecutedOrder(current_hist_obj);
    gs.info(JSON.stringify(next_hist_obj));

    출력:

    {
       "sys_id":"b2c5a06e07e0011094b4fe4f7c1ed049",
       "index":"3",
       "startTime":1640265864000,
       "endTime":1640265864000,
       "wfaId":"64d4e4aa07e0011094b4fe4f7c1ed060",
       "wfaIsParent":{
         
       },
       "parent":"",
       "wfaName":{
         
       },
       "adId":"1ca8d7cf0a0a0b265e9a000c2c08248c",
       "adName":{
         
       },
       "transitions":[
          {
             "sys_id":"bac5a06e07e0011094b4fe4f7c1ed07d",
             "ahrId":"b2c5a06e07e0011094b4fe4f7c1ed049",
             "to":"e0d4acaa07e0011094b4fe4f7c1ed062",
             "from":"64d4e4aa07e0011094b4fe4f7c1ed060",
             "rolledBack":"false",
             "rolledBackBy":""
          }
       ],
       "rolledBackBy":"",
       "ARRIVED":true,
       "NOT_ARRIVED":false,
       "joinFroms":[
         
       ],
       "joinSatisfied":false,
       "rollingBackBy":0
    }
    

    WorkflowModelManager - getNextByExecutedOrderId(String haRecordSysId)

    인수에 제공된 항목에 wf_history.sys_id 의해 캐시된 기록 활동을 검색한 다음 검색된 JavaScript 객체로 getNextByExecutedOrder() 를 호출합니다.

    표 17. 매개변수
    이름 유형 설명
    haRecordSysId 문자열 활동 이력의 sys_id(테이블 wf_history).
    표 18. 반환
    유형 설명
    객체 요청된 ActivityHistoryRecord JavaScript 개체입니다.
    var model = new WorkflowModelManager('7b3e01573b130000dada82c09ccf3dcf');
          model.getExecutedHistory();
          var current = model.getActivityHistoryRecordById('d6681d573b130000dada82c09ccf3d10');
          current.debugDump();
          
          var results = model.getNextByExecutedOrderId(current.sys_id);
          results.debugDump();

    WorkflowModelManager - getNextByTransitionId(String, haRecordSysId)

    인수에 제공된 sys_id로 식별된 활동 바로 다음에 실행된 이력 활동을 검색합니다.

    이 함수는 제공된 wf_history.sys_id 것과 연결된 캐시된 기록 레코드를 검색한 다음 getNextByTransition을 호출합니다. 반환 값은 제출되기 전에 haRecord 발생한 전환을 기반으로 하며 반드시 시간 직전에 haRecord 실행된 활동을 기반으로 하는 것은 아닙니다. 이 활동 이전에 실행된 활동을 시간 내에 가져오려면 getNextByExecutedOrder를 사용합니다.

    표 19. 매개변수
    이름 유형 설명
    haRecordSysId 문자열 원하는 활동 이력 [wf_history] 기록의 Sys_id.
    표 20. 반환
    유형 설명
    객체 배열 ActivityHistoryRecord JavaScript 객체의 배열입니다.
    var model = new WorkflowModelManager('7b3e01573b130000dada82c09ccf3dcf');
    model.getExecutedHistory();
    model.playBack();
          
    var current = model.getActivityHistoryRecordById('d6681d573b130000dada82c09ccf3d10');
    current.debugDump();
    var results = model.getNextByTransitionId(current.sys_id);
    gs.print('COMPLETED NEXT' + results.length );
    for(var i = 0; i < results.length; i++){
      results[i].debugDump();
    }

    WorkflowModelManager - getPreviousByExecutedOrder(객체 haRecord)

    인수에 제공된 활동 바로 이전에 실행된 이력 활동을 조회합니다.

    이전 상태는 시간상 가장 가까운 이전 활동을 반영하는 활동 인덱스를 기반으로 하며, 이 활동에 대한 유효한 전환이 있는 가장 가까운 이전 활동이 반드시 필요한 것은 아닙니다. 이 haRecord로 전환된 가장 가까운 이전 활동을 가져오려면 getPreviousByTransition( haRecord) 를 사용하십시오.
    주:
    실행 순서 배열을 조합하는 과정에서 기록 개체가 삭제된 배열에 공백이 남습니다. 이렇게 하면 배열의 인덱스와 객체의 activity_index 동기화된 상태로 유지됩니다. 이러한 이유로 실행 순서 배열에서 나오는 모든 객체는 nil()에 대해 테스트되어야 하며 activity_index 또는 배열 인덱스 값을 기반으로 이전 레코드로 가정되지 않아야 합니다.
    표 21. 매개변수
    이름 유형 설명
    ha기록 객체 ActivityHistoryRecord JavaScript 객체
    표 22. 반환
    유형 설명
    객체 요청된 ActivityHistoryRecord JavaScript 개체입니다.

    WorkflowModelManager - getPreviousByExecutedOrderId(String, haRecordSysId)

    인수에 제공된 항목에 wf_history.sys_id 의해 캐시된 이력 활동을 검색한 다음 검색된 JavaScript 객체로 getPreviousByExecutedOrder() 를 호출합니다.

    표 23. 매개변수
    이름 유형 설명
    haRecordSysId 문자열 워크플로우 이력 시스템 ID(wf_history.sys_id)
    표 24. 반환
    유형 설명
    활동 이력 기록 요청된 ActivityHistoryRecord JavaScript 개체입니다.
    var model = new WorkflowModelManager('contextId');
          model.getExecutedHistory();
          var current = model.getActivityHistoryRecordById('wf_history.sys_id');
          current.debugDump();
          
          var results = model.getPreviousByExecutedOrderId(current.sys_id);
          results.debugDump();

    WorkflowModelManager - getPreviousByTransition(Object haRecord)

    인수에 제공된 활동 바로 전에 실행된 이력 활동을 조회합니다.

    다음 상태는 실행 시퀀스에서 haRecord 앞에 오는 ActivityHistoryRecords와 연결된 전환에서 TO로 존재하는 haRecord에 표시된 활동과 연결된 wf_activity.sys_id를 기반으로 합니다. (이는 실행 순서에서 지정된 haRecord까지 모든 TO 전환을 반환하는 getAllTransitionedIntoActivity 와 다릅니다.) 반환 값은 인수 haRecord.wfaId를 TO 활동으로 식별하는 ActivityHistoryRecords의 컬렉션입니다. 반환 값은 제출된 haRecord 이전에 수행된 전환을 기반으로 하며 반드시 haRecord 직전에 실행된 활동을 기반으로 하는 것은 아닙니다. 이 활동 이전에 실행된 활동을 시간 내에 가져오려면 getPreviousByExecutedOrder를 사용합니다.

    표 25. 매개변수
    이름 유형 설명
    ha기록 객체 ActivityHistoryRecord JavaScript 객체입니다.
    표 26. 반환
    유형 설명
    객체 배열 요청된 ActivityHistoryRecord JavaScript 객체의 배열입니다.

    WorkflowModelManager - getPreviousByTransitionId(String, haRecordSysId)

    인수에 제공된 활동 바로 전에 실행된 이력 활동을 조회합니다.

    next 상태는 실행 시퀀스에서 haRecord 앞에 오는 ActivityHistoryRecords와 연결된 전환에서 TO로 존재하는 haRecord에 표시된 활동과 연결된 연결을 기반으로 wf_activity.sys_id 합니다. 반환 값은 인수 haRecord.wfaId를 TO 활동으로 식별하는 ActivityHistoryRecords의 컬렉션입니다. 반환 값은 haRecord sumbited 전에 어떤 전환이 발생했는지를 기반으로 하며, 반드시 haRecord 직전에 실행된 활동을 기반으로 하는 것은 아닙니다. 이 활동 이전에 실행된 활동을 시간 내에 가져오려면 getPreviousByExecutedOrder()를 사용하십시오.

    표 27. 매개변수
    이름 유형 설명
    haRecordSysId 문자열 활동 이력의 Sys_id입니다.

    테이블: 워크플로우 기록 [wf_history]

    표 28. 반환
    유형 설명
    객체 요청된 ActivityHistoryRecord JavaScript 객체의 배열입니다.

    다음 예제에서는 getPreviousByTransitionId() 메서드를 사용하여 ActivityHistoryRecord 개체를 가져오는 방법을 보여 줍니다.

    var w_history = new GlideRecord('wf_history');
    w_history.addQuery('context.id', '089ebdad1b420110c97a40c6cc4bcbf7'); // Pass sys_id of record -> Requested Item / Change Request / Request, etc....
    w_history.query();
    if (w_history.next()) {
        var model = new WorkflowModelManager(w_history.context); // Call sys_id of the workflow context
        model.getExecutedHistory();
        var previousObje_hist_obj = model.getPreviousByTransitionId(w_history.sys_id); // Sys_id of wf_history table
        gs.info(JSON.stringify(previousObje_hist_obj));
    }

    출력:

    [
      {
        "sys_id": "a40a92950721011094b4fe4f7c1ed05e",
        "index": "1",
        "startTime": 1644255752000,
        "endTime": 1644255758000,
        "wfaId": "28200e2a77873300b473455caa1061cd",
        "wfaIsParent": {},
        "parent": "",
        "wfaName": {},
        "adId": "3961a1da0a0a0b5c00ecd84822f70d85",
        "adName": {},
        "transitions": [
          {
            "sys_id": "060ad6950721011094b4fe4f7c1ed016",
            "ahrId": "a40a92950721011094b4fe4f7c1ed05e",
            "to": "24204e2a77873300b473455caa10611a",
            "from": "28200e2a77873300b473455caa1061cd",
            "rolledBack": "false",
            "rolledBackBy": ""
          }
        ],
        "rolledBackBy": "",
        "ARRIVED": true,
        "NOT_ARRIVED": false,
        "joinFroms": [],
        "joinSatisfied": false,
        "rollingBackBy": 0
      }
    ]