понедельник, 13 января 2020 г.

Получение WorkFlow Status с помощью CSOM


В этой статье я расскажу, как можно получить Internal Status в экземплярах рабочих процессов для конкретного элемента.



Вот сам код.
нужно только указать List GUID и Item Id

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function getWFInternalStatus() {      
         
    var listGuid = "bf3a96d1-53dc-461f-a072-404508311da9"; // List GUID
    var itemId = 2;   //List Item Id
    var context = SP.ClientContext.get_current();
    var web = context.get_web();
    var sMgr =new SP.WorkflowServices.WorkflowServicesManager(context, web);
    var  WFInnstanceServises =   sMgr.getWorkflowInstanceService();
    var ssubs =WFInnstanceServises.enumerateInstancesForListItem(listGuid,itemId  );
 
    context.load(ssubs);
    context.executeQueryAsync(
        function(){
            var enumerator = ssubs.getEnumerator();
              while(enumerator.moveNext())
              {
                var fwEl =  enumerator.get_current();
                console.log(" id: "+ fwEl.get_id() +  " status :" + fwEl.get_status() + " userStatus: " + fwEl.get_userStatus());
              };
      
        },
        function(err ){ console.log(err)}
    );
}
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function(){
    SP.SOD.registerSod('sp.workflowservices.js', SP.Utilities.Utility.getLayoutsPageUrl('sp.workflowservices.js'));
    SP.SOD.executeFunc('sp.workflowservices.js', "SP.WorkflowServices.WorkflowServicesManager", getWFInternalStatus);
});

Статусы:
  • 0 = Not Started
  • 1 = Started
  • 2 = Suspended
  • 3 = Canceling
  • 4 = Canceled
  • 5 = Terminated
  • 6 = Completed
  • 7 = NotSpecified
  • 8 = Invalid

подробнее WorkflowStatus Enum

Комментариев нет:

Отправить комментарий