跳转至

业务数据管理接口

业务数据表的一条记录为一个 业务对象

基本用法

IBizObjectManager 接口对象通过 Engine 对象获取,在表单后台的自定义代码界面可以通过以下方式调用 IBizObjectManager 的任何方法。

H3.DataModel.BizObjectSchema schema = this.Engine.BizObjectManager.GetPublishedSchema("表单编码");

接口列表

获取已发布的表单数据模型

功能描述

根据 表单编码 获取已发布的表单数据模型。

接口定义

public BizObjectSchema GetPublishedSchema(string schemaCode)

请求参数

参数名称 是否必填 类型 描述
schemaCode 字符串 表单编码

返回值

类型 描述
H3.DataModel.BizObjectSchema 业务对象 数据模型

示例

string schemaCode = "D00018smf8af031d9db441adbd97f23039792875";
H3.DataModel.BizObjectSchema schema = this.Engine.BizObjectManager.GetPublishedSchema(schemaCode);
H3.DataModel.PropertySchema[] properties = schema.Properties; //访问各个字段

根据多个表单编码获取已发布的业务对象数据模型

功能描述

根据多个 表单编码 获取已发布的 业务对象 数据模型。

接口定义

public BizObjectSchema[] GetPublishedSchemas(bool getAll, string[] schemaCodes)

请求参数

参数名称 是否必填 类型 描述
getAll 布尔值 是否返回全部 业务对象 数据模型,如果是,则不需要指定 schemaCodes
schemaCodes 字符串数组 表单编码,如果 getAllfalse,则需要指定 表单编码

返回值

类型 描述
H3.DataModel.BizObjectSchema[] 业务对象 数据模型数组

示例

string[] schemaCodes = new string[] { "D00018smf8af031d9db441adbd97f23039792875"};
H3.DataModel.BizObjectSchema[] schemas = this.Engine.BizObjectManager.GetPublishedSchemas(false, schemaCodes);

获取已发布的表单数据模型摘要

功能描述

根据 表单编码 获取已发布的表单数据模型摘要。该摘要信息的体量比 H3.DataModel.BizObjectSchema 小,可优先使用该方法替代 GetPublishedSchema(string schemaCode)

接口定义

public BizObjectSchemaSummary GetPublishedSchemaSummary(string schemaCode)

请求参数

参数名称 是否必填 类型 描述
schemaCode 字符串 表单编码

返回值

类型 描述
H3.DataModel.BizObjectSchemaSummary 业务对象 数据模型摘要

示例

string schemaCode = "D00018smf8af031d9db441adbd97f23039792875";
H3.DataModel.BizObjectSchemaSummary schemaSummary = this.Engine.BizObjectManager.GetPublishedSchemaSummary(schemaCode);
H3.DataModel.PropertySchemaSummary[] properties = schemaSummary.Properties; //访问字段

根据多个表单编码获取已发布的业务对象数据模型摘要

功能描述

根据多个 表单编码 获取已发布的 业务对象 数据模型摘要。摘要信息体量更小,可优先使用该方法替代 GetPublishedSchemas(string schemaCode)

接口定义

public BizObjectSchemaSummary[] GetPublishedSchemaSummaries(bool getAll, string[] schemaCodes)

请求参数

参数名称 是否必填 类型 描述
getAll 布尔值 是否返回全部 业务对象 数据模型,如果是,则不需要指定 schemaCodes
schemaCodes 字符串数组 表单编码,如果 getAllfalse,则需要指定 表单编码

返回值

类型 描述
H3.DataModel.BizObjectSchemaSummary[] 业务对象 数据模型摘要数组

示例

string[] schemaCodes = new string[] { "D00018smf8af031d9db441adbd97f23039792875"};
H3.DataModel.BizObjectSchemaSummary[] schemas = this.Engine.BizObjectManager.GetPublishedSchemaSummaries(false, schemaCodes);

获取单条业务数据

功能描述

获取单条 业务对象 数据。

接口定义

public VirtualObject LoadBizObject(
    string userId,
    string schemaCode,
    string objectId,
    bool requireRelatedObjects,
    out Dictionary<string, List<BizObjectFileHeader>> fileTable,
    out Dictionary<string, BizObjectHeader> associatedBOHeaders,
    out Dictionary<string, string> unitNameTable)

请求参数

