BizObject
类名:BizObject
说明:业务对象默认提供创建、获取、更新和删除方法。业务对象不支持序列化,但是其中 ValueTable 属性可以序列化。在实际开发中,业务数据的创建、更新、删除都使用 BizObject 对象。下文详细介绍 BizObject 对象的常用方法,具体实例可参考常用场景示例。
属性
| 名称 | 字段类型 | 说明 |
|---|---|---|
ObjectId |
string |
业务数据的唯一标识,主键。 |
ParentObjectId |
string |
对应主表数据 ID,当前数据为子表时该字段有值。 |
Parent |
H3.DataModel.BizObject |
对应的主表数据明细,当前数据为子表时该字段有值。 |
Name |
string |
业务对象的名称。 |
ModifiedBy |
string |
最近修改人。 |
ModifiedTime |
datetime |
最后修改时间。 |
CreatedBy |
string |
创建人。 |
CreatedTime |
datetime |
创建时间。 |
WorkflowInstanceId |
string |
流程实例 ID。 |
OwnerId |
string |
拥有者。 |
OwnerDeptId |
string |
拥有部门的部门 ID。 |
Status |
H3.DataModel.BizObjectStatus |
业务对象状态(生效、草稿、作废),参考 H3.DataModel.BizObjectStatus。 |
Schema |
H3.DataModel.BizObjectSchema |
业务对象模式,通过该属性可获取属性类型等信息,参考 H3.DataModel.BizObjectSchema。 |
State |
H3.DataModel.BizObjectState |
当前状态(如已加载、未加载出对象等),参考 H3.DataModel.BizObjectState。 |
this[字段编码] |
object |
索引器,根据属性名称获取或设置属性值。设置值时检查类型。例如:使用 bizObject["字段"] 获取或设置值,bizObject 为 BizObject 类的具体对象。 |
方法
构造函数
提供多个构造函数,可按需选择对应构造函数。
接口定义
public BizObject(
IEngine engine,
BizObjectSchema schema,
string userId);
public BizObject(
IEngine engine,
BizObjectSchema schema,
string userId,
string userParentId);
public BizObject(
Organization.IOrganization organization,
IBizObjectManager bizObjectManager,
BizObjectSchema schema,
string userId);
public BizObject(
Organization.IOrganization organization,
IBizObjectManager bizObjectManager,
BizObjectSchema schema,
string userId,
string userParentId);
创建数据
功能描述
用于单条业务数据的创建。调用该方法后,将立即执行数据库操作。存在多个重载方法,可以选择控制是否触发提交规则,业务规则,自动化,以及返回具体的错误信息。
接口定义
/// <summary>
/// 创建对象
/// </summary>
/// <returns>成功返回 Success,失败返回错误代码</returns>
public ErrorCode Create();
/// <summary>
/// 创建
/// </summary>
/// <param name="errorMessage"></param>
/// <returns></returns>
public ErrorCode Create(out string errorMessage);
/// <summary>
/// 创建对象的方法
/// </summary>
/// <param name="validateSubmitRule">是否有表单提交规则</param>
/// <param name="errorMessage">提交规则不通过信息</param>
/// <returns>如果创建成功则返回Success,否则返回错误代码</returns>
public ErrorCode Create(bool validateSubmitRule, out string errorMessage);
/// <summary>
/// 创建对象的方法
/// </summary>
/// <param name="validateSubmitRule">是否有表单提交规则</param>
/// <param name="triggerTask">是否触发任务</param>
/// <param name="errorMessage">提交规则不通过信息</param>
/// <returns>如果创建成功则返回Success,否则返回错误代码</returns>
public ErrorCode Create(bool validateSubmitRule, bool triggerTask, out string errorMessage);
/// <summary>
/// 创建对象的方法
/// </summary>
/// <param name="validateSubmitRule">是否有表单提交规则</param>
/// <param name="triggerBussinessTask">是否执行业务规则</param>
/// <param name="triggerAutomation">是否执行业务规则</param>
/// <param name="errorMessage">提交规则不通过信息</param>
/// <returns>如果创建成功则返回Success,否则返回错误代码</returns>
public ErrorCode Create(bool validateSubmitRule, bool triggerBussinessTask, bool triggerAutomation, out string errorMessage)
参数
| 参数名称 | 是否必填 | 类型 | 描述 |
|---|---|---|---|
| 无 | 无 |
返回值
返回 H3.ErrorCode 类型的结果。
批量创建数据
功能描述
调用该方法后,需创建的数据将添加至 BulkCommit 对象,执行 bulkCommit.Commit() 时,将执行数据库操作。
接口定义
/// <summary>
/// 批量创建
/// </summary>
/// <param name="bulkCommit">业务对象提交执行类</param>
/// <returns></returns>
public ErrorCode Create(BulkCommit bulkCommit);
参数
| 参数名称 | 是否必填 | 类型 | 描述 |
|---|---|---|---|
bulkCommit |
是 | H3.DataModel.BulkCommit |
业务对象提交执行类 |
返回值
返回 H3.ErrorCode 类型的结果。
加载数据
功能描述
通过构造函数构建 BizObject 实例,为 ObjectId 属性赋值后,执行 Load 方法加载对应数据。
接口定义
/// <summary>
/// 加载业务对象
/// </summary>
public void Load();
/// <summary>
/// 加载业务对象
/// </summary>
/// <param name="requireRelatedObjects">是否加载相关数据</param>
public void Load(bool requireRelatedObjects);
/// <summary>
/// 加载业务对象
/// </summary>
/// <param name="requireRelatedObjects">是否加载相关数据</param>
/// <param name="returnColumns">需返回的列(null 时返回所有列)</param>
public void Load(bool requireRelatedObjects, string[] returnColumns);
#静态方法
/// <summary>
/// 加载一个业务对象,这个方法会一次性返回该业务对象所有相关的数据
/// </summary>
/// <param name="userId">用户Id</param>
/// <param name="engine">业务对象访问引擎的连接</param>
/// <param name="schemaCode">业务对象模式编码</param>
/// <param name="objectId">业务对象Id</param>
/// <param name="requireRelatedObjects"></param>
/// <returns>加载好的业务对象</returns>
public static BizObject Load(string userId, IEngine engine, string schemaCode, string objectId, bool requireRelatedObjects);
更新数据
功能描述
通过加载方法获取数据,更新属性值后,使用该方法提交更新。存在多个重载方法,可以添加out参数输出具体的错误信息。
接口定义
/// <summary>
/// 更新业务对象至服务器
/// </summary>
/// <returns>成功返回 Success,失败返回错误代码</returns>
public ErrorCode Update();
/// <summary>
/// 更新
/// </summary>
/// <param name="errorMessage">错误信息</param>
/// <returns>如果更新成功则返回Success,否则返回错误代码</returns>
public ErrorCode Update(out string errorMessage);
/// <summary>
/// 将业务对象更新到服务器上
/// </summary>
/// <param name="validateSubmitRule">是否验证表单提交规则</param>
/// <param name="errorMessage">提交规则不通过信息</param>
/// <returns>如果创建成功则返回Success,否则返回错误代码</returns>
public ErrorCode Update(bool validateSubmitRule, out string errorMessage);
/// <summary>
/// 更新
/// </summary>
/// <param name="validateSubmitRule">校验业务规则</param>
/// <param name="triggerBussinessRule">触发业务规则</param>
/// <param name="errorMessage">错误信息</param>
/// <returns>如果更新成功则返回Success,否则返回错误代码</returns>
public ErrorCode Update(bool validateSubmitRule, bool triggerBussinessRule, out string errorMessage);
/// <summary>
/// 更新
/// </summary>
/// <param name="validateSubmitRule">校验提交规则</param>
/// <param name="triggerBussinessRule">触发业务规则</param>
/// <param name="triggerAutomation">触发自动化</param>
/// <param name="validateLockedSchema">校验锁定的业务模式</param>
/// <param name="errorMessage">错误信息</param>
/// <returns>如果更新成功则返回Success,否则返回错误代码</returns>
public ErrorCode Update(bool validateSubmitRule, bool triggerBussinessRule, bool triggerAutomation, bool validateLockedSchema, out string errorMessage)
参数
| 参数名称 | 是否必填 | 类型 | 描述 |
|---|---|---|---|
| 无 | 无 |
返回值
返回 H3.ErrorCode 类型的结果。
批量更新数据
功能描述
调用该方法后,需更新的数据将添加至 BulkCommit 对象,执行 bulkCommit.Commit() 时,将执行数据库操作。
接口定义
/// <summary>
/// 批量更新
/// </summary>
/// <param name="bulkCommit">业务对象批量执行类</param>
/// <returns></returns>
public ErrorCode Update(BulkCommit bulkCommit);
参数
| 参数名称 | 是否必填 | 类型 | 描述 |
|---|---|---|---|
bulkCommit |
是 | H3.DataModel.BulkCommit |
业务对象批量执行类 |
返回值
返回 H3.ErrorCode 类型的结果。
删除数据
功能描述
数据加载成功后,可调用该方法删除数据。该方法不检查对象引用关系。
接口定义
/// <summary>
/// 删除业务对象
/// </summary>
/// <returns>成功返回 Success,失败返回错误代码</returns>
public ErrorCode Remove();
/// <summary>
/// 删除业务对象
/// </summary>
/// <param name="checkWorkflowInstance">是否检查流程实例</param>
/// <param name="checkReference">是否检查引用</param>
/// <param name="referredObjectHeader">引用的业务对象的摘要信息</param>
/// <returns>如果删除成功,则返回Success,否则返回错误代码</returns>
public ErrorCode Remove(bool checkWorkflowInstance, bool checkReference, out BizObjectHeader referredObjectHeader)
参数
| 参数名称 | 是否必填 | 类型 | 描述 |
|---|---|---|---|
| 无 | 无 |
返回值
返回 H3.ErrorCode 类型的结果。
批量删除数据
功能描述
调用该方法后,需删除的数据将添加至 BulkCommit 对象,执行 bulkCommit.Commit() 时,将执行数据库操作。
接口定义
/// <summary>
/// 批量删除
/// </summary>
/// <param name="bulkCommit">业务对象提交执行类</param>
/// <returns></returns>
public ErrorCode Remove(BulkCommit bulkCommit);
参数
| 参数名称 | 是否必填 | 类型 | 描述 |
|---|---|---|---|
bulkCommit |
是 | H3.DataModel.BulkCommit |
业务对象提交执行类 |
返回值
返回 H3.ErrorCode 类型的结果。