阅读:5059 回复:14
实名用户_268a9ec2
6

帖子

18

跟帖

1158

积分

中级榴莲
中级榴莲
  • 社区居民

[求助]有没有人做过将流程的参与者赋值封装到DLL里然后在业务服务里调用的

楼主#
更多 发布于:2016-12-14 10:16
我这有个流程,需要根据流程数据动态判定审批人,所以我将赋值过程封装到DLL里,然后配置到业务服务中进行调用,DLL在业务服务中直接测试运行时没有问题,在数据库中查看参与者都已经赋上值了,但是绑到流程上时参与者数据项就没有赋值,但是从log中看DLL确实被调用了。
有没有高手知道或者做过类似的事情,帮忙指点一下,谢谢
岩竹玉雨
20

帖子

840

跟帖

205241

积分

论坛版主
论坛版主
  • 社区居民
  • 忠实会员
1楼#
发布于:2016-12-14 11:31
楼主你好,你可以先将dll的代码写在页面后台执行,确定代码无误后,再封装dll调用。
发问题贴的时候,可以@一下我,我就能更快的知道了
实名用户_268a9ec2
6

帖子

18

跟帖

1158

积分

中级榴莲
中级榴莲
  • 社区居民
2楼#
发布于:2016-12-14 16:54
现在我都崩溃了,我在业务服务里测试没有问题,数据都上去了,就是把业务服务放到流程里就不好用了 。。。。
武汉技术支持团队
40

帖子

1181

跟帖

3860

积分

论坛版主
论坛版主
3楼#
发布于:2016-12-14 17:26
有没有错误提示代码?能不能贴出来
上善若水
17

帖子

1282

跟帖

12345

积分

管理员
管理员
  • 社区居民
4楼#
发布于:2016-12-14 17:54
实名用户_268a9ec2:现在我都崩溃了,我在业务服务里测试没有问题,数据都上去了,就是把业务服务放到流程里就不好用了 。。。。回到原帖
建议贴个截图出来,以便更好的查看原因,带来不便,请您见谅了。
H3 BPM 让天下没有难用的流程。全国统一服务热线 :400-889-8625
实名用户_268a9ec2
6

帖子

18

跟帖

1158

积分

中级榴莲
中级榴莲
  • 社区居民
5楼#
发布于:2016-12-15 11:03
武汉技术支持团队:有没有错误提示代码?能不能贴出来回到原帖
没有错误代码
实名用户_268a9ec2
6

帖子

18

跟帖

1158

积分

中级榴莲
中级榴莲
  • 社区居民
6楼#
发布于:2016-12-15 11:08
昨天调了一天,发现在流程里确实赋过值,但是提交后,在流程状态的流程数据里存在过一会后再刷新就消失了,感觉是调用DLL成功了,但是引擎又重新执行了赋值后把原来的值给覆盖了。
实名用户_268a9ec2
6

帖子

18

跟帖

1158

积分

中级榴莲
中级榴莲
  • 社区居民
7楼#
发布于: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;
                                }
                            }
                        }
                    }
                }
            }
实名用户_268a9ec2
6

帖子

18

跟帖

1158

积分

中级榴莲
中级榴莲
  • 社区居民
8楼#
发布于:2016-12-15 11:16
上善若水:建议贴个截图出来,以便更好的查看原因,带来不便,请您见谅了。回到原帖

描述:1

图片:{F8B8918F-08A4-4AE4-B4BA-F3678FFFC76E}.bmp

1
实名用户_268a9ec2
6

帖子

18

跟帖

1158

积分

中级榴莲
中级榴莲
  • 社区居民
9楼#
发布于:2016-12-15 13:33
代码那里少贴出来一句:
                    bool b = data.Submit();
上一页
1 2  »|
游客

返回顶部