阅读:3360 回复:5
Mr.bug
14

帖子

58

跟帖

561

积分

黄金榴莲
黄金榴莲
  • 社区居民

关于主流程触发子流程

楼主#
更多 发布于:2017-05-05 18:09
有谁知道通过主流程的子表有N行数据发起N个子流程的功能吗。子流程的发起人只能是主流程的发起人。求案例。求讲解
武汉技术支持团队
40

帖子

1181

跟帖

3860

积分

论坛版主
论坛版主
1楼#
发布于:2017-05-08 09:35
这种场景不能用系统的父子流程功能实现,只能通过代码去发起其他流程
Mr.bug
14

帖子

58

跟帖

561

积分

黄金榴莲
黄金榴莲
  • 社区居民
2楼#
发布于:2017-05-08 10:44
武汉技术支持团队:这种场景不能用系统的父子流程功能实现,只能通过代码去发起其他流程回到原帖
有案例吗。能给个参考不
Mr.bug
14

帖子

58

跟帖

561

积分

黄金榴莲
黄金榴莲
  • 社区居民
3楼#
发布于:2017-05-11 13:36
问题已解决。
先拟清思路。从数据库取要下发到子流程的数据。因为主要根据子表N行列数发起N行流程。所以要关联子表。联查出N行数据。然后循环这N行数据。每循环一次调用接口发起流程。直到循环结束。(要传入发起子流程的参数。我这里是主流程的发起人既子流程的发起人)
        public bool lista(string instanceId,string userid)
        {

            //WebReference.BPMService bpmService = new WebReference.BPMService();
            CommandHelp bpmService = new CommandHelp();
            Organization.Unit unit = this.Engine.Organization.GetUnit(userid);
            string sql = string.Format(@"select
                                        a.SQR,a.SQBM,a.SQRLXFS,a.TBQY,a.BH,a.SQSJ,a.XMQW,
                                        a.QYDJR,a.LXFS,a.QYTZFZR,a.XMHXFZR,a.XMDW,a.XMBM,a.SM,a.instanceId,
                                        b.ZYBMJMC,b.ZYSQDJ,b.ZYSSBM,b.SFFQZLC,
                                        b.zyzzrr,b.zybmld
                                        from I_BPM a
                                        left join I_SQZYQK b on b.parentobjectid=a.objectid
                                        where a.instanceId='{0}'", instanceId);
            System.Data.DataTable dt = DBHelper.ExecuteTableSql(sql);
            string zhubiaoid = null;
            //添加主表数据
            if (dt != null && dt.Rows.Count > 0)
            {
                //zhubiaoid = dt.Rows[0]["Objectid"] + string.Empty;
                foreach (DataRow dr in dt.Rows)
                {
                    //BPMWebReference.DataItemParam[] List = new BPMWebReference.DataItemParam[dt.Columns.Count];
                    DataItemParam[] List = new DataItemParam[dt.Columns.Count];
                    for (int i = 0; i < dt.Columns.Count; i++)
                    {
                        //BPMWebReference.DataItemParam item = new BPMWebReference.DataItemParam();
                        DataItemParam item = new DataItemParam();
                        item.ItemName = dt.Columns.ColumnName;
                        item.ItemValue = dr[dt.Columns.ColumnName];//dt.Rows[0][dt.Columns.ColumnName + string.Empty];
                        List = item;
                    }
                    bpmService.StartWorkflow("CCZLCSP", unit.Code, false, List.ToList());
                    //BPMServiceResult res= bpm.StartWorkflow("TaskReception", this.UserValidator.UserCode, false, list);
                }
            }
            return true;
        }
zjlrzl
12

帖子

58

跟帖

1836

积分

黄金榴莲
黄金榴莲
4楼#
发布于:2017-12-06 15:21
Mr.bug:问题已解决。
先拟清思路。从数据库取要下发到子流程的数据。因为主要根据子表N行列数发起N行流程。所以要关联子表。联查出N行数据。然后循环这N行数据。每循环一次调用接口发起流程。直到循环结束。(要传入发起子流程的参数。我这里是主流程的发起人...
回到原帖
子流程中有子表,怎么传值,谢谢
bin蓝™
10

帖子

40

跟帖

1019

积分

高级榴莲
高级榴莲
5楼#
发布于:2018-04-17 15:34
Mr.bug:问题已解决。
先拟清思路。从数据库取要下发到子流程的数据。因为主要根据子表N行列数发起N行流程。所以要关联子表。联查出N行数据。然后循环这N行数据。每循环一次调用接口发起流程。直到循环结束。(要传入发起子流程的参数。我这里是主流程的发起人...
回到原帖
这个会报错哦流程实例启动失败!错误:System.Exception: Eqwww.WorkFlow.DataItemParam[] Can't be converted to a BizObjectArray type,because the type is not matching,target type is .
游客

返回顶部