跳转至

业务数据管理接口

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

基本用法

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 否 字符串数组 表单编码,如果 getAll 为 false,则需要指定 表单编码

返回值

类型 描述
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 否 字符串数组 表单编码,如果 getAll 为 false,则需要指定 表单编码

返回值

类型 描述
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);