阅读:5971
回复:14
|
[求助]有没有人做过将流程的参与者赋值封装到DLL里然后在业务服务里调用的
我这有个流程,需要根据流程数据动态判定审批人,所以我将赋值过程封装到DLL里,然后配置到业务服务中进行调用,DLL在业务服务中直接测试运行时没有问题,在数据库中查看参与者都已经赋上值了,但是绑到流程上时参与者数据项就没有赋值,但是从log中看DLL确实被调用了。
有没有高手知道或者做过类似的事情,帮忙指点一下,谢谢 |
1楼#
发布于:2017-01-10 09:17
|
|
2楼#
发布于:2016-12-18 15:08
实名用户_268a9ec2:有人帮忙看么?回到原帖提交呢?在哪提交的?代码呢? |
|
|
3楼#
发布于:2016-12-16 17:59
|
|
|
6楼#
发布于:2016-12-15 13:33
代码那里少贴出来一句:
bool b = data.Submit(); |
|
7楼#
发布于:2016-12-15 11:16
|
|
8楼#
发布于:2016-12-15 11:14
上善若水:建议贴个截图出来,以便更好的查看原因,带来不便,请您见谅了。回到原帖public void SetPar(string InstanceId) { OThinker.H3.Connection conn = new Connection(); conn.Open(XmlUtility.GetConfigFromXML("EngineLocalHostString")); IEngine _Engine = conn.Engine;//流程实例 InstanceData data = new InstanceData(_Engine, InstanceId, User.SystemUserID);//获取流程数据 string WorkflowCode = data.Workflow.WorkflowCode;//编码 DataTable dt = FunctionProcedure(WorkflowCode, data.InstanceContext.BizObjectId, _Engine); _Engine.LogWriter.Write(dt.Rows.Count.ToString()); SaveDataFactory(InstanceId, dt, data, _Engine); } /// <summary> /// 赋值数据项 /// </summary> /// <param name="dt"></param> /// <param name="data"></param> private void SaveDataFactory(string InstanceId, DataTable dt, InstanceData data, IEngine _Engine) { if (dt != null) { if (dt.Rows.Count > 0 && dt.Columns.Count > 0) // 判断有数据 { string dc = ""; string dcNext = ""; for (int i = 0; i < dt.Columns.Count; i++) { dc = dt.Rows[0].ToString(); if (i < dt.Columns.Count - 1) { dcNext = dt.Rows[0][i + 1].ToString(); } if (!string.IsNullOrEmpty(dc)) { if (!dc.Equals(dcNext)) { if (dc.IndexOf(";") > 0) { string[] strv = dc.Split(';'); data[dt.Columns.ColumnName].Value = strv; } else { data[dt.Columns.ColumnName].Value = dc; } } } } } } |
|
9楼#
发布于:2016-12-15 11:08
昨天调了一天,发现在流程里确实赋过值,但是提交后,在流程状态的流程数据里存在过一会后再刷新就消失了,感觉是调用DLL成功了,但是引擎又重新执行了赋值后把原来的值给覆盖了。
|
|
上一页
下一页