阅读:4032
回复:4
|
流程提交时如何更新其它表的数据
到某一审批环节点击提交按钮,更新其它表中的一条记录中的数据项值,请指导通常使用什么方法,谢谢
已用的方法: string bizObjectID = "0035e03d-2e6f-4e5c-a649-fadccf4278de";//子表的ObjectID string schemaCode = "Cooooo"; this.ActionContext.Engine.BizObjectManager.SetPropertyValue(schemaCode, bizObjectID, this.ActionContext.User.UserID, "Wooo.Poooo", "0"); Cooooo主表;Wooo是子表 Poooo是子表的一个字段 目前上述方法执行更新主表成功了,子表更新时报错 另外this.ActionContext.Engine与OThinker.H3.Controllers.AppUtility.Engine有啥区别吗? this.ActionContext.Engine有时会报Runtime.Remoting的异常 |
1楼#
发布于:2018-01-15 14:12
子表没办法用这个函数更新其中一个字段,只能整体更新子表的数据。
如果只是更新当前流程的子表数据,建议你直接修改InstanceData数据 var linebizObjects = ActionContext.InstanceData["SODetail"].Value as BizObject[];//获取子表数据 linebizObjects[0].SetValue("SOD_Line", "testso");//修改第1行的SOD_Line值 ActionContext.InstanceData.Submit();//提交修改值 this.ActionContext.Engine是当前节点对象缓存的,OThinker.H3.Controllers.AppUtility.Engine是直接从引擎服务器取。 后面一个每次都能取到,或者可以用this.UserValidator.Engine;,当前登录对象的,有缓存,会快一点。 |
|
2楼#
发布于:2018-01-15 14:23
|
|
3楼#
发布于:2018-01-15 14:49
|
|
4楼#
发布于:2018-01-15 15:32
|
|