BizObject相关方法示例

// 这里演示了构造 BizObject 对象,以及调用 BizObject 对象的 Create 方法

            IEngine engine = OThinker.H3.WorkSheet.AppUtility.Engine;

            BizObjectSchema schema = engine.BizObjectManager.GetPublishedSchema("数据模型编码");


            BizObject bo = new BizObject(engine, schema, "当前用户ID");

            bo["短文本数据项"] = "";

            bo["数值型数据项"] = 23;

            bo["日期型数据项"] = DateTime.Now;

            bo["参与者单人"] = "用户ObjectID";

            bo["参与者多人"] = new string[] { "用户ObjectID1""用户ObjectID2" };


            // 子表数据项赋值,适用于子表类型数据项(不适用于关联关系)

            BizObjectSchema childSchema = schema.GetProperty("子表类型数据项").ChildSchema; // 获取子业务对象编码

            BizObject childBO = new BizObject(engine, childSchema, "当前用户ID");

            /*

            这里类似以上BizObject的方法给 childBO 赋值

            例如:childBO["短文本数据项"] = "";

            */

            bo["子表类型数据项(业务对象类型)"] = childBO;  // 针对业务对象类型数据项,赋值是 BizObject

            // 针对是业务对象数组类型数据项,赋值是 BizObject[];

            bo["子表类型数据项(业务对象数组/子表类型)"] = new BizObject[] { childBO };


            // 关联关系数据项赋值

            string associatedSchemaCode = schema.GetAssociation("关联关系").AssociatedSchemaCode;

            BizObjectSchema childSchema1 = engine.BizObjectManager.GetPublishedSchema(associatedSchemaCode); // 获取关联关系业务对象编码

            BizObject childBO1 = new BizObject(engine, childSchema1, "当前用户ID");

            /*

            这里类似以上BizObject的方法给 childBO 赋值

            例如:childBO["短文本数据项"] = "";

            */

            bo["一对一映射关系"] = childBO1;  // 针对业务对象类型数据项,赋值是 BizObject

            // 针对是业务对象数组类型数据项,赋值是 BizObject[];

            bo["一对多映射关系"] = new BizObject[] { childBO1 };


            bo.Create();


            // 注意审批意见和附件要单独调用接口

            // 附件

            byte[] fileContents = null// 附件二进制内容

            engine.BizObjectManager.AddAttachment(new Data.Attachment()

            {

                BizObjectId = bo.ObjectID,

                BizObjectSchemaCode = bo.Schema.SchemaCode,

                DataField = "附件数据项名称",

                Content = fileContents,

                ContentLength = fileContents.Length,

                ContentType = "附件类型,上传对象可以获取到"// HttpPostedFile.ContentType

                FileName = "附件文件名称",

                CreatedBy = "当前用户ID",

                CreatedTime = DateTime.Now,

                LastVersion = true

            });

            // 意见

            engine.BizObjectManager.AddComment(new Data.Comment()

            {

                BizObjectId = bo.ObjectID,

                BizObjectSchemaCode = bo.Schema.SchemaCode,

                InstanceId = "当前流程实例ID",

                TokenId = 0, // 当前任务的TokenID

                Activity = "当前任务节点的编码",

                Approval = OThinker.Data.BoolMatchValue.True,// 审核结果,提交是True,驳回是False

                SignatureId = "使用的签章ID",

                UserID = "意见填写人ID",

                OUName = "意见填写人组织名称",

                Text = "意见文本"

            });


            // 以下获取BizObject对象

            BizObjectSchema schema1 = engine.BizObjectManager.GetPublishedSchema("数据模型编码");

            BizObject bo1 = new BizObject(engine, schema1, "当前用户ID");

            bo1.ObjectID = "业务对象实例ID";

            bo1.Load(); // Load 是装载数据


            string v1 = bo1["短文本数据项"] + string.Empty;


            bo1.Update(); // 更新方法

            bo1.Remove(); // 移除方法


            bo1.Invoke("自定义方法名称"); // 执行自定义方法