关于子流程:
子流程环节的Mapping中的source和target不能是ApplicationData之类的内置参数,而
且source和target的值仅支持DateTime,Double,Guid,Integer,String这五种类型。
Ø 子流程Mapping的用法:
假如子流程环节的参数Mapping表Source为a,Target为b,其中Source为父流程要传给子流程的参数,Target为子流程中接收该参数值的参数。
第一步:在父流程的BeforeDataSave中加入:
this.Parameters.Add("a", "123");
第二步:在子流程中通过下面方法取得参数值:
WorkflowHelper helper = new WorkflowHelper();
helper.OpenWorkflow(CaseID, TaskID);
string b = helper.GetParameter("b").ToString();
或者 string b = CurrentActivity.Owner.DataItems["b"].ToString();
Ø 如何取得父子流程CaseID:
1. 子流程取父流程CaseID:
WorkflowHelper helper = new WorkflowHelper();
helper.OpenWorkflow(CaseID, TaskID);
string parentCaseID = helper.GetParameter(SubflowActivity.ParameterParentCase).ToString();
2. 父流程取子流程CaseID:
WorkItemHelper helper = new WorkItemHelper();
string subflowCaseID = helper.GetParameter(CaseID, TaskID, SubflowActivity.ParameterSubflowCase).ToString();
其中TaskID为在父流程中的子流程环节的TaskID。