WorkflowModelManager - 전역
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(문자열 contextId)
지정된 컨텍스트 내에 새 WorkflowModelManager 객체(생성자)를 작성합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| contextId | 문자열 | WorkflowModelManager를 만들 컨텍스트의 ID입니다. |
| 유형 | 설명 |
|---|---|
| 활동 이력 기록 | ActivityHistoryRecord JavaScript 객체가 요청되었습니다. |
var model = new WorkflowModelManager('MyContextId');
WorkflowModelManager - getActivityHistoryRecordById(문자열 haRecordSysId)
인수에 제공된 항목 wf_history.sys_id 에 의해 캐시된 이력 활동을 조회합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| haRecordSysId | 문자열 | 원하는 활동 이력 [wf_history] 기록의 Sys_id입니다. |
| 유형 | 설명 |
|---|---|
| 활동 이력 기록 | 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
다음 상태는 워크플로우 이력에서 실행된 모든 ActivityHistoryRecord와 연결된 전환에서 TO로 존재하는 haRecord에 표시된 활동과 관련된 것을 기반으로 wf_activity.sys_id 합니다. (이는 실행 순서(시간별)에서 haRecord 앞에 오는 TO 전환만 반환하는 getPreviousByTransition과 다릅니다.) 반환 값은 인수 haRecord.wfaId를 TO 활동으로 식별하는 ActivityHistoryRecords의 컬렉션입니다. 반환 값은 해당 전환이 실행된 이력 컬렉션의 모든 전환을 기반으로 합니다. 이 활동 이전에 실행된 활동을 시간 내에 가져오려면 getPreviousByExecutedOrder를 사용합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 설명 | 객체 | ActivityHistoryRecord JavaScript 객체입니다. |
| 유형 | 설명 |
|---|---|
| 객체 배열 | ActivityHistoryRecord JavaScript 객체의 배열입니다. |
WorkflowModelManager - getAllTransitionedIntoActivityId(문자열 haRecordSysId)
실행되어 인수에서 나타내는 활동으로 전환된 이력 활동을 검색합니다.sys_id 상태는 next 워크플로우 이력에서 실행된 모든 ActivityHistoryRecord와 관련된 전환에서 TO로 존재하는 haRecord에 표시된 활동과 관련된 것을 기반으로 wf_activity.sys_id 합니다. (이는 실행 순서(시간별)에서 haRecord 앞에 오는 TO 전환만 반환하는 getPreviousByTransition과 다릅니다.) 반환 값은 인수 haRecord.wfaId를 TO 활동으로 식별하는 ActivityHistoryRecords의 컬렉션입니다.
상태는 next 워크플로우 이력에서 실행된 모든 ActivityHistoryRecord와 관련된 전환에서 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()는 WorkflowModelManager 클래스의 멤버인 activityHistoryRecord 데이터 객체 배열을 생성하고 채웁니다. 대부분의 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(Object haRecord)
인수에 제공된 활동 바로 다음에 실행된 이력 활동을 조회합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| ha기록 | 객체 | 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(문자열 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(문자열 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)
인수에 제공된 활동 바로 전에 실행된 이력 활동을 조회합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| ha기록 | 객체 | ActivityHistoryRecord JavaScript 객체 |
| 유형 | 설명 |
|---|---|
| 객체 | ActivityHistoryRecord JavaScript 객체가 요청되었습니다. |
WorkflowModelManager - getPreviousByExecutedOrderId(문자열 haRecordSysId)
인수에 제공된 항목 wf_history.sys_id 에 의해 캐시된 이력 활동을 검색한 다음 검색된 JavaScript 객체로 getPreviousByExecutedOrder() 를 호출합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| haRecordSysId | 문자열 | 워크플로우 이력 시스템 ID(wf_history.sys_id) |
| 유형 | 설명 |
|---|---|
| 활동 이력 기록 | 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 앞에 오는 모든 ActivityHistoryRecord와 연관된 전환에서 TO로 존재하는 haRecord에 표현된 활동과 연관된 wf_activity.sys_id를 기반으로 합니다. (이는 실행 시퀀스에서 지정된 haRecord까지 모든 TO 전환을 반환하는 getAllTransitionedIntoActivity와 다릅니다.) 반환 값은 인수 haRecord.wfaId를 TO 활동으로 식별하는 ActivityHistoryRecords의 컬렉션입니다. 반환 값은 haRecord가 제출되기 전에 발생한 전환을 기반으로 하며, haRecord 직전에 실행된 활동을 기반으로 하는 것은 아닙니다. 이 활동 이전에 실행된 활동을 시간 내에 가져오려면 getPreviousByExecutedOrder를 사용합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| ha기록 | 객체 | ActivityHistoryRecord JavaScript 객체입니다. |
| 유형 | 설명 |
|---|---|
| 객체 배열 | 요청된 ActivityHistoryRecord JavaScript 객체의 배열입니다. |
WorkflowModelManager - getPreviousByTransitionId(문자열 haRecordSysId)
인수에 제공된 활동 직전에 실행된 활동 이력을 조회합니다.
상태는 next 실행 시퀀스에서 haRecord 앞에 오는 모든 ActivityHistoryRecord와 연결된 전환에서 TO로 존재하는 haRecord에 표시된 활동과 연결된 것을 기반으로 wf_activity.sys_id 합니다. 반환 값은 인수 haRecord.wfaId를 TO 활동으로 식별하는 ActivityHistoryRecords의 컬렉션입니다. 반환 값은 haRecord가 합산되기 전에 어떤 전환이 발생했는지를 기반으로 하며, 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
}
]