其他分享
首页 > 其他分享> > 业务规则,关联表单操作

业务规则,关联表单操作

作者:互联网

对目标表进行修改删除操作       

//第一个参数是加载人,第二个参数Engine,第三个参数目标表的表名,第四个参数关联表单存的就是关联表单的BizObjectId第五个是string.Empty第六个false H3.DataModel.BizObject biz=H3.DataModel.BizObject.Load(this.Request.UserContext.UserId,this.Engine,"D0020330726c545863e4932b64842d40f9a6fd1",this.Request.BizObject["F0000001"]+string.Empty,false); //对数据进行更新 // biz["Sex"]=this.Request.BizObject["ex"]+string.Empty; // biz.Update(); //对数据进行删除 biz.Remove();

主表对目标表单进行数据自动添加,并指定流程状态

对删除主表数据内容且删除目标表单数据

//目标表单为联系人
        if(actionName == "Submit")
        {
            //固定获取业务对象额方式
            //构建schema
            H3.DataModel.BizObjectSchema schema = this.Engine.BizObjectManager.GetPublishedSchema("D00203300be3bf060104e0db4d170d8de9675e2");
            //new一个对象
            H3.DataModel.BizObject targetBiz = new H3.DataModel.BizObject(this.Engine, schema, this.Request.UserContext.UserId);
            //把表单的值赋给目标表单
            targetBiz["F0000001"] = this.Request.BizObject["F0000003"] + string.Empty;
            targetBiz["F0000002"] = this.Request.BizObject["F0000004"] + string.Empty;
            //把当前表单的BizObjectID给到目标表单
            targetBiz["F0000003"] = this.Request.BizObjectId;
            //给目标表单指定一个状态
            /*
        XXX.Status的所有取值与意义:
       H3.DataModel.BizObjectStatus.Draft:草稿
       H3.DataModel.BizObjectStatus.Effective:生效(若此表单有业务规则,则此项设置会在Create()中触发生效时业务规则)
       H3.DataModel.BizObjectStatus.Running:进行中(此设置并不会发起流程,带流程的表单数据创建请参考他处,一般不会将数据状态设置成进行中)
       H3.DataModel.BizObjectStatus.Canceled:作废         
值为0表示 草稿;
值为1表示 生效/流程结束;
值为2表示 流程进行中;
值为3表示 作废
            */
            targetBiz.Status = H3.DataModel.BizObjectStatus.Effective;
            //对数据进行创建
            targetBiz.Create();
        }
        //删除当前表单信息,也要对目标表单信息删除
        if(actionName == "Remove") 
        {
            //在数据库里面获取到目标表单对应的关联表单字段进行删除
            string delSql = string.Format("delete from I_D00203300be3bf060104e0db4d170d8de9675e2 where F0000003='{0}'",this.Request.BizObjectId);
            this.Engine.Query.QueryTable(delSql,null);
            
        }
对目标表单进行跟进信息,每加一条信息都在目标表单子表中写上一条信息
//业务场景:对目标表单进行跟进信息,每加一条信息都在子表中写上一条信息
        //目标表单为客户信息
        if(actionName == "Submit")
        {   
            
            //获取到插入目标的对象,找到子表
            //第一个参数UserId,第二个参数Engine,第三个参数是目标表单code编码D002033e2a8f3b04552478aa2984195e0e87eed,第4个参数关联表单的BizObjectid(主表的关联表单id不是目标表单的id)
            H3.DataModel.BizObject biz = H3.DataModel.BizObject.Load(this.Request.UserContext.UserId, this.Engine, "D002033e2a8f3b04552478aa2984195e0e87eed", this.Request.BizObject["F0000003"] + string.Empty, false);
            //子表对象
            H3.DataModel.BizObject[] bizChild = (H3.DataModel.BizObject[]) biz["D002033F7c2515ea3dea4bdbb3a4ac8313d1e4ba"];
            //放进list表单里面去
            //用数组直接加不进去,所以还是用一个list进行存放子表数据
            List < H3.DataModel.BizObject > childList=new List<H3.DataModel.BizObject>();
            //往子表对象里面添加一行子表
            if(bizChild != null)
            {
                //先把原来的子表存起来
                childList.AddRange(bizChild);
            }
            //创建带待加入子表的对象
            //创建子表对象
            //创建子表的BizObjectSchema,使用子表的控件编码
            H3.DataModel.BizObjectSchema schema = this.Engine.BizObjectManager.GetPublishedSchema("D002033F7c2515ea3dea4bdbb3a4ac8313d1e4ba");
            //new子表业务对象
            H3.DataModel.BizObject childBiz = new H3.DataModel.BizObject(this.Engine, schema, this.Request.UserContext.UserId);
            //赋值给客户(主表)对象

            childBiz["F0000005"] = this.Request.BizObject["F0000001"] + string.Empty;
            childBiz["F0000006"] = this.Request.BizObject["F0000002"] + string.Empty;
            //往主表对象添加数据
            childList.Add(childBiz);
            biz["D002033F7c2515ea3dea4bdbb3a4ac8313d1e4ba"] = childList.ToArray();
            //调用Update更新数据对象
            biz.Update();
        }

 

标签:BizObject,H3,Request,关联,规则,子表,表单,DataModel
来源: https://www.cnblogs.com/FaustDream/p/16128229.html