业务数据管理接口
业务数据表的一条记录为一个 业务对象。
基本用法
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 |
返回值
示例
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.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 |
是 |
字符串 |
签名键 |
返回值
示例
string signatureKey = "key";
string signatureUrl = this.Engine.BizObjectManager.GetCommentSignature(signatureKey);