参数名称 是否必填 类型 描述
userId 字符串 用户 ID
schemaCode 字符串 表单编码
objectId 字符串 业务对象 ID
requireRelatedObjects 布尔值 是否返回关联对象的头信息
fileTable 字典 返回该 业务对象 相关的附件文件头,详见 H3.DataModel.BizObjectFileHeader
associatedBOHeaders 字典 返回关联对象的头信息,详见 H3.DataModel.BizObjectHeader
unitNameTable 字典 返回 业务对象 中相关组织结构的 ID 和名称信息

返回值

类型 描述
H3.Data.Serialization.VirtualObject 可序列化的 业务对象 数据

示例

string schemaCode = "D00018smf8af031d9db441adbd97f23039792875";
string objectId = "XXX-XXXXX-XXX";
Dictionary<string, List<H3.DataModel.BizObjectFileHeader>> fileTable = null;
Dictionary<string, H3.DataModel.BizObjectHeader> relatedHeaders = null;
Dictionary<string, string> unitTable = null;
H3.Data.Serialization.VirtualObject vo = this.Engine.BizObjectManager.LoadBizObject(
    H3.Organization.User.SystemUserId,
    schemaCode,
    objectId,
    false,
    out fileTable,
    out relatedHeaders,
    out unitTable);
object obj = vo.GetPropertyValue("字段编码");

删除业务对象

功能描述

删除 业务对象

接口定义

public ErrorCode RemoveBizObject(
    string userId,
    string schemaCode,
    BizObjectType bizObjectType,
    string objectId,
    bool checkReference,
    out BizObjectHeader referredObjectHeader)

请求参数

参数名称 是否必填 类型 描述
userId 字符串 用户 ID
schemaCode 字符串 表单编码
bizObjectType 枚举 业务对象 类型,详见 H3.DataModel.BizObjectType
objectId 字符串 业务对象 ID
checkReference 布尔值 是否检查被其他对象引用
referredObjectHeader 对象 引用该对象的对象摘要信息,详见 H3.DataModel.BizObjectHeader

返回值

类型 描述
H3.ErrorCode 错误码

示例

string schemaCode = "D00018smf8af031d9db441adbd97f23039792875";
string objectId = "XXX-XXXXX-XXX";
H3.DataModel.BizObjectHeader referedBoHeader = null;
H3.ErrorCode errorCode = this.Engine.BizObjectManager.RemoveBizObject(
    H3.Organization.User.SystemUserId,
    schemaCode,
    H3.DataModel.BizObjectType.DataListItem,
    objectId,
    false,
    out referedBoHeader);
if(errorCode == H3.ErrorCode.Success) {
    //删除成功
} else {
    //删除失败
}

根据条件获取业务对象集合

功能描述

根据条件获取 业务对象 集合。

接口定义

public VirtualObject[] GetList(
    string userId,
    string schemaCode,
    GetListScopeType authScopeType,
    Data.Filter.Filter filter,
    out int count,
    bool requireRelatedObjects,
    out Dictionary<string, BizObjectHeader> associatedBoHeaders,
    out Dictionary<string, string> unitNameTable)

请求参数

参数名称 是否必填 类型 描述
userId 字符串 用户 ID
schemaCode 字符串 表单编码
authScopeType 枚举 数据权限过滤方式,H3.DataModel.GetListScopeType 枚举值
filter 对象 过滤条件,详见 H3.Data.Filter.Filter
count 整数 返回集合数据量
requireRelatedObjects 布尔值 是否返回关联对象的头信息
associatedBoHeaders 字典 返回关联对象的头信息,详见 H3.DataModel.BizObjectHeader
unitNameTable 字典 返回 业务对象 中相关组织结构的 ID 和名称信息

返回值

类型 描述
H3.Data.Serialization.VirtualObject[] 业务对象 数组

示例

string schemaCode = "D00018smf8af031d9db441adbd97f23039792875";
H3.Data.Filter.Filter filter = new H3.Data.Filter.Filter();
int count = 0;
Dictionary<string, H3.DataModel.BizObjectHeader> relatedHeaders = null;
Dictionary<string, string> unitTable = null;
H3.Data.Serialization.VirtualObject[] vos = this.Engine.BizObjectManager.GetList(
    H3.Organization.User.SystemUserId,
    schemaCode,
    H3.DataModel.GetListScopeType.GlobalAll,
    filter,
    out count,
    false,
    out relatedHeaders,
    out unitTable);
if(vos == null || vos.Length == 0) {
    //没有读取到数据
} else {
    //读取到数据
}

根据条件获取业务对象数量

功能描述

根据条件获取 业务对象 数量。

接口定义

public int GetListCountV1(
    string userId,
    string schemaCode,
    GetListScopeType authScopeType,
    Data.Filter.Filter filter);

