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

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


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



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

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

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

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