因为h3的限制导致bpm直接执行操作sql,不能让数据生效。所以要执行以下操作对数据进行修改 . 这个方法也不起作用。
/**
*
* @param bizObjectSchemaCode 流程的编码
* @param bizObjectId 流程的主表的主键ID,不是实例ID
* @throws Exception
*/
@GetMapping("setItemValues")
public void setItemValues(String bizObjectSchemaCode,String bizObjectId) throws Exception {
//获取主表的schema
BizObjectSchema schema =getEngine().getBizObjectManager().GetPublishedSchema(bizObjectSchemaCode);
//获取主表的对象,userId,userParentIdk可以固定成这个样
BizObject bo = new BizObject(getEngine().getOrganization(), getEngine().getMetadataRepository(),getEngine().getBizObjectManager(), getEngine().getBizBus(), schema, "18f923a7-5a5e-426d-94ae-a55ad1a4b239", "18f923a7-5a5e-426d-94ae-a55ad1a4b240");
//设置主表的主键id
bo.setObjectID(bizObjectId);
//设置要修改的字段
bo.setItem("FormApplicantText","值");
//以下是更新子表
//获取子表的属性,ExpenseDetails就是子表在主表的字段名称
PropertySchema propertySchema = schema.GetProperty("ExpenseDetails");
//根据子表Schema,获取子表对象
BizObject children = new BizObject(this.getEngine(), propertySchema.getChildSchema(),"18f923a7-5a5e-426d-94ae-a55ad1a4b239", "18f923a7-5a5e-426d-94ae-a55ad1a4b240");
//设置子表的主键ID
children.setObjectID("fd15eb6b-fa8b-49ec-bf23-938156d0cad2");
//设置子表要修改的属性
children.setItem("remarks","大傻逼");
//将子表的所有数据加入到一个集合中
List<BizObject> bos = new ArrayList();
bos.add(children);
//将子表,在主表进行设置,ExpenseDetails是子表在主表的字段名称
bo.setItem("ExpenseDetails", ListUtil.toArray(bos));
//执行修改操作
bo.Update(null);
};
网友评论