public int GetListCount(
    string userId,
    H3.DataModel.BizObjectSchema schema,
    GetListScopeType authScopeType,
    Data.Filter.Filter filter);

请求参数

参数名称 是否必填 类型 描述
userId 字符串 用户 ID
schemaCode 字符串 表单编码(仅 GetListCountV1 使用)
schema 对象 表单业务模式(仅 GetListCount 使用)
authScopeType 枚举 数据权限过滤方式,H3.DataModel.GetListScopeType 枚举值
filter 对象 过滤条件,详见 H3.Data.Filter.Filter

返回值

类型 描述
整数 符合条件的业务数据总数

示例

string schemaCode = "D00018smf8af031d9db441adbd97f23039792875";
H3.Data.Filter.Filter filter = new H3.Data.Filter.Filter();
int count = this.Engine.BizObjectManager.GetListCountV1(
    H3.Organization.User.SystemUserId,
    schemaCode,
    H3.DataModel.GetListScopeType.GlobalAll,
    filter);

H3.DataModel.BizObjectSchema schema = this.Engine.BizObjectManager.GetPublishedSchema(schemaCode);
int count2 = this.Engine.BizObjectManager.GetListCount(
    H3.Organization.User.SystemUserId,
    schema,
    H3.DataModel.GetListScopeType.GlobalAll,
    filter);

查询附件头信息

功能描述

查询附件头信息。

接口定义

public BizObjectFileHeader[] QueryFileHeader(
    string schemaCode,
    string childSchemaCode,
    string propertyName,
    string bizObjectId,
    H3.Data.BoolValue lastVersion,
    string fileName)

请求参数

参数名称 是否必填 类型 描述
schemaCode 字符串 表单编码
childSchemaCode 字符串 子表 表单编码
propertyName 字符串 属性编码
bizObjectId 字符串 业务对象 ID
lastVersion 枚举 是否只查询最终版本
fileName 字符串 要查询的文件名称

返回值

类型 描述
H3.DataModel.BizObjectFileHeader[] 文件头信息集合

示例

string schemaCode = "D00018smf8af031d9db441adbd97f23039792875";
string childSchemaCode = "D00018smf8af0Details";
string propertyName = "F0000004";
string bizObjectId = "xxx-xxxxxx-xxxx";
H3.DataModel.BizObjectFileHeader[] fileHeaders = this.Engine.BizObjectManager.QueryFileHeader(
    schemaCode,
    childSchemaCode, 
    propertyName, 
    bizObjectId, 
    H3.Data.BoolValue.True, 
    string.Empty);

查找业务对象所有的文件头

功能描述

查找 业务对象 所有的文件头(不包含子对象文件头)。

接口定义

public BizObjectFileHeader[] GetBizObjectFileHeaders(string[] bizObjectIds)

请求参数

参数名称 是否必填 类型 描述
bizObjectIds 字符串数组 业务对象 ID 数组

返回值

类型 描述
H3.DataModel.BizObjectFileHeader[] 文件头信息集合

示例

string[] bizObjectIds = new string[] {"xxx-xxxxxx-xxxx1", "xxx-xxxxxx-xxxx2"};
H3.DataModel.BizObjectFileHeader[] fileHeaders = this.Engine.BizObjectManager.GetBizObjectFileHeaders(bizObjectIds);

查询指定附件头信息

功能描述

根据多个附件 ID 获取附件头信息(不含文件内容)。

接口定义

public BizObjectFileHeader[] GetFileHeaders(string[] fileIds)

请求参数

参数名称 是否必填 类型 描述
fileIds 字符串数组 附件 ID 数组

返回值

类型 描述
H3.DataModel.BizObjectFileHeader[] 文件头信息集合

示例

string[] fileIds = new string[] {"xxx-xxxxxx-xxxx1", "xxx-xxxxxx-xxxx2"};
H3.DataModel.BizObjectFileHeader[] fileHeaders = this.Engine.BizObjectManager.GetFileHeaders(fileIds);

查询单个附件头信息

功能描述

根据单个附件 ID 获取附件头信息(不含文件内容)。

接口定义

public BizObjectFile GetFile(string fileId)

请求参数

参数名称 是否必填 类型 描述
fileId 字符串 附件 ID

返回值

类型 描述
H3.DataModel.BizObjectFile 文件信息(含文件内容)

示例

string fileId= "xxx-xxxxxx-xxxx1";
H3.DataModel.BizObjectFile file = this.Engine.BizObjectManager.GetFile(fileId);

复制附件

功能描述

将源 业务对象 属性的所有文件复制到目标 业务对象 属性。

接口定义

