WorkflowModelManager - 전역
WorkflowModelManager 클래스를 사용하면 워크플로 모델을 쿼리하고, 지정된 wf_history items를 앞뒤로 이동하고, 활동 및 전환 관련 정보에 대한 기록을 쿼리할 수 있습니다.
WorkflowModelManager 클래스와의 상호 작용은 ActivityHistoryRecord 데이터 개체를 통해 이루어집니다. ActivityHistoryRecord는 내부 클래스이며 WorkflowModelManager와 상호 작용하는 동안에만 사용됩니다.
var model = new WorkflowModelManager('myContextId');
var activities = model.getExecutedHistory();
var model = new WorkflowModelManager('myContextId');
model.getExecutedHistory();
model.playBack();
이때, 실행된 트랜지션을 불러오기 위해서는 재생이 필요하다. 이것은 또한 특정 활동으로 롤백하기 위해 모델에서 뒤로 이동하는 역할을 합니다.
var model = new WorkflowModelManager('myContextId');
model.getExecutedHistory();
model.dump();WorkflowModelManager - getActivityHistoryRecordById(String haRecordSysId)
인수에 제공된 항목에 의해 wf_history.sys_id 캐시된 이력 활동을 검색합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| haRecordSysID | 문자열 | 원하는 활동 기록[wf_history] 기록의 Sys_id입니다. |
| 유형 | 설명 |
|---|---|
| ActivityHistory기록 | 요청한 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(object description)
실행된 이력 활동을 검색하고 인수에서 the sys_id 로 표현된 활동으로 전환합니다.
다음 상태는 워크플로우 기록에서 실행된 모든 ActivityHistoryRecords와 연결된 전환에서 TO로 존재하는 haRecord에 표현된 활동과의 연결을 기반으로 wf_activity.sys_id 합니다. (이는 실행 시퀀스에서 haRecord 앞에 오는 TO 전환만 시간별)으로 반환하는 getPreviousByTransition과 다릅니다. 반환 값은 인수 haRecord.wfaId를 TO 활동으로 식별하는 ActivityHistoryRecords의 컬렉션입니다. 반환 값은 전환되는 실행된 기록 컬렉션의 모든 전환을 기반으로 합니다. 이 활동 이전에 실행된 활동을 시간 내에 가져오려면 getPreviousByExecutedOrder를 사용합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 설명 | 객체 | ActivityHistoryRecord JavaScript 객체입니다. |
| 유형 | 설명 |
|---|---|
| 객체 배열 | ActivityHistoryRecord JavaScript 객체의 배열입니다. |
WorkflowModelManager - getAllTransitionedIntoActivityId(String haRecordSysId)
실행된 이력 활동을 검색하고 인수에서 the 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의 컬렉션입니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| haRecordSysID | 문자열 | 활동 기록의 sys_id입니다(테이블 wf_history). |
| 유형 | 설명 |
|---|---|
| 객체 배열 | 요청된 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 메서드 중 하나 이상을 호출하여 추가 작업을 수행할 수 있습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 문자열 배열 | 테이블 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 정확한 순서로 실행된 활동 목록을 생성합니다. 이 전화는 전체 그림을 제공하지 않습니다. 전환을 로드하고 매핑해야 합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 객체 배열 | ActivityHistoryRecord javascript 객체의 배열입니다. |
WorkflowModelManager - getFinalExecutedActivityIdList( )
성공적으로 실행되었지만 함수가 호출된 순간까지 롤백되거나 건너뛰지 않은 모든 활동의 목록을 wf_history.sys_ids 가져옵니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 문자열 배열 | 실행된 활동에 대한 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)
인수에 제공된 활동 직후에 실행된 이력 활동을 검색합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 하레코드 | 객체 | ActivityHistoryRecord JavaScript 객체입니다. |
| 유형 | 설명 |
|---|---|
| 객체 | 요청된 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() 를 호출합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| haRecordSysID | 문자열 | 활동 기록의 sys_id입니다(테이블 wf_history). |
| 유형 | 설명 |
|---|---|
| 객체 | 요청된 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를 사용합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| haRecordSysID | 문자열 | 원하는 활동 기록[wf_history] 기록의 Sys_id입니다. |
| 유형 | 설명 |
|---|---|
| 객체 배열 | 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)
인수에 제공된 활동 직전에 실행된 이력 활동을 검색합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 하레코드 | 객체 | ActivityHistoryRecord JavaScript 객체 |
| 유형 | 설명 |
|---|---|
| 객체 | 요청된 ActivityHistoryRecord JavaScript 객체입니다. |
WorkflowModelManager - getPreviousByExecutedOrderId(String haRecordSysId)
인수에 제공된 것으로 캐시 wf_history.sys_id 된 이력 활동을 검색한 다음 검색된 JavaScript 객체로 getPreviousByExecutedOrder() 를 호출합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| haRecordSysID | 문자열 | 워크플로우 기록 시스템 ID(wf_history.sys_id) |
| 유형 | 설명 |
|---|---|
| ActivityHistory기록 | 요청된 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(haRecord 객체)
인수에 제공된 이력 활동 직전에 실행된 이력 활동을 검색합니다.
다음 상태는 실행 시퀀스에서 haRecord 앞에 오는 ActivityHistoryRecords와 연결된 전환에서 TO로 존재하는 haRecord에 표시된 활동과 연결된 wf_activity.sys_id를 기반으로 합니다. (이는 실행 시퀀스에서 주어진 haRecord까지의 모든 TO 전환을 반환하는 getAllTransitionedIntoActivity 와 다릅니다.) 반환 값은 인수 haRecord.wfaId를 TO 활동으로 식별하는 ActivityHistoryRecords의 컬렉션입니다. 반환 값은 haRecord가 제출되기 전에 발생한 전환을 기반으로 하며, haRecord 직전에 실행된 활동이 반드시 필요한 것은 아닙니다. 이 활동 이전에 실행된 활동을 시간 내에 가져오려면 getPreviousByExecutedOrder를 사용합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 하레코드 | 객체 | ActivityHistoryRecord JavaScript 객체입니다. |
| 유형 | 설명 |
|---|---|
| 객체 배열 | 요청된 ActivityHistoryRecord JavaScript 객체의 배열입니다. |
WorkflowModelManager - getPreviousByTransitionId(String haRecordSysId)
인수에 제공된 이력 활동 직전에 실행된 이력 활동을 검색합니다.
상태는 next 실행 시퀀스에서 haRecord 앞에 오는 모든 ActivityHistoryRecords와 연결된 전환에서 TO로 존재하는 haRecord에 표현된 활동과의 연결을 기반으로 wf_activity.sys_id 합니다. 반환 값은 인수 haRecord.wfaId를 TO 활동으로 식별하는 ActivityHistoryRecords의 컬렉션입니다. 반환 값은 haRecord sumbitted 이전에 발생한 전환을 기반으로 하며, haRecord 직전에 실행된 활동을 기준으로 할 필요는 없습니다. 이 활동 이전에 실행된 활동을 시간 내에 가져오려면 getPreviousByExecutedOrder()를 사용합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| haRecordSysID | 문자열 | 활동 기록의 Sys_id입니다. wf_history 테이블에 있습니다. |
| 유형 | 설명 |
|---|---|
| 객체 | 요청된 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
}
]
WorkflowModelManager - WorkflowModelManager(String contextId)
지정된 컨텍스트 내에 새 WorkflowModelManager 개체(생성자)를 만듭니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| contextId | 문자열 | WorkflowModelManager를 만들 컨텍스트의 ID입니다. |
| 유형 | 설명 |
|---|---|
| ActivityHistory기록 | 요청된 ActivityHistoryRecord JavaScript 객체입니다. |
var model = new WorkflowModelManager('MyContextId');