OThinker.H3.PortalQuery
类:OThinker.H3.PortalQuery
说明:
Portal 查询数据库
常量
名称 | 说明 |
ColumnName_PackageDisplayName | 查询流程模板的时候使用,OT_WorkflowClause和OT_WorkflowPackage表中都有DisplayName字段,PackageDisplayName用于标记DisplayName是来自OT_WorkflowPackage表 |
属性
名称 | 说明 |
CommandFactory | 与H3主数据库的连接 |
LogCommandFactory | 与H3日志数据库的连接 |
方法:.QueryTable(System.String)
方法说明:
执行SQL,返回查询的结果。数据库类型和连接字符串都使用系统的数据库。
名称 | 说明 |
Sql | 要执行的SQL语句 |
返回值:
查询结果
方法:.GetObjectIds(System.Data.DataTable)
方法说明:
从数据库表中获得记录的对象ID
名称 | 说明 |
Table | 传入的表 |
返回值:
表中记录的ObjectId数组
方法:.GroupWorkItemSql(System.String[],System.String)
方法说明:
由于OT_WorkItem表中没有InstanceName字段,与OT_InstanceContext表做连接
名称 | 说明 |
Conditions | |
OrderBy |
返回值:
返回SQL语句
方法:.GetWorkItemConditions(System.String,System.DateTime,System.DateTime,OThinker.H3.WorkItem.WorkItemState,System.String,OThinker.Data.BoolMatchValue,System.String,System.Boolean,System.String)
方法说明:
获取任务的查询条件
名称 | 说明 |
Participant | |
From | |
To | |
State | |
InstanceName | |
Elapsed | 是否超时 |
WorkflowCode | |
OnlyInstanceName | 流程名称 参数是否包括任务名称 |
TableName |
返回值:
方法:.QueryWorkItem(System.Int32,System.String[],System.String[],System.String)
方法说明:
根据InstanceID查找任务
名称 | 说明 |
WorkflowCode | |
WorkflowVersion | |
ActivityName | |
Instances | |
State | |
? |
返回值:
方法:.GetParticipantCondition(System.String,OThinker.H3.WorkItem.WorkItemState,System.String)
方法说明:
获取查询任务的参与者条件
名称 | 说明 |
Participant | |
State | |
TableName |
返回值:
方法:.QueryWorkItem(System.String[],System.Int32,System.Int32,System.String,System.String)
方法说明:
查询任务
名称 | 说明 |
Conditions | |
FromRowNum | |
ToRowNum | |
OrderBy | |
TableName |
返回值:
方法:.GetWorkItemConditions(System.String,System.String,System.DateTime,System.DateTime,OThinker.H3.WorkItem.WorkItemState,System.String,OThinker.Data.BoolMatchValue,OThinker.Data.BoolMatchValue,OThinker.H3.Instance.InstanceState,System.String)
方法说明:
查询工作项。该方法存在延时,该查询与流程实例表做了自然连接,如果流程实例没有存储在数据库中,则无法查询到流程实例对应的工作列的。
名称 | 说明 |
Participant | 参与者,如果为Null,则忽略该条件 |
TimeColumnName | 时间字段名称 |
From | 工作项接收的起始查询时间。如果为System.DateTime.MinValue则忽略该条件 |
To | 工作项接收的结束查询时间。如果为System.DateTime.MaxValue则忽略该条件 |
State | 工作项状态,如果为Unspecified,则忽略该条件 |
InstanceName | 流程实例的名称,流程实例的名称可以使通过流程模板定义出来的,也可以使由最终用户指定的,实际上,会优先用户指定的。如果该参数为空,则忽略该条件;否则,以LIKE %{InstanceName}%的形式进行匹配 |
Approval | 审批结果,如果为Unspecified,则表示忽略这个条件 |
Elapsed | 是否已经超时,如果为Unspecified,则表示忽略这个条件 |
InstanceState | 流程实例的状态,如果为Unspecified,则表示忽略这个条件 |
WorkflowCode | 流程模板的编码,如果为空,则表示忽略这个条件 |
返回值:
查询工作项的条件
方法:.GetBatchUnfinishedWorkItemConditions(System.String,System.String)
方法说明:
获得可以批量的未完成的工作项的查询条件
名称 | 说明 |
Participant | 禁止为空 |
SearchKey | 搜索关键词 |
返回值:
查询工作项的条件
方法:.GetInstanceConditions(System.String[],System.String,System.String,OThinker.H3.Instance.InstanceState,System.String,System.Int32,System.DateTime,System.DateTime,System.String,OThinker.H3.Instance.PriorityType,OThinker.Data.BoolMatchValue,OThinker.Data.BoolMatchValue)
方法说明:
查询流程实例
名称 | 说明 |
Originators | 发起人。如果为Null,则忽略该条件 |
OU | 发起人所属的机构,如果为Null,则忽略该条件 |
ParentInstanceID | 父流程ID,如果为Null,则忽略该条件 |
InstanceState | 流程状态,如果为UnspecifiedID,则忽略该条件 |
WorkflowCode | 流程模板名称,如果为Null,则忽略该条件 |
WorkflowVersion | 流程模板版本号,如果为NullVersion,则忽略该条件 |
CreatedTime_From | 开始时间,如果为MinValue,则忽略该条件 |
CreatedTime_To | 结束时间,如果为MaxValue,则忽略该条件 |
InstanceName | 流程实例的名称,流程实例的名称可以使通过流程模板定义出来的,也可以使由最终用户指定的,实际上,会优先用户指定的。如果该参数为空,则忽略该条件;否则,以LIKE %{InstanceName}%的形式进行匹配 |
Priority | 优先级,如果为Unspecified,则忽略该条件 |
Approval | 审批结果,如果为Unspecified,则忽略该条件 |
Elapsed | 是否超时,如果为Unspecified,则忽略该条件 |
返回值:
查询流程实例表的条件
方法:.BuildWorkItemParticipant(System.String,System.Boolean)
方法说明:
匹配参与者的条件
名称 | 说明 |
Participant | 参与者。不能为Null。 |
ParticipantIncludeDelegant | 参与者是否包括委托人,如果为true,那么参与者不但要算WorkItem.Participant字段,还要算WorkItem.Delegant字段; |
返回值:
参与者的匹配条件
方法:.BuildWorkItemType(OThinker.H3.WorkItem.WorkItemType)
方法说明:
根据工作项的类型获得SQL的查询条件
名称 | 说明 |
WorkItemType | 工作项类型 |
返回值:
SQL条件语句
方法:.BuildState(OThinker.H3.WorkItem.WorkItemState,System.String)
方法说明:
将状态条件转换为SQL用的条件
名称 | 说明 |
State | 工作项状态 |
TableName | 表名 |
返回值:
SQL条件
方法:.CountWorkItem(System.String[],System.String)
方法说明:
按照条件统计出工作项的数量
名称 | 说明 |
Conditions | 过滤条件 |
TableName | 表名 |
返回值:
返回任务数量
方法:.CountInstance(System.String[])
方法说明:
统计符合条件的流程的数量
名称 | 说明 |
Conditions | 条件,允许为Null |
返回值:
记录的数量
方法:.QueryInstance(System.String[],System.Int32,System.Int32)
方法说明:
查询流程
名称 | 说明 |
Conditions | 条件 |
FromRow | 起始行号,包括本行 |
ToRow | 结束行号,不包括本行 |
返回值:
流程表
方法:.QueryInstance(System.String[],System.Int32,System.Int32,System.String,System.Boolean)
方法说明:
查询流程,WorkflowName 从OT_WorkflowClause关联
名称 | 说明 |
Conditions | 条件 |
FromRow | 起始行号,包括本行 |
ToRow | 结束行号,不包括本行 |
OrderBy | 根据该列来进行排序,为 null 时,忽略该条件 |
Ascending | 是否升序 |
返回值:
流程表
方法:.QueryInstanceData(System.String,System.String,System.String[],System.String[])
方法说明:
导出流程数据
名称 | 说明 |
WorkflowCode | 流程模板编码。如果为Null,则返回Null |
BizObjectTableName | |
Columns | 设置要显示的字段 |
Conditions | 查询条件 |
返回值:
流程数据的表
方法:.QueryInstanceData(System.String,System.String,System.String[],System.String[],System.Int32,System.Int32,System.Int32@)
方法说明:
根据流程数据查询流程
名称 | 说明 |
WorkflowCode | 流程模板编码。如果为Null,则返回Null |
BizObjectTableName | |
Columns | 设置要显示的字段 |
Conditions | 查询条件 |
FromRow | 开始行 |
EndRow | 结束行 |
RecordCount | 总行数 |
返回值:
流程数据的表
方法:.QueryWorkflow(System.String[],System.Boolean)
方法说明:
查询用户/组/组织单元可发起的工作流模板
名称 | 说明 |
Units | 用户/组/组织单元 |
IsAdministrator | 是否超级管理员 |
返回值:
流程模板表
方法:.QueryClause(System.String)
方法说明:
查询所有流程模板族
名称 | 说明 |
WorkflowCode | 模板编码。如果为Null,那么表示忽略这个条件 |
返回值:
流程模板族的ID
方法:.QueryUrgency(System.String)
方法说明:
查询工作项被催办的历史记录
名称 | 说明 |
WorkItemID | 不能为Null,否则返回一张空表 |
返回值:
催办历史记录表
方法:.QueryUrgency(System.String,System.String)
方法说明:
返回某个催办人对某个流程的催办历史记录。
名称 | 说明 |
Urger | 催办人ID。不能为Null,否则返回空表。 |
InstanceId | 流程ID。不能为Null,否则返回空表。 |
返回值:
催办历史记录表
方法:.QueryChildInstances(System.String,System.Int64,OThinker.H3.Instance.InstanceState,OThinker.Data.BoolMatchValue)
方法说明:
查询子流程实例
名称 | 说明 |
ParentInstanceId | 流程ID。如果为Null,则忽略该条件 |
TokenId | 步骤ID。如果为Token.UnspecifiedID则忽略该条件 |
InstanceState | 状态。如果为InstanceState.Unspecified,则忽略该条件 |
Approval | 审批结果。如果为Unspecified,则忽略该条件 |
返回值:
子流程表
方法:.QueryUserLog(System.String)
方法说明:
查询用户的操作日志
名称 | 说明 |
InstanceId | 流程ID,不能为Null,否则返回Null |
返回值:
用户操作日志
方法:.Count(System.String,System.String[])
方法说明:
统计数量
名称 | 说明 |
TableName | 表名称 |
Conditions | 条件 |
返回值:
数量
方法:.GetWorkflowNameByWorkflowCodes(System.Collections.Generic.List{System.String})
方法说明:
WorkflowName ,WorkflowCodes对应表
名称 | 说明 |
WorkflowCodes |
返回值:
返回WorkflowName ,WorkflowCodes表
方法:.GetQueryInstanceConditions(System.String[],System.String,OThinker.H3.Instance.InstanceState,System.DateTime,System.DateTime)
方法说明:
获得查询实例的条件
名称 | 说明 |
Originators | 发起人条件,如果为Null,则表示忽略这个条件 |
WorkflowCode | 流程模板名称编码,如果为Null,则表示忽略这个条件 |
InstanceState | 流程实例状态条件,如果为Unspecified,则表示忽略这个条件 |
CreatedTime_From | 开始时间,如果为MinValue,则表示忽略这个条件 |
CreatedTime_To | 结束时间,如果为MaxValue,则表示忽略这个条件 |
返回值:
方法:.GetQueryInstanceConditionsForMonitor(System.String,System.String,System.String,System.DateTime,System.DateTime,OThinker.H3.Instance.InstanceState,OThinker.H3.Instance.PriorityType,OThinker.Data.BoolMatchValue,OThinker.Data.BoolMatchValue)
方法说明:
获取查询流程的条件
名称 | 说明 |
Originator | 发起人,为null时忽略该条件 |
InstanceName | 流程名称,为null时忽略该条件 |
WorkflowCode | 流程模板名称编码,如果为Null,则表示忽略这个条件, |
CreatedTime_From | 开始时间,如果为MinValue,则表示忽略这个条件 |
CreatedTime_To | 结束时间,如果为MaxValue,则表示忽略这个条件 |
State | 流程实例状态条件,如果为Unspecified,则表示忽略这个条件 |
Priority | 优先级,为 Unspecified,则表示忽略这个条件 |
Approval | 工作项的审批结果,如果为Unspecified,则忽略该条件 |
Elapsed | 是否超时,如果为Unspecified,则忽略该条件 |
返回值:
方法:.GetQueryInstanceConditionsForMonitor(System.String,System.String,OThinker.H3.Instance.InstanceState,System.DateTime,System.DateTime)
方法说明:
查询流程实例
名称 | 说明 |
Originator | |
WorkflowCode | |
InstanceState | |
CreatedTime_From | |
CreatedTime_To |
返回值:
方法:.GetQueryActiveNameConditionsForInstanceId(System.Collections.Generic.List{System.String})
方法说明:
获取流程实例运行状态的节点名称和参与者查询条件
名称 | 说明 |
instanceID |
返回值:
方法:.GetOriginatorConditionForMonitor(System.String)
方法说明:
搜索流程的时候,需要按照发起人的条件进行搜索。该方法用于获得发起人的条件
名称 | 说明 |
Organization | |
Originator | 如果为Null/"",那么返回Null,表示不需要匹配发起人的条件; 如果发起人无法找到,那么返回Originator=''这样的条件,在数据库中将匹配不到流程; 如果发起人是公司,那么返回Null,表示不需要匹配发起人的条件; 如果发起人是群,那么获得者群的成员,然后去根据各个成员的逻辑来搜索; 如果发起人是OU,那么就去匹配该OU及其子OU,返回InstanceContext.OrgUnit IN ('OU1', 'OU2'...); 如果发起人是组,那么匹配InstanceContext.OriginatedGroup=Originator; 如果发起人是用户,那么匹配InstanceContext.Originator=Originator |
返回值:
方法:.GetOriginatorConditionForMonitor(System.String[])
方法说明:
搜索流程的时候,需要按照发起人的条件进行搜索。该方法用于获得发起人的条件
名称 | 说明 |
Organization | |
Originator | 如果为Null/"",那么返回Null,表示不需要匹配发起人的条件; 如果发起人无法找到,那么返回Originator=''这样的条件,在数据库中将匹配不到流程; 如果发起人是公司,那么返回Null,表示不需要匹配发起人的条件; 如果发起人是群,那么获得者群的成员,然后去根据各个成员的逻辑来搜索; 如果发起人是OU,那么就去匹配该OU及其子OU,返回InstanceContext.OrgUnit IN ('OU1', 'OU2'...); 如果发起人是组,那么匹配InstanceContext.OriginatedGroup=Originator; 如果发起人是用户,那么匹配InstanceContext.Originator=Originator |
返回值:
方法:.GetQueryWorkItemConditionsForMonitor(System.String[],System.String,System.DateTime,System.DateTime,System.String,OThinker.H3.WorkItem.WorkItemState,OThinker.Data.BoolMatchValue,OThinker.Data.BoolMatchValue)
方法说明:
GetQueryWorkItemConditionsForMonitor
名称 | 说明 |
Orgs | |
WorkflowCode | |
From | |
To | |
InstanceName | |
State | |
Approval | |
Elapsed |
返回值:
方法:.GetQueryWorkItemByOrgConditionForMonitor(System.String[])
方法说明:
搜索工作项的时候,需要按照参与人员的条件进行搜索。该方法用于获得参与人员的条件
名称 | 说明 |
Organization | |
Originator | 如果为Null/"",那么返回Null,表示不需要匹配参与人的条件; 如果发起人无法找到,那么返回Participant=''这样的条件,在数据库中将匹配不到工作项; 如果发起人是公司,那么返回Null,表示不需要匹配参与人的条件; 如果发起人是OU,那么就去匹配该OU及其子OU,返回WorkItem.OrgUnit IN ('OU1', 'OU2'...); 如果发起人是组,那么匹配WorkItem.ParticipateGroup=AdminOrg; 如果发起人是用户,那么匹配WorkItem.Participant=AdminOrg |
返回值: