业务规则,关联表单操作
作者:互联网
对目标表进行修改删除操作
//第一个参数是加载人,第二个参数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