跳转至

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["字段"] 获取或设置值,bizObjectBizObject 类的具体对象。

方法

构造函数

提供多个构造函数,可按需选择对应构造函数。

接口定义

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 类型的结果。