通过实例ID获取工作流详细信息

问题描述 投票:0回答:1

我有工作流程历史记录清单,该清单将工作流程历史记录数据存储在工作流程历史记录父实例ID,工作流程模板ID,工作流程关联ID,列表ID ...字段中。

我想通过工作流实例ID检索工作流详细信息,例如工作流名称,该存储方式如我在SharePoint Online中提到的那样存储。如何实现?

提前感谢

sharepoint-online sharepoint-workflow
1个回答
0
投票

用于工作流实例服务的通用api。

<script type="text/javascript" src="/_layouts/15/sp.runtime.js"></script>
    <script type="text/javascript" src="/_layouts/15/sp.js"></script>
    <script type="text/javascript" src="/_layouts/15/sp.workflowservices.js"></script>
    <script type="text/javascript">
        function RetrieveWorkflowInstances() {
            var context = SP.ClientContext.get_current();
            var web = context.get_web();
            var workflowServicesManager = new SP.WorkflowServices.WorkflowServicesManager(context, web);
            //var workflowDeploymentService = workflowServicesManager.getWorkflowDeploymentService();
            var workflowInstanceService = workflowServicesManager.getWorkflowInstanceService();

            //6a899d24-4813-4920-9e61-cdaa2cfe1b3a
            var specificInstance = workflowInstanceService.getInstance("6a899d24-4813-4920-9e61-cdaa2cfe1b3a");
            context.load(specificInstance);
            context.executeQueryAsync(function (sender, args) {
                console.log(specificInstance);
            }, function (sender, args) {
                alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
                });

            // get all instances
            var workflowInstances = workflowInstanceService.enumerateInstancesForListItem("7B96090E-FDAD-4075-B24A-21686AE255B4", 1);
            context.load(workflowInstances);
            context.executeQueryAsync(function (sender, args) {
                // enumerateDefinition returns ClientCollection object
                var definitionsEnum = workflowInstances.getEnumerator();
                // Going through the definitions
                while (definitionsEnum.moveNext()) {
                    var def = definitionsEnum.get_current();
                    // Displaying information about this definition - DisplayName and Id
                    console.log("id: " + def.get_id() + " Status: " + def.get_status() + " Stage: " + def.get_userStatus());
                }

            }, function (sender, args) {
                alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
            });
        }
    </script>
    <input id="Button1" onclick="RetrieveWorkflowInstances()" type="button" value="button" />

enter image description here

workflow instance properties

© www.soinside.com 2019 - 2024. All rights reserved.