public BizObjectFileHeader[] CopyFiles(
    string sourceSchemaCode,
    string sourceChildSchemaCode,
    string sourcePropertyName,
    string sourceBizObjectId,
    string destSchemaCode,
    string destChildSchemaCode,
    string destPropertyName,
    string destBizObjectId,
    bool overwrite,
    bool physicalRemove)

请求参数

参数名称 是否必填 类型 描述
sourceSchemaCode 字符串 表单编码
sourceChildSchemaCode 字符串 源子表 表单编码
sourcePropertyName 字符串 源表单属性编码
sourceBizObjectId 字符串 业务对象 ID
destSchemaCode 字符串 目标 表单编码
destChildSchemaCode 字符串 目标子表 表单编码
destPropertyName 字符串 目标表单属性编码
destBizObjectId 字符串 目标 业务对象 ID
overwrite 布尔值 是否覆盖目标属性
physicalRemove 布尔值 覆盖时是否物理删除原文件

返回值

类型 描述
H3.DataModel.BizObjectFileHeader[] 复制后的文件头信息(不含内容)

示例

string SourceObjectId =  "sourceObjectID";
string SourceschemaCode = "D00018smd5b25f5649c74c5d8cd971864ee82c2b";
string targetObjectId = "targetObjectId";
string targetSchemaCode = "D00018smd5b25f5649c74c5Target";
H3.DataModel.BizObjectFileHeader[] fileHeaders = this.Request.Engine.BizObjectManager.CopyFiles(
    SourceschemaCode, 
    "", 
    "F0000008", 
    SourceObjectId, 
    targetSchemaCode, 
    "", 
    "F0000009", 
    targetObjectId, 
    true, 
    true);

根据附件ID删除附件

功能描述

根据附件 ID 删除附件。

接口定义

public void RemoveFile(string fileId, bool physical)

请求参数

参数名称 是否必填 类型 描述
fileId 字符串 附件 ID
physical 布尔值 是否物理删除

返回值

示例

string fileId = "xxxx-xxxxxxxxx-xxxx";
this.Engine.BizObjectManager.RemoveFile(fileId, true);

添加审批意见

功能描述

添加审批意见。

接口定义

public ErrorCode AddComment(DataModel.Comment comment)

请求参数

参数名称 是否必填 类型 描述
comment 对象 审批意见对象,详见 H3.DataModel.Comment

返回值

类型 描述
H3.ErrorCode 错误代码

示例

H3.DataModel.Comment cmt = new H3.DataModel.Comment();
cmt.ObjectId = System.Guid.NewGuid().ToString();
cmt.Activity = "ActivityCode";
cmt.Approval = H3.Data.BoolValue.True;
cmt.CreatedTime = System.DateTime.Now;
cmt.InstanceId = "InstanceId";
cmt.ModifiedTime = System.DateTime.Now;
cmt.Text = "审批意见内容";
cmt.UserId = "审批人的用户Id";
cmt.ModifiedBy = "审批人的用户Id";
cmt.UserParentName ="审批人的部门名称";
cmt.SchemaCode = "表单编码";
cmt.BizObjectId = "业务数据Id";
cmt.Delegant = "转发人用户Id";
cmt.TokenId = "流程的步骤Id";
cmt.WorkItemId = "待办任务Id";
H3.ErrorCode errorCode = this.Engine.BizObjectManager.AddComment(cmt);
if(errorCode == H3.ErrorCode.Success) {
    //添加成功
}

根据业务对象ID获取审批意见

功能描述

根据业务对象 ID 获取审批意见。

接口定义

public DataModel.Comment[] GetCommentsByBizObject(string schemaCode, string bizObjectId)

请求参数

参数名称 是否必填 类型 描述
schemaCode 字符串 表单编码
bizObjectId 字符串 业务对象 ID

返回值

类型 描述
H3.DataModel.Comment[] 审批意见数组

示例

string schemaCode = "D00018sm493dffc8fb7849e0937dcb9eafdda0b9";
string bizObjectId = "xxxx-xxxxxx-xxxx";
H3.DataModel.Comment[] comments = this.Engine.BizObjectManager.GetCommentsByBizObject(schemaCode, bizObjectId);

获取审批意见中的签名图片

功能描述

获取审批意见中的签名图片。

接口定义

public string GetCommentSignature(string key)

请求参数

参数名称 是否必填 类型 描述
key 字符串 签名键

返回值

类型 描述
字符串 签名图片 URL

示例

string signatureKey = "key";
string signatureUrl = this.Engine.BizObjectManager.GetCommentSignature(signatureKey);