摸索完了如何画流程实现功能接下来,就是如何配置和部署了。在添加工作流之前,肯定需要一个审批人的配置以及阀值等等的配置。
这个的实现基本上和以前的工作流一致。写法却不一样了,模板自带的都是用js实现的。
读取这里面的配置用的是一个叫GetConfigurationValue的activity。
在审批页面获取需要用C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.SharePoint.WorkflowServicesBase\v4.0_15.0.0.0__71e9bce111e9429c\Microsoft.SharePoint.WorkflowServicesBase.dll,当然如果js牛逼可以用js model。
WorkflowServicesManager workflowServiceManager = new WorkflowServicesManager(SPContext.Current.Web);
var workflowInstanceService = workflowServiceManager.GetWorkflowInstanceService();
var instance = workflowInstanceService.GetInstance(Guid.Parse(SPContext.Current.Item["WF4InstanceId"].ToString()));
var subscriptionService = workflowServiceManager.GetWorkflowSubscriptionService();
var subscription = subscriptionService.GetSubscription(instance.WorkflowSubscriptionId);
if (subscription.PropertyDefinitions.ContainsKey("ApprovallogField"))
{
string ApproveLogField = subscription.PropertyDefinitions["ApprovallogField"];
}
完成工作流代码也非常简单,直接复制1后update一下就好了。
var item = TaskItem;
item["OutcomeColumn"] = this.OutCome;
item["TaskOutcome"] = this.OutCome;
item["PercentComplete"] = "1";
item["Status"] = "Completed";
item.Update();
总的来说没有太多困难的地方,当然如果用一个大的Code Activity来做流程图看着应该更简洁一下。