H3 BPM接口说明文档


H3 BPM接口说明文档

二〇一七年四月

目 录

1 引擎接口唯一入口:OThinker.H3.IEngine 3

1.1 构造Engine对象 3

1.2 属性 4

2 类:OThinker.H3.Acl.IBizRuleAclManager 6

3 类:OThinker.H3.Acl.IFunctionAclManager 8

4 类:OThinker.H3.Acl.ISystemOrgAclManager 12

5 类:OThinker.H3.Acl.ISystemAclManager 15

6 类:OThinker.H3.Acl.IWorkflowAclManager 17

7 类:OThinker.H3.Apps.IAppNavigationManager 20

8 类:OThinker.H3.BizBus.IBizBus 22

9 类:OThinker.H3.Sheet.IBizSheetManager 30

10 类:OThinker.H3.SNS.ISNSManager 32

11 类:OThinker.H3.Site.ISiteManager 37

12 类:OThinker.H3.Apps.IAppPackageManager 43

13 类:OThinker.H3.WorkflowTemplate.IWorkflowConfigManager 46

14 类:OThinker.H3.Notification.IWeChatAdapter 48

15 类:OThinker.H3.Instance.IHeapDataManager 50

16 类:OThinker.H3.DataModel.IBizObjectManager 54

17 类:OThinker.H3.DataModel.IBizObjectTrackManager 68

18 类:OThinker.H3.DataModel.IFilePolicyManager 70

19 类:OThinker.H3.Analytics.IAnalyzer 72

20 类:OThinker.H3.WorkItem.IAgencyManager 75

21 类:OThinker.H3.WorkItem.IConsultancyManager 78

22 类:OThinker.H3.Exceptions.IExceptionManager 80

23 类:OThinker.H3.Instance.IInstanceManager 83

24 类:OThinker.H3.Instance.IInstanceSimulationManager 86

25 类:OThinker.H3.Data.IMetadataRepository 89

26 类:OThinker.H3.Notification.INotifier 94

27 类:OThinker.H3.Settings.ISettingManager 95

28 类:OThinker.H3.WorkItem.IUrgencyManager 99

29 类:OThinker.H3.Tracking.IUserLogWriter 100

30 类:OThinker.H3.WorkflowTemplate.IWorkflowManager 101

31 类:OThinker.H3.Calendar.IWorkingCalendarManager 107

32 类:OThinker.H3.WorkItem.IWorkItemManager 112

33 类:OThinker.H3.EventHandlers.IMessageEventHandler 121

34 类:OThinker.H3.EventHandlers.IEngineEventHandler`1 122

35 类:OThinker.H3.EventHandlers.INotificationEventHandler 124

36 类:OThinker.H3.EventHandlers.IOrganizationEventHandler 125

37 类:OThinker.H3.EventHandlers.IInstanceEventHandler 126

38 类:OThinker.H3.EventHandlers.IWorkItemEventHandler 127

39 常用方法示例 129

1 引擎接口唯一入口:OThinker.H3.IEngine

说明:流程引擎,通过该接口来访问流程服务。

示例1:获取组织机构对象


this.Engine.Organization.GetUnit("组织ID");

示例2:获取流程实例


this.Engine.InstanceManager.GetInstanceContext("流程实例ID");

示例3:获取已发布的默认流程模板对象


this.Engine.WorkflowManager.GetDefaultWorkflow("流程模板编码");

示例4:获取已发布的默认流程模板对象


this.Engine.WorkItemManager.GetWorkItem("工作任务ID");

示例5:获取工作日历


this.Engine.WorkingCalendarManager.GetCalendar("工作日历ID");

1.1 构造Engine对象

方法1:


OThinker.H3.Connection conn = new Connection();

conn.Open("Servers=127.0.0.1:8211;User=administrator;Password=000000;Engine=DefaultEngine");

IEngine _Engine = conn.Engine;

// 调用示例(获取组织对象)

OThinker.Organization.Unit unit = _Engine.Organization.GetUnit("组织ID");

方法2:


OThinker.H3.Connection conn = new Connection();

conn.Open("127.0.0.1", 8211, "DefaultEngine", "Administrator", "000000");

IEngine _Engine = conn.Engine;

// 调用示例(获取组织对象)

OThinker.Organization.Unit unit = _Engine.Organization.GetUnit("组织ID");

注:如果继承至OThinker.H3.Portal.PortalPage或者 SheetPage 类,均已经存在 Engine对象可以直接访问。

1.2 属性


名称


说明


EngineConfig


流程引擎的基础配置


SettingManager


配置管理器


LogWriter


用于写日志


AppNavigationManager


应用程序管理器


WorkflowConfigManager


流程模板设计管理器


WorkflowManager


流程管理器


BizObjectManager


数据模型管理器


BizSheetManager


表单管理器


HeapDataManager


堆数据管理器


MetadataRepository


元数据管理器


Notifier


用于通知


WeChatAdapter


微信


SimulationManager


流程模拟管理器


InstanceManager


流程实例管理器


WorkItemManager


工作项管理器


ConsultancyManager


征询意见关系管理器


AgencyManager


委托管理器


UrgencyManager


催办


ExceptionManager


异常管理器,用于管理异常信息


TimerManager


定时器


Organization


组织结构管理器


BizRuleAclManager


业务规则权限控制器


WorkflowAclManager


流程模板权限控制器


SystemAclManager


系统权限控制器


SystemOrgAclManager


系统权限控制器


FunctionAclManager


功能权限控制器


WorkingCalendarManager


工作日历


BizBus


业务服务总线


AppPackageManager


流程包


Analyzer


分析器,用于分析报表


Query


查询器,用于直接查询数据库,这是一个特殊的属性,客户端调用Query的时候,并不通过Engine,而是直接访问数据库,所以在这里没有标记为服务器集群模块


BPAQuery


查询器,用于直接查询数据库,这是一个特殊的属性,客户端调用Query的时候,并不通过Engine,而是直接访问数据库,所以在这里没有标记为服务器集群模块


UserLogWriter


用户操作日志


SNSManager


企业社交管理器


Interactor


交互服务。外部系统与引擎交互,有的时候为了完成某一项工作,需要与引擎多次交互,为了提高这种交互效率,我们在这里将多个接口封装成一个接口,一次调用即可完成所有工作


PerformanceTrackManager


性能监控日志


Exceptional


是否出现了异常


SiteManager


门户管理器

2 类:OThinker.Organization.IOrganization

说明:组织结构接口,用于增删改查组织结构信息,整个组织结构的索引是完全建立在内存索引的基础上的,所以相应会非常快

方法名称:Reload


方法说明


装载必须装载全部数据,因为其他的判断包括Alias是否存在的判断都是判断内存中的数据


输入参数


名称


类型


说明


返回值


方法名称:GetUnit(System.String)


方法说明


根据ID获得Unit


输入参数


名称


类型


说明


ID


System.String


组织的ID


返回值


组织对象

方法名称:GetUnits(System.String[])


方法说明


通过ID批量获得组织


输入参数


名称


类型


说明


Ids


System.String[]


组织的ID


返回值


组织对象

方法名称:GetUnitsByCodes(System.String[])


方法说明


通过Code批量获得组织


输入参数


名称


类型


说明


Codes


System.String[]


组织的Code


返回值


组织对象

方法名称:GetUnitFullNameTable(System.String[])


方法说明


通过ID批量获得组织的全名。执行该方法不需要锁定组织结构服务。


输入参数


名称


类型


说明


Ids


System.String[]


组织的ID


返回值


如果参数是Null,那么返回Null;否则按照每个ID获得名称,不获取重复的记录,然后返回一个(ID, 全名称)的表

方法名称:GetUnitPathTable(System.String[])


方法说明


通过ID批量获得组织的全名。执行该方法不需要锁定组织结构服务。


输入参数


名称


类型


说明


Ids


System.String[]


组织的ID


返回值


如果参数是Null,那么返回Null;否则按照每个ID获得名称,不获取重复的记录,然后返回一个(ID, 全路径)的表

方法名称:GetUnitCopy(System.String)


方法说明


根据ID获得Unit的一个副本,这个副本中的属性跟Unit本身完全一样,只是并不在组织结构的缓存中,外部程序可以对这个副本进行编辑,然后再通过UpdateUnit方法,更新到系统缓存和数据库中。如果不使用副本直接进行编辑的话,那么可能会影响内存中的对象。


输入参数


名称


类型


说明


ID


System.String


组织的ID


返回值


组织对象

方法名称:GetCompanyUnits(OThinker.Organization.State)


方法说明


获得公司下的所有单元


输入参数


名称


类型


说明


State


OThinker.Organization.State


组织的状态条件


返回值


公司下面的所有符合状态条件的组织对象

方法名称:AddUnit(System.String,OThinker.Organization.Unit)


方法说明


添加一个Unit


输入参数


名称


类型


说明


Modifier


System.String


请求变更的人


Unit


OThinker.Organization.Unit


要添加的对象


返回值


返回ID

方法名称:UpdateUnit(System.String,OThinker.Organization.Unit)


方法说明


更新一个Unit


输入参数


名称


类型


说明


Modifier


System.String


请求变更的人


Unit


OThinker.Organization.Unit


具有新属性的Unit


返回值


错误代码

方法名称:RemoveUnit(System.String,System.String)


方法说明


删除一个组织


输入参数


名称


类型


说明


Modifier


System.String


请求变更的人


ID


System.String


要删除的组织的ID


返回值


删除的Unit的数量

方法名称:Sync(System.String,System.String[],System.String,System.String,System.DateTime,OThinker.Organization.RootMode,OThinker.Organization.ADUserRemovingPolicy,System.Boolean)


方法说明


同步AD


输入参数


名称


类型


说明


Modifier


System.String


修改人员


ADPathes


System.String[]


AD路径


ADUser


System.String


AD登录名


ADPassword


System.String


AD密码


UTCLastSyncTime


System.DateTime


上一次同步时间


RootMode


OThinker.Organization.RootMode


根目录模式。如果要同步的对象是某一个OU,那么允许两种模式:1、将OU作为一个节点同步到公司节点下面;2、将OU下面的子对象直接同步到公司下面。


ADUserRemovingPolicy


OThinker.Organization.ADUserRemovingPolicy


AD用户被删除之后的同步策略


LoginNameIncludeDomain


System.Boolean


用户的登陆名是否包含域名


返回值

方法名称:CreateUser(System.String,System.String[],System.String,System.String,System.String,System.Boolean,[email protected])


方法说明


根据活动目录中的用户信息新建一个用户对象


输入参数


名称


类型


说明


ADPath


System.String


AD路径


ReferenceADPathes


System.String[]


ADUser


System.String


AD登录名


ADPassword


System.String


AD密码


UserAlias


System.String


要创建的用户的登录名


LoginNameIncludeDomain


System.Boolean


用户的登陆名是否包含域名


Result


[email protected]


如果成功则返回SUCCESS,否则返回错误代码


返回值


新建的用户

方法名称:QueryADUsers(System.String[],System.String,System.String,System.String)


方法说明


按照登陆名前缀条件来查找AD用户


输入参数


名称


类型


说明


ADPathes


System.String[]


所有需要遍历的LADP


ADUser


System.String


登陆名


ADPassword


System.String


登陆密码


UserAlias


System.String


账号前缀


返回值


(LDAP, 用户不带域前缀的登陆名数组)

方法名称:QueryADUsersByDate(System.String[],System.String,System.String,System.DateTime)


方法说明


按照修改日期条件来查找AD用户


输入参数


名称


类型


说明


ADPathes


System.String[]


所有需要遍历的LADP


ADUser


System.String


登陆名


ADPassword


System.String


登陆密码


UTCBenchDate


System.DateTime


基准时间


返回值


(LDAP, 用户不带域前缀的登陆名数组)

方法名称:QueryLog(System.DateTime,System.DateTime)


方法说明


用于查找修改日志,取的日志范围是小于To并且大于等于From


输入参数


名称


类型


说明


From


System.DateTime


查询的开始时间


To


System.DateTime


查询的结束时间


返回值


搜索到的日志

方法名称:IsAdministrator(System.String)


方法说明


判断该用户是否是管理员


输入参数


名称


类型


说明


ID


System.String


返回值

方法名称:IsAdministratorByIds(System.String[])


方法说明


如果其中任何一个对象是管理员,那么返回true


输入参数


名称


类型


说明


Ids


System.String[]


组织的ID


返回值


如果其中任何一个对象是管理员,那么返回true,否则返回false

方法名称:GetManager(System.String)


方法说明


获得用户/组/OU/公司的经理。但是不能获得群的经理


输入参数


名称


类型


说明


ID


System.String


组织的ID


返回值


这个组织的经理

方法名称:GetManagers(System.String[])


方法说明


获得用户/组/OU/公司/群的经理,如果是群的话,那么需要自动展开,然后分别获得每个组织的经理


输入参数


名称


类型


说明


Units


System.String[]


用户/组/OU/公司/群的ID数组


返回值


组织的经理

方法名称:GetDirectManager(System.String)


方法说明


获得用户的直接经理


输入参数


名称


类型


说明


ID


System.String


组织的ID


返回值


组织的经理经理的ID

方法名称:GetRecursiveManagers(System.String)


方法说明


获得用户的递归的经理,从直接经理依次往上递归


输入参数


名称


类型


说明


ID


System.String


组织的ID


返回值


组织的经理的ID数组

方法名称:GetManagerByInterval(System.String,System.Int32)


方法说明


获得某个组织的跨级经理。


输入参数


名称


类型


说明


UnitId


System.String


组织ID。如果组织是群,那么获得群的子对象,并针对各个子对象获得相应的跨级经理;如果是非群,那么直接获得跨级经理


Interval


System.Int32


跨级的级别,0表示自己,1表示父对象,依次类推


返回值


返回的经理没有重复值

方法名称:GetUnitsManagersByInterval(System.String[],System.Int32)


方法说明


获得某个组织的跨级经理。


输入参数


名称


类型


说明


Units


System.String[]


组织ID。如果组织是群,那么获得群的子对象,并针对各个子对象获得相应的跨级经理;如果是非群,那么直接获得跨级经理


Interval


System.Int32


跨级的级别,0表示自己,1表示父对象,依次类推


返回值


返回的经理没有重复值

方法名称:GetManagerByLevel(System.String,System.Int32)


方法说明


获得某个级别的经理


输入参数


名称


类型


说明


UnitId


System.String


组织ID。如果组织是群,那么获得群的子对象,并针对各个子对象获得相应的跨级经理;如果是非群,那么直接获得跨级经理


Level


System.Int32


级别,0表示公司,1表示公司的直接下属OU,依次类推


返回值


如果对象不存在或者不存在那么多的级别父对象,那么返回Null

方法名称:GetManagerByEmployeeRank(System.String,System.Int32)


方法说明


获取指定员工级别的经理


输入参数


名称


类型


说明


UnitId


System.String


组织ID。如果组织是群,那么获得群的子对象,并针对各个子对象获得相应的跨级经理;如果是非群,那么直接获得跨级经理


Level


System.Int32


级别,0表示公司,1表示公司的直接下属OU,依次类推


返回值


如果对象不存在或者不存在那么多的级别父对象,那么返回Null

方法名称:GetManagersByLevel(System.String[],System.Int32)


方法说明


获得某个组织的跨级经理。


输入参数


名称


类型


说明


Units


System.String[]


组织ID。如果组织是群,那么获得群的子对象,并针对各个子对象获得相应的跨级经理;如果是非群,那么直接获得跨级经理


Level


System.Int32


级别,0表示公司,1表示公司的直接下属OU,依次类推


返回值


返回的经理没有重复值

方法名称:GetManagersByEmployeeRank(System.String[],System.Int32)


方法说明


获取指定员工级别的经理


输入参数


名称


类型


说明


Units


System.String[]


组织ID。如果组织是群,那么获得群的子对象,并针对各个子对象获得相应的跨级经理;如果是非群,那么直接获得跨级经理


Level


System.Int32


员工级别


返回值


如果对象不存在或者不存在那么多的级别父对象,那么返回Null

方法名称:GetName(System.String)


方法说明


获得单元的实际名称,比如张三,李四之类的。


输入参数


名称


类型


说明


ID


System.String


组织的ID


返回值


如果返回null,那么表示该单元不存在

方法名称:GetFullName(System.String)


方法说明


通过单元ID获得某个单元的全名称


输入参数


名称


类型


说明


ID


System.String


组织的ID


返回值


如果单元为用户,则返回User[Alias];否则,则返回路径形式,比如/Company1/Dept1/Dept1_G1

方法名称:GetPath(System.String)


方法说明


获得单元的全路径。注意:路径不能唯一确定某个单元


输入参数


名称


类型


说明


ID


System.String


组织的ID


返回值


返回路径形式,比如/Company1/Dept1/Dept1_G1或者/Company1/User1的形式,路径中所有元素均为单元的名称

方法名称:GetParent(System.String)


方法说明


获得父节点ID


输入参数


名称


类型


说明


ID


System.String


组织的ID


返回值


父组织的ID

方法名称:GetParentUnit(System.String)


方法说明


获得父对象


输入参数


名称


类型


说明


ID


System.String


组织的ID


返回值


父组织

方法名称:GetParentByLevel(System.String,System.Int32)


方法说明


通过层次获得父对象的ID


输入参数


名称


类型


说明


ID


System.String


子对象ID


Level


System.Int32


层次


返回值


父对象

方法名称:GetParentByInterval(System.String,System.Int32)


方法说明


获取跨级上级对象


输入参数


名称


类型


说明


ID


System.String


子对象ID


Level


System.Int32


跨度层级,0表示自己


返回值


父对象

方法名称:GetParentUnitByLevel(System.String,System.Int32)


方法说明


通过层次获得父对象


输入参数


名称


类型


说明


ID


System.String


子对象ID


Level


System.Int32


层次


返回值


父对象

方法名称:GetUnitLevel(System.String)


方法说明


获取组织层级


输入参数


名称


类型


说明


ID


System.String


组织ID


返回值

方法名称:GetParents(System.String,OThinker.Organization.UnitType,System.Boolean,OThinker.Organization.State)


方法说明


获得父/祖先Unit数组


输入参数


名称


类型


说明


ID


System.String


子Unit


ParentUnitType


OThinker.Organization.UnitType


要获得的父/祖先的类型


Recursive


System.Boolean


是否递归


State


OThinker.Organization.State


状态条件,如果要所有状态的组织,可以使用Unspecified


返回值


父/祖先集合

方法名称:GetParentUnits(System.String,OThinker.Organization.UnitType,System.Boolean,OThinker.Organization.State)


方法说明


获得父/祖先Unit数组


输入参数


名称


类型


说明


ID


System.String


子Unit


ParentUnitType


OThinker.Organization.UnitType


要获得的父/祖先的类型


Recursive


System.Boolean


是否递归


State


OThinker.Organization.State


状态条件,如果要所有状态的组织,可以使用Unspecified


返回值


父/祖先集合

方法名称:GetMembers(System.String[])


方法说明


如果Parents的某个Parent为用户,则返回他自己,如果Receiver为组或组织单元,则返回他下面的递归用户列表。


输入参数


名称


类型


说明


Parents


System.String[]


父组织的ID


返回值


隶属于父组织的成员

方法名称:GetMembersByState(System.String[],OThinker.Organization.State)


方法说明


如果Parents的某个Parent为用户,则返回他自己,如果Receiver为组或组织单元,则返回他下面的递归用户列表。


输入参数


名称


类型


说明


Parents


System.String[]


父组织的ID


State


OThinker.Organization.State


状态条件,如果要所有状态的组织,可以使用Unspecified


返回值


隶属于父组织的成员

方法名称:GetMemberUsers(System.String[])


方法说明


获得用户成员。;如果Unit为Company、OrganizationUnit,则递归获得他们下面的所有User成员;如果Unit为Group,则获得该Group下的所有User成员;如果Unit为User,则直接返回string[]{ User }


输入参数


名称


类型


说明


Units


System.String[]


父组织的ID


返回值


父组织中的所有用户子成员

方法名称:GetChildren(System.String,OThinker.Organization.UnitType,System.Boolean,OThinker.Organization.State)


方法说明


获得子Unit


输入参数


名称


类型


说明


ID


System.String


祖先的ID


ChildUnitType


OThinker.Organization.UnitType


作为一个过滤条件,只返回这种类型的Unit


Recursive


System.Boolean


是否递归


State


OThinker.Organization.State


状态条件,如果要所有状态的组织,可以使用Unspecified


返回值


如果祖先是Company或者OrganizationUnit类型,那么递归/不递归返回下面的所有ChildUnitType类型的Unit;如果是Group,则不递归只返回他的下属成员;如果是User,则不递归返回Manager指向该User的Unit

方法名称:GetChildUnits(System.String,OThinker.Organization.UnitType,System.Boolean,OThinker.Organization.State)


方法说明


获得子Unit


输入参数


名称


类型


说明


ID


System.String


祖先的ID


ChildUnitType


OThinker.Organization.UnitType


作为一个过滤条件,只返回这种类型的Unit


Recursive


System.Boolean


是否递归


返回值


如果祖先是Company或者OrganizationUnit类型,那么递归/不递归返回下面的所有ChildUnitType类型的Unit;如果是Group,则不递归只返回他的下属成员;如果是User,则不递归返回Manager指向该User的Unit

方法名称:GetChildUnitsByIds(System.String[],OThinker.Organization.UnitType,System.Boolean,OThinker.Organization.State)


方法说明


获得子Unit


输入参数


名称


类型


说明


IDs


System.String[]


祖先的ID


ChildUnitType


OThinker.Organization.UnitType


作为一个过滤条件,只返回这种类型的Unit


Recursive


System.Boolean


是否递归


State


OThinker.Organization.State


状态条件,如果要所有状态的组织,可以使用Unspecified


返回值


如果祖先是Company或者OrganizationUnit类型,那么递归/不递归返回下面的所有ChildUnitType类型的Unit;如果是Group,则不递归只返回他的下属成员;如果是User,则不递归返回Manager指向该User的Unit

方法名称:GetChildrenByLevel(System.String,OThinker.Organization.UnitType,System.Int32,OThinker.Organization.State)


方法说明


根据层级获得子对象


输入参数


名称


类型


说明


ID


System.String


父对象


ChildUnitType


OThinker.Organization.UnitType


子对象类型


Level


System.Int32


层级


State


OThinker.Organization.State


状态条件,如果要所有状态的组织,可以使用Unspecified


返回值


该层级的子组织

方法名称:GetChildUnitsByLevel(System.String,OThinker.Organization.UnitType,System.Int32,OThinker.Organization.State)


方法说明


根据层级获得子对象


输入参数


名称


类型


说明


ID


System.String


父对象


ChildUnitType


OThinker.Organization.UnitType


子对象类型


Level


System.Int32


层级


State


OThinker.Organization.State


状态条件,如果要所有状态的组织,可以使用Unspecified


返回值


该层级的子组织

方法名称:IsAncestor(System.String,System.String)


方法说明


判断某一个单元是否是另外一个单元的祖先


输入参数


名称


类型


说明


ChildID


System.String


子孙ID


AncestorID


System.String


祖先ID


返回值


如果是祖先关系则返回true,否则返回false

方法名称:GetUserManagedUnits(System.String,OThinker.Organization.UnitType)


方法说明


用户的直接下属


输入参数


名称


类型


说明


UserID


System.String


用户


UnitType


OThinker.Organization.UnitType


单元的类型


返回值


该用户管理的对象

方法名称:GetUserEmail(System.String)


方法说明


获得用户的电子邮件地址


输入参数


名称


类型


说明


UserID


System.String


用户ID


返回值


用户的邮件地址

方法名称:GetUserAddress(System.String)


方法说明


获得用户的地址


输入参数


名称


类型


说明


UserID


System.String


用户ID


返回值


用户的地址

方法名称:GetUserTitle(System.String)


方法说明


获得用户头衔


输入参数


名称


类型


说明


UserID


System.String


返回值

方法名称:GetUserMobile(System.String)


方法说明


获得用户的移动电话


输入参数


名称


类型


说明


UserID


System.String


用户ID


返回值


用户的移动电话

方法名称:GetUserOfficePhone(System.String)


方法说明


获得用户的办公电话


输入参数


名称


类型


说明


UserID


System.String


用户ID


返回值


用户的办公电话

方法名称:GetUserIpPhone(System.String)


方法说明


获得用户的IP电话


输入参数


名称


类型


说明


UserID


System.String


用户ID


返回值


用户的IP电话

方法名称:GetParentGroups(System.String,OThinker.Organization.VisibleType,OThinker.Organization.State)


方法说明


获得用户所属于的组


输入参数


名称


类型


说明


ID


System.String


组成员的ID


Type


OThinker.Organization.VisibleType


可见类型


State


OThinker.Organization.State


状态过滤条件


返回值


用户隶属于的组

方法名称:Sort(System.String[])


方法说明


通过排序键升序排序


输入参数


名称


类型


说明


Units


System.String[]


组织的ID


返回值


排序号的组织的ID,按照排序码升序排列

方法名称:GetUserDept(System.String)


方法说明


获得用户所属于的部门


输入参数


名称


类型


说明


UserID


System.String


用户ID


返回值


用户所属于的部门

方法名称:QueryUser(System.String,OThinker.Organization.State)


方法说明


查找用户


输入参数


名称


类型


说明


Keyword


System.String


要查询的关键字


State


OThinker.Organization.State


状态条件,如果要所有状态的组织,可以使用Unspecified


返回值


查询出的用户表

方法名称:QueryByName(System.String,OThinker.Organization.UnitType,OThinker.Organization.State)


方法说明


获得所有以某个字符串为开头的组织,其中对于用户会匹配用户名和登录名两个字段,其他类型的组织只匹配名称


输入参数


名称


类型


说明


StartWith


System.String


打头的字符串,禁止为Null,不区分大小写


UnitType


OThinker.Organization.UnitType


要求返回的类型


State


OThinker.Organization.State


状态条件,如果要所有状态的组织,可以使用Unspecified


返回值


返回的对象

方法名称:AddSignature(OThinker.Organization.Signature)


方法说明


添加签章


输入参数


名称


类型


说明


Signature


OThinker.Organization.Signature


签章


返回值


如果添加成功,则返回true,否则返回false

方法名称:RemoveSignature(System.String)


方法说明


删除签章


输入参数


名称


类型


说明


SignatureId


System.String


签章的ID


返回值


方法名称:SetSignatureState(System.String,OThinker.Organization.State)


方法说明


设置签章的状态


输入参数


名称


类型


说明


SignatureId


System.String


签章ID


State


OThinker.Organization.State


状态


返回值


方法名称:GetSignature(System.String)


方法说明


获得签章


输入参数


名称


类型


说明


SignatureId


System.String


签章的ID


返回值


签章信息

方法名称:GetSignatures(System.String[])


方法说明


获得签章


输入参数


名称


类型


说明


SignatureIds


System.String[]


签章的ID


返回值


签章

方法名称:GetSignaturesByUnit(System.String)


方法说明


获得用户的所有签章


输入参数


名称


类型


说明


UnitId


System.String


组织的ID


返回值


签章

方法名称:GetSignatureByName(System.String,System.String)


方法说明


通过名字获得签章


输入参数


名称


类型


说明


UnitId


System.String


组织的ID


Name


System.String


签章名称


返回值


签章

方法名称:GetSignatureNames(System.String)


方法说明


获得用户所有签章的名称


输入参数


名称


类型


说明


UnitId


System.String


组织的ID


返回值


签章

方法名称:GetDefaultSignature(System.String)


方法说明


获得默认的签章


输入参数


名称


类型


说明


UnitId


System.String


组织的ID


返回值


默认签章的ID

方法名称:SetDefaultSignature(System.String,System.Boolean)


方法说明


设置为默认的签章


输入参数


名称


类型


说明


SignatureId


System.String


签章的ID


Default


System.Boolean


是否是默认的


返回值


方法名称:AddCategory(OThinker.Organization.Category)


方法说明


添加类型定义


输入参数


名称


类型


说明


Category


OThinker.Organization.Category


类型定义


返回值


如果添加成功,则返回true,否则返回false

方法名称:RemoveCategory(System.String)


方法说明


删除类型


输入参数


名称


类型


说明


CategoryId


System.String


类型定义的ID


返回值


方法名称:GetCategory(System.String)


方法说明


根据类型定义的ID获得类型


输入参数


名称


类型


说明


CategoryId


System.String


类型的ID


返回值


类型定义

方法名称:GetCategoryNames


方法说明


获得用户所有类型的名称


输入参数


名称


类型


说明


返回值


类型的名称

方法名称:GetCategoryCodes


方法说明


获得用户所有类型的编码


输入参数


名称


类型


说明


返回值


所有类型的编码

方法名称:GetCategoryByCode(System.String)


方法说明


通过编码获得分类


输入参数


名称


类型


说明


Code


System.String


类型的编码


返回值


类型定义

方法名称:GetByUnitType(OThinker.Organization.UnitType)


方法说明


通过类型获得可选择的分类


输入参数


名称


类型


说明


Type


OThinker.Organization.UnitType


组织的类型


返回值


支持这种组织类型的类型定义

方法名称:SaveCategory(OThinker.Organization.Category)


方法说明


保存类型


输入参数


名称


类型


说明


Category


OThinker.Organization.Category


类型定义


返回值


如果保存成功,则返回true,否则返回false

方法名称:UpdateCategory(OThinker.Organization.Category)


方法说明


保存类型


输入参数


名称


类型


说明


Category


OThinker.Organization.Category


类型定义


返回值


如果保存成功,则返回true,否则返回false

方法名称:GetCategoryByUnitId(System.String)


方法说明


通过单元ID获得分类


输入参数


名称


类型


说明


UnitId


System.String


组织的ID


返回值


类型定义

方法名称:GetCategoryIdsByCodes(System.String[])


方法说明


通过分类的编码获得分类的ID


输入参数


名称


类型


说明


Codes


System.String[]


类型编码


返回值


类型的ID

方法名称:GetUnitCategoryCode(System.String)


方法说明


获得单元的类型编码


输入参数


名称


类型


说明


UnitId


System.String


组织的ID


返回值


类型编码

方法名称:GetUnitCategoryName(System.String)


方法说明


获得单元的类型名称


输入参数


名称


类型


说明


UnitId


System.String


组织的ID


返回值


类型名称

方法名称:FilterByCategoryCodes(System.String[],System.String[])


方法说明


通过分类的编码过滤组织


输入参数


名称


类型


说明


Units


System.String[]


组织


Codes


System.String[]


类型编码


返回值


过滤的组织的ID

方法名称:FindRole(System.String,System.String,System.Boolean)


方法说明


通过名称查找某个组织对应的角色。应用场景比如查找张三对应的报销审批专员。先在该组织的直接子成员上查找,如果找到则返回第一个;否则检查是否遍历父节点,如果需要遍历父节点,则遍历父节点;否则返回Null。


输入参数


名称


类型


说明


StartUnit


System.String


起始组织。必须是用户/组/OU


UnitName


System.String


名称


LookForAnsestor


System.Boolean


如果没有找到,是否是向父节点遍历


返回值


返回找到的第一个组织的ID

方法名称:FindRoles(System.String,System.String)


方法说明


通过名称查找某个组织对应的角色。应用场景比如查找张三对应的报销审批专员。先在该组织的直接子成员上查找,如果找到则返回第一个;否则检查是否遍历父节点,如果需要遍历父节点,则遍历父节点;否则返回Null。


输入参数


名称


类型


说明


StartUnit


System.String


起始组织。必须是用户/组/OU/群


UnitName


System.String


名称


返回值


返回找到的第一个组织的ID

方法名称:FindRolesByUnits(System.String[],System.String)


方法说明


查找组织对应的角色。比如要查找“研发部门”对应的“审计”人员


输入参数


名称


类型


说明


StartUnits


System.String[]


要查找的组织的ID。如果是群,那么会自动展开下面的子对象


RoleName


System.String


名称


返回值


每个组织会返回第一个找到的对象

方法名称:FindRoleUnits(System.String[],System.String)


方法说明


查找组织对应的角色。比如要查找“研发部门”对应的“审计”人员


输入参数


名称


类型


说明


StartUnits


System.String[]


要查找的组织的ID。如果是群,那么会自动展开下面的子对象


RoleName


System.String


角色的名称


返回值


找到的组织

方法名称:GetReferences(System.String)


方法说明


获得某个对象的引用。注意:该方法是逐一遍历所有组织对象,会非常占用服务器CPU,但是不会锁定组织结构服务对象


输入参数


名称


类型


说明


UnitId


System.String


被引用的对象的ID


返回值


如果参数为Null或者"",那么返回False;如果参数为this.UnitId,那么返回true;否则检查其他属性是否等于该值。

方法名称:GetWorkflowCode(System.String)


方法说明


获得某个组织对应的流程编码


输入参数


名称


类型


说明


UnitId


System.String


组织的ID


返回值


流程实例的流水号的编码

方法名称:GetUnitByCode(System.String)


方法说明


通过编码来查找组织对象


输入参数


名称


类型


说明


Code


System.String


编码


返回值


编号相匹配的组织对象

方法名称:GetUserByEmployeeNumber(System.String)


方法说明


通过员工编号来查找组织对象


输入参数


名称


类型


说明


EmployeeNumber


System.String


员工编号


返回值


员工编号相匹配的用户对象

方法名称:AddOrgJob(System.String,OThinker.Organization.OrgJob)


方法说明


添加一个职务


输入参数


名称


类型


说明


Modifier


System.String


请求变更的用户


Job


OThinker.Organization.OrgJob


要添加的职务


返回值


方法名称:RemoveOrgJob(System.String,System.String)


方法说明


删除一个职务


输入参数


名称


类型


说明


Modifier


System.String


请求变更的用户


OrgJobId


System.String


职务ID


返回值


方法名称:GetOrgJobById(System.String)


方法说明


根据职务ID获得职务


输入参数


名称


类型


说明


OrgJobId


System.String


职务Id


返回值


职务

方法名称:GetOrgJobByCode(System.String)


方法说明


根据职务编码获得职务


输入参数


名称


类型


说明


OrgJobCode


System.String


职务编码


返回值


职务

方法名称:GetOrgJobs


方法说明


获得所有的职务


输入参数


名称


类型


说明


返回值


所有的职务

方法名称:UpdateOrgJob(System.String,OThinker.Organization.OrgJob)


方法说明


更新一个职务


输入参数


名称


类型


说明


Modifier


System.String


更新用户


Job


OThinker.Organization.OrgJob


职务


返回值


如果出现重复的编码或者空的编码,则返回false;否则返回true

方法名称:FindPost(System.String,System.String,System.Boolean)


方法说明


找到某个组织机构下面最直接的


输入参数


名称


类型


说明


OrgId


System.String


组织的ID,这个不能使群


OrgJobCode


System.String


职务


Recursive


System.Boolean


是否递归查找


返回值


岗位

方法名称:FindPosts(System.String[],System.String)


方法说明


找到某个组织机构下面最直接的岗位


输入参数


名称


类型


说明


OrgIds


System.String[]


组织的ID


OrgJobCode


System.String


职务


返回值


岗位

方法名称:FindPostMembers(System.String[],System.String)


方法说明


找到某个组织机构下面最直接的岗位的成员


输入参数


名称


类型


说明


OrgIds


System.String[]


组织的ID


OrgJobCode


System.String


职务编码


返回值


岗位人员

方法名称:FindPostMembersByCode(System.String[],System.String)


方法说明


找到某个组织机构下面最的岗位成员(包含编制中的用户)


输入参数


名称


类型


说明


OrgIds


System.String[]


组织的ID


PostCode


System.String


岗位编码


返回值


岗位人员

方法名称:GetPostsByOrgJobCode(System.String)


方法说明


根据职位的编码获得所有的岗位


输入参数


名称


类型


说明


OrgJobCode


System.String


职位编码


返回值


某个职位的所有岗位

方法名称:FindSuperiorPost(System.String,System.Boolean)


方法说明


获得岗位的上级岗位,当上级岗位不存在的时候,自动向上遍历更高的上级岗位


输入参数


名称


类型


说明


PostId


System.String


岗位ID


RequiredMembers


System.Boolean


是否要求返回的岗位必须包含至少一名成员


返回值


上级岗位

方法名称:FindSuperiorPostMembers(System.String)


方法说明


获得岗位的上级岗位


输入参数


名称


类型


说明


PostId


System.String


岗位ID


返回值


上级岗位的成员,如果直接上级岗位不存在成员,则自动向上遍历

方法名称:FindRecursiveParentPost(System.String,System.Int32)


方法说明


查找上级岗位到满足某个指定的级别,返回该岗位中的用户


输入参数


名称


类型


说明


PostId


System.String


查找的起始岗位ID


Rank


System.Int32


岗位级别


返回值

方法名称:GetPostStaffByPost(System.String)


方法说明


根据岗位编码获取所有的编制信息


输入参数


名称


类型


说明


PostId


System.String


返回值

方法名称:GetParentPostByLevel(System.String,System.Int32)


方法说明


获取指定岗位级别的上级岗位


输入参数


名称


类型


说明


PostId


System.String


起始岗位ID


Level


System.Int32


岗位级别


返回值

方法名称:GetParentPost(System.String)


方法说明


获取指定岗位的上级岗位用户


输入参数


名称


类型


说明


PostId


System.String


岗位ID


返回值

方法名称:GetCalendarId(System.String)


方法说明


获得某个组织机构的工作日历


输入参数


名称


类型


说明


UnitId


System.String


组织结构对象ID


返回值


该组织结构对象对应的工作日历,如果该组织结构对象引用的工作日历为空,则自动向上遍历

方法名称:GetCalendarReferences(System.String)


方法说明


获得哪些组织结构对象引用了该工作日历


输入参数


名称


类型


说明


CalendarId


System.String


工作日历的对象ID,不区分大小写


返回值


引用该工作日历的组织结构对象

方法名称:FindManagersByLevelRange(System.String,System.Int32)


方法说明


查找上级经理到满足某个指定的级别 例如职级是从小到大,当A职级是3时,找到职级是6的经理,那么会返回用户上级经理中职级是4、5、6的人员,当6级经理不存在,则返回职级是7的经理 职级是从大到小时,那么A的职级是3,找到职级是1的经理时,返回上级经理中职级是2和1的经理,如果1没有找到,那么返回职级是0的经理


输入参数


名称


类型


说明


UserId


System.String


查找的组织范围起点


EndLevel


System.Int32


用户职级


返回值

方法名称:InitOrganizationDim


方法说明


/初始化平铺


输入参数


名称


类型


说明


返回值


方法名称:it.Update(OThinker.Organization.IOrganization,System.DirectoryServices.DirectoryEntry,System.DirectoryServices.DirectoryEntry[],System.DirectoryServices.DirectoryEntry,System.Boolean)


方法说明


更新属性


输入参数


名称


类型


说明


Organization


OThinker.Organization.IOrganization


组织结构对象


Root


System.DirectoryServices.DirectoryEntry


AD中的根目录


Entry


System.DirectoryServices.DirectoryEntry[]


AD中的对象


LoginNameIncludeDomain


System.DirectoryServices.DirectoryEntry


登陆名中是否包含域名称


返回值


方法名称:it.Validate(OThinker.Organization.IOrganization)


方法说明


验证是否合法


输入参数


名称


类型


说明


Organization


OThinker.Organization.IOrganization


组织结构接口,用来获得人员、OU、组等信息


返回值


如果合法则返回SUCCESS,否则返回错误代码

方法名称:hinker.Organization.IOrganization,System.DirectoryServices.DirectoryEntry,System.DirectoryServices.DirectoryEntry[],System.DirectoryServices.DirectoryEntry,System.Boolean)


方法说明


跟活动目录同步的时候,调用更新属性方法,以活动目录中用户的属性为准


输入参数


名称


类型


说明


Organization


hinker.Organization.IOrganization


组织结构对象


Root


System.DirectoryServices.DirectoryEntry


AD中的根目录


Entry


System.DirectoryServices.DirectoryEntry[]


AD中的对象


LoginNameIncludeDomain


System.DirectoryServices.DirectoryEntry


登陆名中是否包含域名称,如果包含的话,那么登录名的格式是domain1\user2这样的形式


返回值


方法名称:OThinker.Organization.IOrganization)


方法说明


验证是否合法


输入参数


名称


类型


说明


Organization


OThinker.Organization.IOrganization


组织结构接口,用来获得人员、OU、组等信息


返回值


如果合法则返回SUCCESS,否则返回错误代码

3 类:OThinker.H3.Acl.IBizRuleAclManager

说明:规则定义权限控制器

访问入口:Engine.BizRuleAclManager

示例:


Engine.BizRuleAclManager.Add(new Acl.BizRuleAcl());

方法名称:Check(System.String[],System.String,System.String,OThinker.H3.Acl.AclType)


方法说明


查询指定的用户/组/组织单元中是否存在用户/组/组织单元具有某个规则的某种权限


输入参数


名称


类型


说明


Users


System.String[]


用户/组/组织单元ID数组


BizRuleCode


System.String


业务规则编码


DecisionMatrixCode


System.String


决策表编码


AclType


OThinker.H3.Acl.AclType


权限类型


返回值


如果存在某个用户/组/组织单元具有该权限,则返回true;否则返回false

方法名称:QueryDataTable(System.String[],System.String,System.String)


方法说明


获得当前规则定义的权限控制表


输入参数


名称


类型


说明


Users


System.String[]


用户/组/组织单元ID数组,如果为空,则不将该参数作为搜索条件


BizRuleCode


System.String


业务规则编码


DecisionMatrixCode


System.String


决策表编码


返回值


查询到的表

方法名称:Add(OThinker.H3.Acl.BizRuleAcl)


方法说明


添加一个权限控制单元


输入参数


名称


类型


说明


Acl


OThinker.H3.Acl.BizRuleAcl


权限控制单元


返回值


如果添加成功,则返回true,否则返回false

方法名称:GetBizRuleAcl(System.String)


方法说明


获得规则的权限控制单元


输入参数


名称


类型


说明


AclID


System.String


权限ID


返回值


流程模板权限

方法名称:GetUserAcls(System.String[])


方法说明


获得用户拥有的所有权限


输入参数


名称


类型


说明


Users


System.String[]


用户范围,实际上,这里也可以是组织单元ID或者其他组织类型的ID


返回值


拥有权限的功能权限

方法名称:Update(OThinker.H3.Acl.BizRuleAcl[])


方法说明


更新


输入参数


名称


类型


说明


Acls


OThinker.H3.Acl.BizRuleAcl[]


要更新的权限对象


返回值


方法名称:Delete(System.String)


方法说明


删除


输入参数


名称


类型


说明


AclID


System.String


权限控制单元的ID


返回值


4 类:OThinker.H3.Acl.IFunctionAclManager

说明:功能权限管理

访问入口:Engine.FunctionAclManager

示例:


Engine.FunctionAclManager.Add(new Acl.FunctionAcl());

方法名称:Add(OThinker.H3.Acl.FunctionAcl)


方法说明


添加权限,并不检查功能编码是否存在,即允许添加没有定义过的功能的权限


输入参数


名称


类型


说明


Acl


OThinker.H3.Acl.FunctionAcl


权限对象


返回值


返回添加权限是否成功

方法名称:Delete(System.String)


方法说明


删除权限


输入参数


名称


类型


说明


AclID


System.String


权限对象ID


返回值


方法名称:GetAcl(System.String)


方法说明


获得权限


输入参数


名称


类型


说明


AclID


System.String


权限对象ID


返回值


返回权限对象

方法名称:GetAclTable(System.String)


方法说明


获得用户的权限表


输入参数


名称


类型


说明


UnitId


System.String


组织对象ID


返回值


返回指定组织对象的权限集合

方法名称:GetFunctionNodes


方法说明


获得所有权限的定义


输入参数


名称


类型


说明


返回值

方法名称:GetFunctionNode(System.String)


方法说明


根据菜单节点ID获取功能节点对象


输入参数


名称


类型


说明


NodeId


System.String


菜单节点ID


返回值


返回菜单节点对象

方法名称:GetFunctionNodeByCode(System.String)


方法说明


根据Code获取功能节点


输入参数


名称


类型


说明


Code


System.String


菜单节点编码


返回值


返回菜单节点对象

方法名称:GetFunctionNodesByParentCode(System.String)


方法说明


根据父节点编码获取子节点集合


输入参数


名称


类型


说明


ParentCode


System.String


父节点编码


返回值


返回子菜单节点集合

方法名称:GetFunctionRoot


方法说明


获取所有的根节点


输入参数


名称


类型


说明


返回值


返回所有的根节点

方法名称:GetUserAcls(System.String[])


方法说明


获得用户拥有的所有权限


输入参数


名称


类型


说明


Users


System.String[]


用户ID集合


返回值


返回用户权限的集合

方法名称:RemoveFunctionNodeByCode(System.String,System.Boolean)


方法说明


删除树节点


输入参数


名称


类型


说明


NodeCode


System.String


节点编码


RemoveChildren


System.Boolean


是否移除子节点


返回值


返回节点移除是否成功

方法名称:RemoveFunctionNode(System.String,System.Boolean)


方法说明


删除树节点


输入参数


名称


类型


说明


NodeId


System.String


节点ID


RemoveChildren


System.Boolean


是否移除子节点


返回值


返回节点移除是否成功

方法名称:AddFunctionNode(OThinker.H3.Acl.FunctionNode)


方法说明


添加功能节点


输入参数


名称


类型


说明


FunctionNode


OThinker.H3.Acl.FunctionNode


功能节点对象


返回值


返回添加是否成功

方法名称:UpdateFunctionNode(OThinker.H3.Acl.FunctionNode)


方法说明


更新功能节点


输入参数


名称


类型


说明


FunctionNode


OThinker.H3.Acl.FunctionNode


功能节点对象


返回值


返回添加是否成功

方法名称:Update(OThinker.H3.Acl.FunctionAcl)


方法说明


更新权限


输入参数


名称


类型


说明


Acl


OThinker.H3.Acl.FunctionAcl


菜单权限对象


返回值


方法名称:GetFunctionNodesByNodeType(OThinker.H3.Acl.FunctionNodeType)


方法说明


根据类型获取所有的节点


输入参数


名称


类型


说明


NodeType


OThinker.H3.Acl.FunctionNodeType


节点类型


返回值


返回指定节点类型的集合

方法名称:GetFunctionAclByCode(System.String)


方法说明


获取流程目录的权限列表


输入参数


名称


类型


说明


FunctionCode


System.String


节点编码


返回值


返回指定节点的权限集合

方法名称:LockNodeByUserId(System.String,System.String)


方法说明


锁定节点操作


输入参数


名称


类型


说明


FunctionCode


System.String


节点编码


UserId


System.String


用户ID


返回值


返回锁定节点操作是否成功

方法名称:UnlockNodeByUserId(System.String,System.String)


方法说明


解除锁定节点操作


输入参数


名称


类型


说明


FunctionCode


System.String


节点编码


UserId


System.String


用户ID


返回值


返回解除锁定节点操作是否成功

5 类:OThinker.H3.Acl.ISystemOrgAclManager

说明:系统权限接口

访问入口:this.Engine.SystemOrgAclManager

示例:


this.Engine.SystemOrgAclManager.Add(new Acl.SystemOrgAcl());

方法名称:OThinker.H3.Acl.FunctionAcl


方法说明


构造函数


输入参数


名称


类型


说明


返回值


方法名称:OThinker.H3.Acl.FunctionAcl(System.String,System.String,System.Boolean,System.String)


方法说明


构造函数


输入参数


名称


类型


说明


UserID


System.String


用户ID,实际上,这个也可以使一个OU ID或者其他组织结构的ID


FunctionCode


System.String


功能代码


Run


System.Boolean


是否可以运行


CreatedBy


System.String


创建人


返回值


方法名称:OThinker.H3.Acl.SystemOrgAcl


方法说明


构造函数


输入参数


名称


类型


说明


返回值


方法名称:OThinker.H3.Acl.SystemOrgAcl(System.String,System.String,System.Boolean,System.Boolean,System.Boolean)


方法说明


构造函数


输入参数


名称


类型


说明


UserId


System.String


被授权的用户ID


OrgScope


System.String


管理的组织结构范围


EditOrg


System.Boolean


编辑组织结构权限


View


System.Boolean


查看权限


Admin


System.Boolean


管理权限


返回值


方法名称:Check(System.String[],System.String[],OThinker.H3.Acl.AclType)


方法说明


检查用户是否具有某种权限


输入参数


名称


类型


说明


Users


System.String[]


用户ID数组


AclType


System.String[]


权限类型


返回值


如果具备该权限,则返回true,否则返回false

示例:
Check(new string[]{"114b59cc-b2ce-11dc-8314-0800200c9a66"}, AclType.Admin)

方法名称:GetUserAcls(System.String[])


方法说明


获得用户拥有的所有权限


输入参数


名称


类型


说明


Users


System.String[]


用户/OU/Group/Segment ID数组


返回值


这些组织拥有的系统-组织权限

方法名称:GetAllAcls


方法说明


获取所有权限


输入参数


名称


类型


说明


返回值

方法名称:Add(OThinker.H3.Acl.SystemOrgAcl)


方法说明


添加权限


输入参数


名称


类型


说明


Acl


OThinker.H3.Acl.SystemOrgAcl


系统权限控制单元


返回值


如果添加成功则返回true,否则返回false

方法名称:GetAcl(System.String)


方法说明


获得权限信息


输入参数


名称


类型


说明


AclID


System.String


系统权限控制单元ID


返回值


系统-组织权限对象

方法名称:Update(OThinker.H3.Acl.SystemOrgAcl[])


方法说明


更新权限信息


输入参数


名称


类型


说明


Acls


OThinker.H3.Acl.SystemOrgAcl[]


要更新的系统权限控制单元数组


返回值


方法名称:Delete(System.String)


方法说明


删除权限


输入参数


名称


类型


说明


AclID


System.String


要删除的系统权限控制单元ID


返回值


6 类:OThinker.H3.Acl.ISystemAclManager

说明:系统权限接口

访问入口:this.Engine.SystemAclManager

示例:


this.Engine.SystemAclManager.Add(new Acl.SystemAcl());

方法名称:Check(System.String[],OThinker.H3.Acl.AclType)


方法说明


检查用户是否具有某种权限


输入参数


名称


类型


说明


Users


System.String[]


用户ID数组


AclType


OThinker.H3.Acl.AclType


权限类型


返回值


如果具备权限,则返回true,否则返回false

示例:
Check(new string[]{"114b59cc-b2ce-11dc-8314-0800200c9a66"}, AclType.Admin)

方法名称:Add(OThinker.H3.Acl.SystemAcl)


方法说明


添加权限


输入参数


名称


类型


说明


Acl


OThinker.H3.Acl.SystemAcl


系统权限控制单元


返回值


如果添加成功,则返回true,否则返回false

方法名称:GetSystemAcl(System.String)


方法说明


获得权限信息


输入参数


名称


类型


说明


AclID


System.String


系统权限控制单元ID


返回值


系统权限

方法名称:GetAllAcls


方法说明


获得所有的权限信息


输入参数


名称


类型


说明


返回值


权限信息

方法名称:Update(OThinker.H3.Acl.SystemAcl[])


方法说明


更新权限信息


输入参数


名称


类型


说明


Acls


OThinker.H3.Acl.SystemAcl[]


要更新的系统权限控制单元数组


返回值


方法名称:Delete(System.String)


方法说明


删除权限


输入参数


名称


类型


说明


AclID


System.String


要删除的系统权限控制单元ID


返回值


7 类:OThinker.H3.Acl.IWorkflowAclManager

说明:工作流模板权限控制器

访问入口:this.Engine.WorkflowAclManager

示例:


this.Engine.WorkflowAclManager.Add(new Acl.WorkflowAcl());

方法名称:OThinker.H3.Acl.WorkflowAcl


方法说明


构造函数


输入参数


名称


类型


说明


返回值


方法名称:OThinker.H3.Acl.SystemAcl


方法说明


构造函数


输入参数


名称


类型


说明


返回值


方法名称:OThinker.H3.Acl.BizObjectAcl


方法说明


构造函数


输入参数


名称


类型


说明


返回值


方法名称:GetAclCount(System.String)


方法说明


用于获得已定义的权限的数量


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


返回值


权限控制单元的数量

方法名称:Check(System.String[],System.String,OThinker.H3.Acl.AclType)


方法说明


查询指定的用户/组/组织单元中是否存在用户/组/组织单元具有某个流程模板的某种权限


输入参数


名称


类型


说明


Users


System.String[]


用户/组/组织单元ID数组


WorkflowCode


System.String


流程模板编码


AclType


OThinker.H3.Acl.AclType


权限类型


返回值


如果存在某个用户/组/组织单元具有该权限,则返回true;否则返回false

方法名称:QueryDataTable(System.String[],System.String)


方法说明


获得当前工作流模板的权限控制表


输入参数


名称


类型


说明


Users


System.String[]


用户/组/组织单元ID数组,如果为空,则不将该参数作为搜索条件


WorkflowCode


System.String


流程模板编码,如果为空,则不将该参数作为搜索条件


返回值


查询到的表

方法名称:GetWorkflowAcls(System.String)


方法说明


获得一个流程模板的全部权限配置


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码,如果为空,则不将该参数作为搜索条件


返回值


全部的权限配置

方法名称:Add(OThinker.H3.Acl.WorkflowAcl)


方法说明


添加一个权限控制单元


输入参数


名称


类型


说明


Acl


OThinker.H3.Acl.WorkflowAcl


权限控制单元


返回值


如果添加成功,则返回true,否则返回false

方法名称:GetWorkflowAcl(System.String)


方法说明


获得工作流模板的权限控制单元


输入参数


名称


类型


说明


AclID


System.String


权限ID


返回值


流程模板权限

方法名称:Update(OThinker.H3.Acl.WorkflowAcl[])


方法说明


更新


输入参数


名称


类型


说明


Acls


OThinker.H3.Acl.WorkflowAcl[]


要更新的权限对象


返回值


方法名称:Delete(System.String)


方法说明


删除


输入参数


名称


类型


说明


AclID


System.String


权限控制单元的ID


返回值


方法名称:RemoveByWorkflow(System.String)


方法说明


删除流程模板


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


返回值


方法名称:GetUserAcls(System.String[])


方法说明


获得用户拥有的所有权限


输入参数


名称


类型


说明


Users


System.String[]


返回值

8 类:OThinker.H3.Apps.IAppNavigationManager

说明:应用程序管理

访问入口:this.Engine.AppNavigationManager

示例:


this.Engine.AppNavigationManager.AddApp(new Apps.AppNavigation());

方法名称:

OThinker.H3.BizBus.Transaction.DbExecutionContext(System.String,OThinker.Data.Database.ICommand)


方法说明


新建的时候构造函数


输入参数


名称


类型


说明


DbCode


System.String


数据库编号


DbCommand


OThinker.Data.Database.ICommand


数据库命令


返回值


方法名称:OThinker.H3.BizBus.Transaction.TransactionContext(System.String)


方法说明


事务构造函数


输入参数


名称


类型


说明


Creator


System.String


返回值


方法名称:OThinker.H3.BizBus.Transaction.TransactionExecution(System.String,System.String,System.String,OThinker.H3.BizBus.BizService.BizStructure,OThinker.H3.BizBus.BizService.BizStructure)


方法说明


新建事务


输入参数


名称


类型


说明


UserId


System.String


用户的ID


BizServiceCode


System.String


业务服务的编码


MethodName


System.String


调用的方法


Params


OThinker.H3.BizBus.BizService.BizStructure


调用的参数


ReturnObject


OThinker.H3.BizBus.BizService.BizStructure


调用的返回值


返回值


方法名称:GetApp(System.String)


方法说明


获得应用程序定义


输入参数


名称


类型


说明


AppCode


System.String


应用程序编码


返回值


应用程序定义

方法名称:GetAllApps


方法说明


获得所有应用程序定义


输入参数


名称


类型


说明


返回值


返回应用程序对象集合

方法名称:AddApp(OThinker.H3.Apps.AppNavigation)


方法说明


添加应用程序: 添加应用时需要同时初始化FunctionNode,请改用AppPackageManager.AddApp


输入参数


名称


类型


说明


App


OThinker.H3.Apps.AppNavigation


应用程序对象


返回值


返回天津是否成功

方法名称:RemoveApp(System.String)


方法说明


移除应用程序: 移除应用时需要同时删除FunctionNode及其子菜单,请改用AppPackageManager.RemoveApp


输入参数


名称


类型


说明


AppCode


System.String


应用程序编码


返回值


方法名称:UpdateApp(OThinker.H3.Apps.AppNavigation)


方法说明


更新应用程序


输入参数


名称


类型


说明


App


OThinker.H3.Apps.AppNavigation


应用程序对象


返回值


返回更新应用程序对象是否成功

9 类:OThinker.H3.BizBus.IBizBus

说明:业务总线接口

访问入口:this.Engine.BizBus

示例:


this.Engine.BizBus.AddBizService(new BizBus.BizService.BizService(), false);

方法名称:OThinker.H3.Analytics.AnalyticalQuery(OThinker.H3.Configs.EngineConfig)


方法说明


构造函数


输入参数


名称


类型


说明


返回值


方法名称:OThinker.H3.Analytics.AnalyticalQuery(OThinker.Data.Database.DatabaseType,System.String)


方法说明


构造函数


输入参数


名称


类型


说明


DBType


OThinker.Data.Database.DatabaseType


DBConnString


System.String


返回值


方法名称:OThinker.H3.Client.AppNavigationManagerClient(OThinker.Clusterware.LogicUnitConnectionPool)


方法说明


构造函数


输入参数


名称


类型


说明


ConnectionPool


OThinker.Clusterware.LogicUnitConnectionPool


返回值


方法名称:RegisterAssembly(System.String,System.Byte[],System.Boolean)


方法说明


注册一个Assembly


输入参数


名称


类型


说明


FileName


System.String


文件名


Content


System.Byte[]


文件内容


Overwrite


System.Boolean


是否覆盖以前的文件


返回值


如果成功则返回true;否则返回false

方法名称:GetBizAdapterAttributes(OThinker.H3.BizBus.BizAdapters.AdapterType)


方法说明


获得系统中所有的Adapter的描述


输入参数


名称


类型


说明


AdapterType


OThinker.H3.BizBus.BizAdapters.AdapterType


适配器类型


返回值


返回系统加载的所有适配器描述

方法名称:GetBizAdapterAttribute(System.String)


方法说明


获得系统中所有的Adapter的描述


输入参数


名称


类型


说明


返回值


适配器的描述

方法名称:GetBizServices


方法说明


获得系统中所有的业务服务


输入参数


名称


类型


说明


返回值


类的全名称

方法名称:GetBizServicesByAdapter(System.String)


方法说明


获得系统中所有的业务服务


输入参数


名称


类型


说明


返回值


类的全名称

方法名称:GetBizService(System.String)


方法说明


获得系统中所有的业务服务


输入参数


名称


类型


说明


BizServiceCode


System.String


业务服务编码


返回值


实例的配置

方法名称:RemoveBizService(System.String)


方法说明


删除一个业务服务的实例


输入参数


名称


类型


说明


BizServiceCode


System.String


业务服务编码


返回值


如果删除成功,则返回true,否则返回false

方法名称:AddBizService(OThinker.H3.BizBus.BizService.BizService,System.Boolean)


方法说明


更新一个业务服务的设置


输入参数


名称


类型


说明


Service


OThinker.H3.BizBus.BizService.BizService


业务服务的相关配置


Validate


System.Boolean


在保存前是否调用验证的函数来做验证


返回值


如果更新成功,那么返回true;如果要更新的信息不合法,那么,返回false

方法名称:UpdateBizService(OThinker.H3.BizBus.BizService.BizService,System.Boolean)


方法说明


更新一个业务服务的设置


输入参数


名称


类型


说明


Service


OThinker.H3.BizBus.BizService.BizService


业务服务的相关配置


Validate


System.Boolean


在保存前是否调用验证的函数来做验证


返回值


如果更新成功,那么返回true;如果要更新的信息不合法,那么,返回false

方法名称:GetBizServicesByFolderCode(System.String)


方法说明


根据目录获取业务服务


输入参数


名称


类型


说明


FolderCode


System.String


目录编码


返回值

方法名称:QueryInvokingLog(System.DateTime,System.DateTime)


方法说明


查询调用日志


输入参数


名称


类型


说明


From


System.DateTime


开始日期


To


System.DateTime


结束日期


返回值


调用日志

方法名称:GetInvokingLog(System.String)


方法说明


获得某个调用日志


输入参数


名称


类型


说明


LogId


System.String


日志的ID


返回值


调用日志

方法名称:GetMethods(System.String)


方法说明


获得所有可以调用的方法


输入参数


名称


类型


说明


BizServiceCode


System.String


业务服务的编码


返回值


可调用的方法的名称和Schema

方法名称:GetMethod(System.String,System.String)


方法说明


获得所有可以调用的方法


输入参数


名称


类型


说明


BizServiceCode


System.String


业务服务的编码


MethodName


System.String


方法的名称


返回值


可调用的方法的名称和Schema

方法名称:Invoke(OThinker.H3.BizBus.BizService.BizServiceInvokingContext)


方法说明


以事务的方式调用一个方法


输入参数


名称


类型


说明


InvokingContext


OThinker.H3.BizBus.BizService.BizServiceInvokingContext


调用的接口的上下方


返回值


自描述的对象。注意:对于同一个方法,无论方法的参数是什么,返回的对象的Schema必须是同一个,这里是不允许重构的,如果需要重构,则需要使用另外的方法名称

方法名称:GetFilterSchemas(System.String)


方法说明


获得支持的搜索的模式


输入参数


名称


类型


说明


BizServiceCode


System.String


业务服务的编码


返回值


支持的搜索的模式

方法名称:GetFilterSchema(System.String,System.String)


方法说明


获得搜索的模式


输入参数


名称


类型


说明


BizServiceCode


System.String


业务服务的编码


FilterCode


System.String


过滤条件的编码


返回值


搜索模式

方法名称:GetList(System.String,System.String,OThinker.H3.BizBus.Filter.Filter,[email protected])


方法说明


查询对象


输入参数


名称


类型


说明


BizServiceCode


System.String


业务服务的编码


FilterCode


System.String


搜索的编号


Filter


OThinker.H3.BizBus.Filter.Filter


搜索条件


Count


[email protected]


如果做了分页,就会要求返回总数


返回值


符合条件的记录

方法名称:GetAccountCategories


方法说明


获得所有的账户映射分类


输入参数


名称


类型


说明


返回值


所有的账户映射分类

方法名称:GetAccountCategory(System.String)


方法说明


获得账户映射分类


输入参数


名称


类型


说明


CategoryCode


System.String


分类编码


返回值


业务账户分类

方法名称:AddAccountCategory(OThinker.H3.BizBus.BizService.BizAccountCategory)


方法说明


添加账户映射分类


输入参数


名称


类型


说明


Category


OThinker.H3.BizBus.BizService.BizAccountCategory


业务账户分类


返回值


如果添加成功,则返回true;否则返回false。

方法名称:UpdateAccountCategory(OThinker.H3.BizBus.BizService.BizAccountCategory)


方法说明


更新账户分类映射


输入参数


名称


类型


说明


Category


OThinker.H3.BizBus.BizService.BizAccountCategory


业务账户分类


返回值


如果更新成功则返回true,否则返回false

方法名称:RemoveAccountCategory(System.String)


方法说明


删除账户映射分类


输入参数


名称


类型


说明


CategoryCode


System.String


业务账户分类编码


返回值


方法名称:GetAccountMappings(System.String)


方法说明


获得某个账户映射分类下的所有账户映射


输入参数


名称


类型


说明


CategoryCode


System.String


账户映射分类的编码


返回值


账户映射

方法名称:GetAccountMapping(System.String)


方法说明


获得账户映射


输入参数


名称


类型


说明


MappingId


System.String


账户映射的ID


返回值


账户映射

方法名称:AddAccountMapping(OThinker.H3.BizBus.BizService.BizAccountMapping)


方法说明


添加账户映射


输入参数


名称


类型


说明


Mapping


OThinker.H3.BizBus.BizService.BizAccountMapping


账户映射定义


返回值


如果添加成功则返回true;否则返回false

方法名称:RemoveAccountMapping(System.String)


方法说明


删除账户映射


输入参数


名称


类型


说明


MappingId


System.String


账户映射ID


返回值


方法名称:UpdateAccountMapping(OThinker.H3.BizBus.BizService.BizAccountMapping)


方法说明


更新账户映射


输入参数


名称


类型


说明


Mapping


OThinker.H3.BizBus.BizService.BizAccountMapping


账户映射


返回值


方法名称:GetAccountMappingByUnitId(System.String,System.String)


方法说明


根据源组织ID获得账户映射


输入参数


名称


类型


说明


AccountCategory


System.String


账户映射的类型


UnitId


System.String


组织ID


返回值


如果存在账户映射则返回账户映射,否则返回Null

方法名称:AddBizRule(OThinker.H3.BizBus.BizRule.BizRuleTable,System.String)


方法说明


添加一个业务对象模式。添加前需要先检查是否模式编码是否存在,该检查是不区分大小写的,如果不存在则添加


输入参数


名称


类型


说明


Rule


OThinker.H3.BizBus.BizRule.BizRuleTable


业务对象模式


返回值


如果添加成功则返回true;否则返回false

方法名称:GetBizRule(System.String)


方法说明


根据模式编码获得业务对象模式


输入参数


名称


类型


说明


RuleCode


System.String


业务对象模式编码,不区分大小写


返回值


业务对象模式

方法名称:UpdateBizRule(OThinker.H3.BizBus.BizRule.BizRuleTable)


方法说明


更新业务对象模式


输入参数


名称


类型


说明


Rule


OThinker.H3.BizBus.BizRule.BizRuleTable


业务对象模式


返回值


如果更新成功,则返回true;否则返回false

方法名称:RemoveBizRule(System.String)


方法说明


删除一个业务对象模式,不区分大小写


输入参数


名称


类型


说明


RuleCode


System.String


业务对象模式编码


返回值


如果删除成功,则返回true;否则返回false

方法名称:ValidateBizRule(System.String)


方法说明


验证业务规则的合法性


输入参数


名称


类型


说明


RuleCode


System.String


业务规则的编码


返回值


验证结果

方法名称:WriteLog(System.String)


方法说明


写入日志


输入参数


名称


类型


说明


Log


System.String


日志


返回值


10 类:OThinker.H3.Sheet.IBizSheetManager

说明:表单对象管理接口

访问入口:this.Engine.BizSheetManager

示例:


this.Engine.BizSheetManager.AddBizSheet(new Sheet.BizSheet());

方法名称:OThinker.H3.Client.BizSheetManagerClient(OThinker.Clusterware.LogicUnitConnectionPool)


方法说明


构造函数


输入参数


名称


类型


说明


ConnectionPool


OThinker.Clusterware.LogicUnitConnectionPool


返回值


方法名称:GetBizSheetByID(System.String)


方法说明


根据表单ID获取表单对象


输入参数


名称


类型


说明


ObjectId


System.String


表单ID


返回值


返回表单对象

方法名称:GetBizSheetByCode(System.String)


方法说明


根据表单编码获取表单对象


输入参数


名称


类型


说明


SheetCode


System.String


表单编码


返回值

方法名称:GetBizSheetBySchemaCode(System.String)


方法说明


根据数据模型编码获取表单集合


输入参数


名称


类型


说明


SchemaCode


System.String


数据模型编码


返回值


表单对象的集合

方法名称:AddBizSheet(OThinker.H3.Sheet.BizSheet)


方法说明


添加一个表单


输入参数


名称


类型


说明


BizSheet


OThinker.H3.Sheet.BizSheet


表单对象


返回值


返回操作是否成功

方法名称:DeleteBizSheet(System.String)


方法说明


删除一个表单


输入参数


名称


类型


说明


SheetCode


System.String


表单编码


返回值


返回操作是否成功

方法名称:RemoveSheetBySchemaCode(System.String)


方法说明


根据数据模型编码删除所有表单


输入参数


名称


类型


说明


SchemaCode


System.String


数据模型编码


返回值


返回操作是否成功

方法名称:UpdateBizSheet(OThinker.H3.Sheet.BizSheet)


方法说明


更新一个表单


输入参数


名称


类型


说明


BizSheet


OThinker.H3.Sheet.BizSheet


表单对象


返回值


返回操作是否成功

11 类:OThinker.H3.SNS.ISNSManager

说明:社交管理器

访问入口:this.Engine.SNSManager

示例:


this.Engine.SNSManager.AddPost(new SNS.SNSPost(),string.Empty);

方法名称:SetRelationship(OThinker.H3.SNS.SNSRelationship)


方法说明


设置业务对象的关注关系


输入参数


名称


类型


说明


Relationship


OThinker.H3.SNS.SNSRelationship


业务对象的关注关系


返回值


方法名称:GetRelationships(System.String,System.String[])


方法说明


获得业务对象的关注关系


输入参数


名称


类型


说明


UserId


System.String


用户ID


SchemaCodes


System.String[]


业务对象模式编码


返回值


业务对象模式关注关系

方法名称:AddComment(System.String,System.String,System.String,System.String,System.String,System.String,System.String)


方法说明


添加对象的评论


输入参数


名称


类型


说明


ReplyTo


System.String


要回复的评论的ID


SchemaCode


System.String


业务对象模式编码


BizObjectId


System.String


业务对象ID


BizObjectId


System.String


关联对象ID,如workitemid


UserId


System.String


用户ID


Text


System.String


评论的内容


ObjectID


System.String


前端传递过来的评论唯一ID


返回值


方法名称:AddLike(System.String,System.String,System.String,System.String,System.String,System.String)


方法说明


点赞


输入参数


名称


类型


说明


ReplyTo


System.String


要回复的评论的ID


SchemaCode


System.String


业务对象模式编码


BizObjectId


System.String


业务对象ID


BizObjectId


System.String


关联对象ID,如workitemid


UserId


System.String


用户ID


ObjectID


System.String


前端传递过来的评论唯一ID


返回值


方法名称:DeleteComment(System.String)


方法说明


删除评论


输入参数


名称


类型


说明


CommentId


System.String


评论的ID


返回值


方法名称:AddFeedEvent(OThinker.H3.SNS.FeedEvent)


方法说明


添加新闻事件


输入参数


名称


类型


说明


Event


OThinker.H3.SNS.FeedEvent


新闻事件


返回值


方法名称:AddToFavorite(System.String,System.String)


方法说明


将新闻添加到收藏中


输入参数


名称


类型


说明


UserId


System.String


用户ID


FeedId


System.String


新闻ID


返回值


方法名称:RemoveFromFavorite(System.String)


方法说明


删除收藏的新闻


输入参数


名称


类型


说明


FavoriteFeedId


System.String


新闻的ID


返回值


方法名称:SetSharingItem(System.String,OThinker.H3.SNS.SNSTargetType,System.String,System.String,System.String,System.String,System.Boolean,OThinker.H3.SNS.SNSSharingItemPermissionType,System.String[],System.String[],System.String)


方法说明


将某个对象分享给内部/外部用户


输入参数


名称


类型


说明


Sender


System.String


发送分享的人


TargetType


OThinker.H3.SNS.SNSTargetType


要分享的对象的类型


SchemaCode


System.String


要分享的对象的业务对象模式编码


BizObjectId


System.String


要分享的业务对象的ID


TargetId


System.String


要分享的目标对象的ID,如果是WorkItem,则是WorkItemId


TargetName


System.String


要分享的目标对象的名称


IsPublic


System.Boolean


是否是公开的,如果是公开的话,那么意味着只要用户知道SharingItemId,即可打开相应的表单。如果要发送给外部用户,那么必须是IsPublic=true的


Permission


OThinker.H3.SNS.SNSSharingItemPermissionType


要分享的对象的权限


InternalReceivers


System.String[]


内部接收分享的用户


ExternalReceivers


System.String[]


外部接收分享的用户,格式是每个用户的邮箱


Text


System.String


要分享的内容的描述,如果外部接收人员不为空的,则需要填写该字段


返回值


方法名称:GetSharingItem(System.String)


方法说明


获得分享的设置


输入参数


名称


类型


说明


SharingItemId


System.String


分享设置的ID


返回值


分享的详细信息

方法名称:GetSharingItemBySender(System.String,System.String)


方法说明


根据创建者获得分享设置的信息


输入参数


名称


类型


说明


TargetId


System.String


分享的对象的ID


Sender


System.String


分享的发送者


返回值


分享的设置信息

方法名称:CheckSharingItemForInternal(System.String,System.String)


方法说明


验证分享的权限


输入参数


名称


类型


说明


TargetId


System.String


分享的目标对象的ID


Receiver


System.String


接收者的ID


返回值


返回接收者对于该分享项目的权限

方法名称:GetSharingItemPermission(System.String,System.String,[email protected])


方法说明


根据业务对象ID获得用户对于这个分享项目的权限,这个验证关系主要通过登录用户自身的权限,这个接口主要是提供给全文搜索的时候使用的,全文搜索的时候,搜索出来相关的业务对象,然后根据业务对象打开相应的有权限的业务对象表单或者工作项表单


输入参数


名称


类型


说明


BizObjectId


System.String


业务对象的ID


Receiver


System.String


接受者


WorkItemId


[email protected]


分享一个业务对象有可能是通过BizObjectId,也有可能是通过WorkItemId的,如果是通过WorkItemId的,则找到其中一个WorkItemId,并返回回来


返回值


返回接收者对于该分享项目的权限

方法名称:CheckSharingItemForExternal(System.String,System.String,System.String[]@)


方法说明


根据业务对象ID/WorkItemId获得用户对于这个分享项目的权限,这个验证关系主要通过SharingItemId的匹配,这里要求SharingItemId必须匹配,SharingItemId相当于是一个秘钥


输入参数


名称


类型


说明


SharingItemId


System.String


分享的设置的ID,这个ID相当于是一个秘钥,必须匹配才能返回权限,否则返回NoAccess


TargetId


System.String


分享的对象的ID


Receivers


System.String[]@


返回出外部的接收者


返回值


返回接收者对于该分享项目的权限

方法名称:GetSharingItemReceivers(System.String)


方法说明


根据业务对象ID,或者所有用权限访问的内部用户的ID


输入参数


名称


类型


说明


BizObjectId


System.String


业务对象ID


返回值


分享的接收者

方法名称:DeleteSharingItem(System.String)


方法说明


删除一个分享设置


输入参数


名称


类型


说明


SharingItemId


System.String


分享设置


返回值


方法名称:SetFeedState(System.String,System.String,OThinker.H3.SNS.SNSFeedState,System.DateTime)


方法说明


设置动态的状态,可以把一个动态标记为完成或者未完成


输入参数


名称


类型


说明


UserId


System.String


FeedId


System.String


State


OThinker.H3.SNS.SNSFeedState


Deadline


System.DateTime


返回值


12 类:OThinker.H3.Site.ISiteManager

说明:门户站点管理

访问入口:this.Engine.SiteManager

示例:


this.Engine.SiteManager.AddPage(new Site.SitePage());

方法名称:AddPage(OThinker.H3.Site.SitePage)


方法说明


添加门户页面实例


输入参数


名称


类型


说明


Page


OThinker.H3.Site.SitePage


页面实例


返回值


添加不成功(冲突或其他原因)返回false

方法名称:UpdatePage(OThinker.H3.Site.SitePage)


方法说明


更新页面实例


输入参数


名称


类型


说明


Page


OThinker.H3.Site.SitePage


页面实例


返回值


更新不成功(实例不存在、冲突或其他原因),则返回false

方法名称:DeletePage(OThinker.H3.Site.SitePage)


方法说明


删除页面实例


输入参数


名称


类型


说明


Page


OThinker.H3.Site.SitePage


页面实例


返回值


删除不成功,则返回false

方法名称:DeletePageById(System.String)


方法说明


根据页面实例Id删除


输入参数


名称


类型


说明


Id


System.String


页面实例唯一值属性值


返回值


删除不成功,则返回false

方法名称:GetPage(System.String)


方法说明


根据页面实例唯一值属性列值查询页面实例


输入参数


名称


类型


说明


Id


System.String


页面实例唯一值属性值


返回值


如果指定属性值的页面实例不存在,则返回false

方法名称:GetPagesByOrg(System.String)


方法说明


根据组织结构对查找页面实例


输入参数


名称


类型


说明


OrgId


System.String


组织结构ID


返回值


返回页面类实例数组,如果指定键值对不存在,则返回空数组

方法名称:GetAllPages


方法说明


查询所有页面类实例


输入参数


名称


类型


说明


返回值


返回所有的页面类实例,返回类型为实例数组

方法名称:AddPageTemplate(OThinker.H3.Site.SitePageTemplate)


方法说明


添加页面模板类实例


输入参数


名称


类型


说明


PageTemplate


OThinker.H3.Site.SitePageTemplate


页面模板实例


返回值


添加不成功(冲突或其他原因)返回false

方法名称:UpdatePageTemplate(OThinker.H3.Site.SitePageTemplate)


方法说明


更新页面模板实例


输入参数


名称


类型


说明


PageTemplate


OThinker.H3.Site.SitePageTemplate


页面模板实例


返回值


更新不成功(实例不存在、冲突或其他原因),则返回false

方法名称:RemovePageTemplate(OThinker.H3.Site.SitePageTemplate)


方法说明


删除页面模板实例


输入参数


名称


类型


说明


PageTemplate


OThinker.H3.Site.SitePageTemplate


页面模板实例


返回值


删除不成功,则返回false

方法名称:RemovePageTemplateById(System.String)


方法说明


根据页面模板实例Id删除


输入参数


名称


类型


说明


Id


System.String


页面模板实例唯一值属性值


返回值


删除不成功,则返回false

方法名称:GetPageTemplate(System.String)


方法说明


根据页面模板实例唯一值属性列值查询页面实例


输入参数


名称


类型


说明


Id


System.String


页面模板实例唯一值属性值


返回值


如果指定属性值的页面实例不存在,则返回false

方法名称:GetAllPageTemplates


方法说明


查询所有页面类实例


输入参数


名称


类型


说明


返回值


返回所有的页面类实例,返回类型为实例数组

方法名称:AddWebPartInst(OThinker.H3.Site.SiteWebPartInstance)


方法说明


添加门户部件实例


输入参数


名称


类型


说明


WebPartInstance


OThinker.H3.Site.SiteWebPartInstance


部件实例


返回值


添加不成功(冲突或其他原因)返回false

方法名称:UpdateWebPartInst(OThinker.H3.Site.SiteWebPartInstance)


方法说明


更新部件实例


输入参数


名称


类型


说明


WebPartInstance


OThinker.H3.Site.SiteWebPartInstance


部件实例


返回值


更新不成功(实例不存在、冲突或其他原因),则返回false

方法名称:DeleteWebPartInst(OThinker.H3.Site.SiteWebPartInstance)


方法说明


删除部件实例


输入参数


名称


类型


说明


WebPartInstance


OThinker.H3.Site.SiteWebPartInstance


部件实例


返回值


删除不成功,则返回false

方法名称:DeleteWebPartInstById(System.String)


方法说明


根据部件实例Id删除


输入参数


名称


类型


说明


Id


System.String


部件实例唯一值属性值


返回值


删除不成功,则返回false

方法名称:GetWebPartInst(System.String)


方法说明


根据部件实例唯一值属性列值查询部件模板实例


输入参数


名称


类型


说明


Id


System.String


部件实例唯一值属性值


返回值


如果指定属性值的部件实例不存在,则返回false

方法名称:GetWebPartInstancesByPage(System.String)


方法说明


根据关键字键值对查找部件实例


输入参数


名称


类型


说明


Key


System.String


键名称


Value


键值


返回值


返回部件实例数组,如果指定键值对不存在,则返回空数组

方法名称:GetAllWebPartInsts


方法说明


查询所有部件实例


输入参数


名称


类型


说明


返回值


返回所有的部件实例,返回类型为实例数组

方法名称:AddWebPart(OThinker.H3.Site.SiteWebPart)


方法说明


添加门户部件模板实例


输入参数


名称


类型


说明


WebPart


OThinker.H3.Site.SiteWebPart


部件模板实例


返回值


添加不成功(冲突或其他原因)返回false

方法名称:UpdateWebPart(OThinker.H3.Site.SiteWebPart)


方法说明


更新部件模板实例


输入参数


名称


类型


说明


WebPart


OThinker.H3.Site.SiteWebPart


部件模板实例


返回值


更新不成功(实例不存在、冲突或其他原因),则返回false

方法名称:DeleteWebPart(OThinker.H3.Site.SiteWebPart)


方法说明


删除部件模板实例


输入参数


名称


类型


说明


WebPart


OThinker.H3.Site.SiteWebPart


部件模板实例


返回值


删除不成功,则返回false

方法名称:DeleteWebPartById(System.String)


方法说明


根据部件模板实例Id删除


输入参数


名称


类型


说明


Id


System.String


部件模板实例唯一值属性值


返回值


删除不成功,则返回false

方法名称:GetWebPart(System.String)


方法说明


根据部件模板实例唯一值属性列值查询部件模板实例


输入参数


名称


类型


说明


Id


System.String


部件模板实例唯一值属性值


返回值


如果指定属性值的部件模板实例不存在,则返回false

方法名称:GetAllWebParts


方法说明


查询所有部件模板实例


输入参数


名称


类型


说明


返回值


返回所有的部件模板实例,返回类型为实例数组

方法名称:AddWebPartPublicAttr(OThinker.H3.Site.SiteWebPartPublicAttribute)


方法说明


添加门户部件公有属性实例


输入参数


名称


类型


说明


WebPartPublicAttribute


OThinker.H3.Site.SiteWebPartPublicAttribute


部件实例公有属性实例


返回值


添加不成功(冲突或其他原因)返回false

方法名称:UpdateWebPartPublicAttr(OThinker.H3.Site.SiteWebPartPublicAttribute)


方法说明


更新部件实例公有属性实例


输入参数


名称


类型


说明


WebPartPublicAttribute


OThinker.H3.Site.SiteWebPartPublicAttribute


部件实例公有属性实例


返回值


更新不成功(实例不存在、冲突或其他原因),则返回false

方法名称:DeleteWebPartPublicAttr(OThinker.H3.Site.SiteWebPartPublicAttribute)


方法说明


删除部件实例公有属性实例


输入参数


名称


类型


说明


WebPartPublicAttribute


OThinker.H3.Site.SiteWebPartPublicAttribute


部件实例公有属性实例


返回值


删除不成功,则返回false

方法名称:DeleteWebPartPublicAttrById(System.String)


方法说明


根据部件实例公有属性实例Id删除


输入参数


名称


类型


说明


Id


System.String


部件实例公有属性实例唯一值属性值


返回值


删除不成功,则返回false

方法名称:GetWebPartPublicAttr(System.String)


方法说明


根据部件实例公有属性实例唯一值属性列值查询部件模板实例


输入参数


名称


类型


说明


Id


System.String


部件实例公有属性实例唯一值属性值


返回值


如果指定属性值的部件实例公有属性实例不存在,则返回false

方法名称:GetAllWebPartPublicAttrs


方法说明


查询所有部件实例公有属性实例


输入参数


名称


类型


说明


返回值


返回所有的部件实例公有属性实例,返回类型为实例数组

13 类:OThinker.H3.Apps.IAppPackageManager

说明:流程包管理对象

访问入口:this.Engine.AppPackageManager

示例:


this.Engine.AppPackageManager.AddAppPackage(new Acl.FunctionNode(), DataModel.StorageType.DataList);

方法名称:AddAppPackage(OThinker.H3.Acl.FunctionNode,OThinker.H3.DataModel.StorageType)


方法说明


添加流程包


输入参数


名称


类型


说明


FunctionNode


OThinker.H3.Acl.FunctionNode


功能节点对象


Type


OThinker.H3.DataModel.StorageType


存储类型(本地存储/外部数据)


返回值


返回添加应用包是否成功

方法名称:DeleteAppPackage(OThinker.H3.Acl.FunctionNode)


方法说明


删除流程包


输入参数


名称


类型


说明


FunctionNode


OThinker.H3.Acl.FunctionNode


功能节点对象


返回值


方法名称:ImportAppPackage(System.String,System.String,System.String,System.String,OThinker.H3.DataModel.BizObjectSchema,OThinker.H3.DataModel.BizListenerPolicy,System.Collections.Generic.List{OThinker.H3.DataModel.BizQuery},System.Collections.Generic.List{OThinker.H3.DataModel.ScheduleInvoker},System.Collections.Generic.List{OThinker.H3.Sheet.BizSheet},System.Collections.Generic.List{OThinker.H3.WorkflowTemplate.DraftWorkflowTemplate},System.Collections.Generic.Dictionary{System.String,System.String},System.Boolean,[email protected])


方法说明


流程包导入


输入参数


名称


类型


说明


UserID


System.String


操作用户ID


ParentCode


System.String


父功能节点编码


PackageCode


System.String


应用包编码


PackageName


System.String


应用包名称


Schema


OThinker.H3.DataModel.BizObjectSchema


数据模型对象


BizListenerPolicy


OThinker.H3.DataModel.BizListenerPolicy


监听


BizQueryList


List{OThinker.H3.DataModel.BizQuery}


查询集合


ScheduleInvokerList


List{OThinker.H3.DataModel.ScheduleInvoker}


定时作业集合


BizSheetList


List{OThinker.H3.Sheet.BizSheet}


表单对象集合


WorkflowTemplateList


List{OThinker.H3.WorkflowTemplate.DraftWorkflowTemplate}


流程对象集合


WorkflowNames


System.Collections.Generic.Dictionary{System.String


流程名称集合(编码,名称)


Overwrite


System.String}


是否覆盖模式


ResultStr


System.Boolean


返回结果


返回值


返回流程包导入是否成功

方法名称:UpdateDraftAppPackage(OThinker.H3.DataModel.BizObjectSchema,OThinker.H3.Sheet.BizSheet)


方法说明


更新草稿的表单设计


输入参数


名称


类型


说明


Schema


OThinker.H3.DataModel.BizObjectSchema


数据模型对象


BizSheet


OThinker.H3.Sheet.BizSheet


表单对象


返回值


返回更新是否成功

14 类:OThinker.H3.WorkflowTemplate.IWorkflowConfigManager

说明:流程模板管理器,用于管理设计中的流程模板信息

访问入口:this.Engine.WorkflowConfigManager

示例:


this.Engine.WorkflowConfigManager.AddFavoriteWorkflow("","");

方法名称:

OThinker.H3.Client.WorkflowConfigManagerClient(OThinker.Clusterware.LogicUnitConnectionPool)


方法说明


输入参数


名称


类型


说明


ConnectionPool


OThinker.Clusterware.LogicUnitConnectionPool


返回值


方法名称:GetAllActivityConfigs


方法说明


获取所有活动模板


输入参数


名称


类型


说明


返回值

方法名称:SaveActivityTemplate(OThinker.H3.WorkflowTemplate.Activity)


方法说明


保存活动模板


输入参数


名称


类型


说明


Activity


OThinker.H3.WorkflowTemplate.Activity


返回值

方法名称:GetFavoriteWorkflowCodes(System.String)


方法说明


获取用户的常用流程列表


输入参数


名称


类型


说明


UserID


System.String


用户ID


返回值


用户的常用流程

方法名称:AddFavoriteWorkflow(System.String,System.String)


方法说明


添加常用流程


输入参数


名称


类型


说明


UserID


System.String


WorkflowCode


System.String


返回值


方法名称:DeleteFavoriteWorkflow(System.String,System.String)


方法说明


删除常用流程


输入参数


名称


类型


说明


UserID


System.String


WorkflowCode


System.String


返回值


15 类:OThinker.H3.Notification.IWeChatAdapter

说明:用于管理通知的接口

访问入口:this.Engine.WeChatAdapter

示例:


this.Engine.WeChatAdapter.Reload()

方法名称:SyncOrgToWeChat


方法说明


将组织同步到微信


输入参数


名称


类型


说明


返回值


组织同步是否成功

方法名称:SendNewsMessage(OThinker.H3.WeChat.WeChatNews)


方法说明


发送新闻类消息


输入参数


名称


类型


说明


news


OThinker.H3.WeChat.WeChatNews


微信消息对象


返回值


方法名称:GetUserCode(System.String)


方法说明


根据微信返回编码获取用户的帐号(流程中心)


输入参数


名称


类型


说明


WeChatCode


System.String


微信编码


返回值


返回用户登录帐号

方法名称:GetAttachmentWeChatViewUrl(System.String,System.String,System.String,System.String)


方法说明


获取文件在微信中查看地址


输入参数


名称


类型


说明


返回值

方法名称:Reload


方法说明


重置微信状态


输入参数


名称


类型


说明


返回值


16 类:OThinker.H3.Instance.IHeapDataManager

说明:用于管理堆数据,堆数据跟实例数据有如下的不一样: 1. 堆数据没有定义在流程数据中,是显性地通过创建来创建的 2. 堆数据没有Editable和Visible属性,只有值属性 3. 堆数据允许选择创建在Memory中,也允许创建在数据库中,如果创建在内存中,那么当系统重新启动的时候将不会进行记录 4. 实例数据是跟流程的应用逻辑联系比较紧密的数据,堆数据是在运行过程中进行辅助的数据 注意:堆数据的值必须是System.Serializable的

访问入口:this.Engine.HeapDataManager

示例:


this.Engine.HeapDataManager.GetItemValue("流程实例ID", "数据项名称");

方法名称:OThinker.H3.Site.SiteWebPartInstance


方法说明


部件实例


输入参数


名称


类型


说明


返回值


方法名称:OThinker.H3.Site.SiteWebPartInstanceValue


方法说明


构造函数


输入参数


名称


类型


说明


返回值


方法名称:OThinker.H3.WorkflowTemplate.WorkflowNode


方法说明


构造函数


输入参数


名称


类型


说明


返回值


方法名称:OThinker.H3.WorkflowTemplate.WorkflowNode(System.Xml.XmlElement)


方法说明


从XML构造


输入参数


名称


类型


说明


XmlElement


System.Xml.XmlElement


返回值


方法名称:OThinker.H3.WorkflowTemplate.Activity


方法说明


构造函数


输入参数


名称


类型


说明


返回值


方法名称:OThinker.H3.WorkflowTemplate.Activity(System.Xml.XmlElement)


方法说明


从XML构造


输入参数


名称


类型


说明


XmlElement


System.Xml.XmlElement


返回值


方法名称:OThinker.H3.WorkflowTemplate.ClientActivityBase


方法说明


构造函数


输入参数


名称


类型


说明


返回值


方法名称:OThinker.H3.WorkflowTemplate.ClientActivityBase(System.Xml.XmlElement)


方法说明


从XML构造


输入参数


名称


类型


说明


XmlElement


System.Xml.XmlElement


返回值


方法名称:OThinker.H3.WorkflowTemplate.ClientActivity


方法说明


构造函数


输入参数


名称


类型


说明


返回值


方法名称:OThinker.H3.WorkflowTemplate.ClientActivity(System.Xml.XmlElement)


方法说明


从XML构造


输入参数


名称


类型


说明


XmlElement


System.Xml.XmlElement


返回值


方法名称:OThinker.H3.WorkflowTemplate.ParticipativeActivity


方法说明


构造函数


输入参数


名称


类型


说明


返回值


方法名称:OThinker.H3.WorkflowTemplate.ParticipativeActivity(System.Xml.XmlElement)


方法说明


从XML构造


输入参数


名称


类型


说明


XmlElement


System.Xml.XmlElement


返回值


方法名称:ExistItem(System.String,System.String)


方法说明


检查该属性是否存在


输入参数


名称


类型


说明


InstanceId


System.String


流程实例的ID


ItemName


System.String


项名称


返回值


如果项存在,则返回true,否则返回false

方法名称:GetItemValue(System.String,System.String)


方法说明


获取一个堆数据项的值


输入参数


名称


类型


说明


InstanceId


System.String


流程实例的ID


ItemName


System.String


项名称


返回值


项值

方法名称:SetItemValue(System.String,System.String,System.Object)


方法说明


设置一个堆数据项的值


输入参数


名称


类型


说明


InstanceId


System.String


流程实例的ID


ItemName


System.String


项名称


ItemValue


System.Object


项值


返回值


如果设置成功,则返回0,否则返回错误代码

方法名称:GetAllItemNames(System.String)


方法说明


获得所有的数据项名称


输入参数


名称


类型


说明


InstanceId


System.String


流程实例的ID


返回值


所有堆数据项的名称

方法名称:GetAllItems(System.String)


方法说明


获得所有的数据项


输入参数


名称


类型


说明


InstanceId


System.String


流程实例的ID


返回值


返回的是一个[ItemName, ItemValue]的表

方法名称:RemoveInstance(System.String)


方法说明


根据流程实例ID删除堆数据项的值


输入参数


名称


类型


说明


InstanceId


System.String


流程实例ID


返回值


17 类:OThinker.H3.DataModel.IBizObjectManager

说明:数据模型管理器

访问入口:this.Engine.BizObjectManager

示例:


this.Engine.BizObjectManager.GetBizQuery("查询编码");

方法名称:AddDraftSchema(OThinker.H3.DataModel.BizObjectSchema)


方法说明


添加一个草稿业务对象模式。添加前需要先检查是否模式编码是否存在,该检查是不区分大小写的,如果不存在则添加


输入参数


名称


类型


说明


Schema


OThinker.H3.DataModel.BizObjectSchema


业务对象模式


返回值


如果添加成功则返回true;否则返回false

方法名称:GetDraftSchema(System.String)


方法说明


获得草稿业务对象模式


输入参数


名称


类型


说明


SchemaCode


System.String


业务对象


返回值

方法名称:UpdateDraftSchema(OThinker.H3.DataModel.BizObjectSchema)


方法说明


更新业务对象模式


输入参数


名称


类型


说明


Schema


OThinker.H3.DataModel.BizObjectSchema


业务对象模式


返回值


如果更新成功,则返回true;否则返回false

方法名称:GetPublishedSchema(System.String)


方法说明


根据模式编码获得已经发布的业务对象模式


输入参数


名称


类型


说明


SchemaCode


System.String


业务对象模式编码,不区分大小写


返回值


业务对象模式

方法名称:GetPublishedSchemas


方法说明


获得全部已经发布的业务对象模式


输入参数


名称


类型


说明


返回值


业务对象模式列表

方法名称:SetPublishedSchemaState(System.String,OThinker.H3.DataModel.BizObjectSchemaState)


方法说明


设置已经发布的业务对象模式的状态


输入参数


名称


类型


说明


SchemaCode


System.String


业务对象模式编码


State


OThinker.H3.DataModel.BizObjectSchemaState


状态


返回值


如果设置成功则返回true;否则返回false

方法名称:PublishSchema(System.String,[email protected])


方法说明


发布一个业务对象模式,实际上,是将业务对象模式从草稿库中读取出来,然后发布到已发布库中,如果新的业务对象模式跟原有的业务对象模式存在冲突,则会回滚到上一次发布的模式中


输入参数


名称


类型


说明


SchemaCode


System.String


业务对象模式编码,不区分大小写


Message


[email protected]


返回消息结果


返回值


如果发布成功,则返回true;否则返回false

方法名称:GetListenerPolicy(System.String)


方法说明


获得一个已发布的业务对象类型监听器的设置


输入参数


名称


类型


说明


SchemaCode


System.String


业务对象模式编码


返回值


监听器的设置

方法名称:SetListenerPolicy(System.String,OThinker.H3.DataModel.BizListenerPolicy)


方法说明


设置一个已发布的业务对象类型监听器的设置


输入参数


名称


类型


说明


SchemaCode


System.String


业务对象模式编码


ListenerPolicy


OThinker.H3.DataModel.BizListenerPolicy


监听器的设置


返回值


如果设置成功,则返回true;否则返回false

方法名称:InvokeBizObjectMethod(System.String,OThinker.Data.BoolMatchValue,System.String,OThinker.H3.DataModel.BizObjectType,System.String,System.String,OThinker.H3.BizBus.BizService.BizStructure)


方法说明


调用业务对象方法


输入参数


名称


类型


说明


UserId


System.String


调用该方法的用户ID


Transactional


OThinker.Data.BoolMatchValue


事务的ID


SchemaCode


System.String


业务对象模式编码


BizObjectType


OThinker.H3.DataModel.BizObjectType


业务对象的类型


ObjectId


System.String


业务对象的ID


MethodName


System.String


要执行的方法的名称


Params


OThinker.H3.BizBus.BizService.BizStructure


执行的方法的参数


返回值


执行的参数的返回值

方法名称:GetList(System.String,System.String,System.String,OThinker.H3.BizBus.Filter.Filter,[email protected])


方法说明


执行Filter方法获取实体结构集合


输入参数


名称


类型


说明


UserId


System.String


用户ID


SchemaCode


System.String


数据模型编码


MethodName


System.String


方法名称


Filter


OThinker.H3.BizBus.Filter.Filter


过滤条件


Count


[email protected]


获取集合数据量


返回值


实体结构集合

方法名称:UpdateComment(System.String,System.String,System.String,System.String,System.String,OThinker.Data.BoolMatchValue,System.String,System.Byte[])


方法说明


更新审批意见


输入参数


名称


类型


说明


SchemaCode


System.String


数据模型编码


ObjectId


System.String


数据实体ID


PropertyName


System.String


意见数据项的名称


CommentID


System.String


审批意见ID


Text


System.String


新的审批意见值


Approval


OThinker.Data.BoolMatchValue


新的审批结果


SignatureId


System.String


新意见采用的签章ID


Signature


System.Byte[]


签章二进制对象


返回值


执行结果:OThinker.H3.ErrorCode

方法名称:AddComment(OThinker.H3.Data.Comment)


方法说明


添加审批意见


输入参数


名称


类型


说明


Comment


OThinker.H3.Data.Comment


审批意见对象


返回值


执行结果:OThinker.H3.ErrorCode

方法名称:AddComments(OThinker.H3.Data.Comment[])


方法说明


批量添加审批意见


输入参数


名称


类型


说明


Comments


OThinker.H3.Data.Comment[]


审批意见集合


返回值


方法名称:GetCommentsByInstance(System.String,System.String,System.String,System.String,System.String,System.String)


方法说明


根据流程实例获取审批意见


输入参数


名称


类型


说明


BizObjectSchemaCode


System.String


数据模型编码


BizObjectId


System.String


数据实体ID


InstanceId


System.String


流程实例ID


PropertyName


System.String


审批意见数据项名称


UserID


System.String


用户ID


Activity


System.String


活动节点编码


返回值


审批意见集合

方法名称:GetCommentsByBizObject(System.String,System.String,System.String)


方法说明


根据数据模型获取审批意见


输入参数


名称


类型


说明


BizObjectSchemaCode


System.String


数据模型编码


BizObjectId


System.String


数据实体ID


PropertyName


System.String


审批意见数据项名称


返回值


审批意见集合

方法名称:CopyComments(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Int64,System.Boolean)


方法说明


复制审核意见


输入参数


名称


类型


说明


SourceBizObjectSchemaCode


System.String


源数据模型编码


SourceBizObjectId


System.String


源数据模型ID


SourceInstanceId


System.String


源流程实例ID


SourceDataField


System.String


源审批类型数据项编码


DestBizObjectSchemaCode


System.String


目标数据模型编码


DestBizObjectId


System.String


目标数据模型ID


DestInstanceId


System.String


目标流程实例ID


DestDataField


System.String


目标审批类型数据项编码


DestTokenId


System.Int64


目标活动节点ID


Override


System.Boolean


是否覆盖模式


返回值


方法名称:GetAttachment(System.String,System.String,System.String,System.String)


方法说明


获取附件信息


输入参数


名称


类型


说明


UserId


System.String


用户ID


BizObjectSchemaCode


System.String


数据模型编码


BizObjectId


System.String


数据实体ID


AttachmentID


System.String


附件ID


返回值


附件内容

方法名称:GetSingleAttachment(System.String,System.String,System.String,System.String,System.String)


方法说明


根据BizObjectId获取附件内容


输入参数


名称


类型


说明


UserId


System.String


读取附件的用户的ID


BizObjectSchemaCode


System.String


所属于的业务对象的模式的编码


BizObjectId


System.String


所属于的业务对象的ID


DataField


System.String


字段名称


FileName


System.String


文件名称,如果不为空,则表示是获取特定的附件;如果为空,则表示这个字段只能最多有一个附件


返回值


附件的内容

方法名称:GetAttachmentHeader(System.String,System.String,System.String)


方法说明


获取附件信息(不包含附件内容)


输入参数


名称


类型


说明


BizObjectSchemaCode


System.String


数据模型编码


BizObjectId


System.String


数据实体ID


AttachmentID


System.String


附件ID


返回值


返回附件信息

方法名称:GetAttachmentHeaders(System.String,System.String,System.String[])


方法说明


获取附件信息集合(不包含附件内容)


输入参数


名称


类型


说明


BizObjectSchemaCode


System.String


数据模型编码


BizObjectId


System.String


数据实体ID


AttachmentIds


System.String[]


附件ID集合


返回值


返回附件信息集合

方法名称:AddAttachment(OThinker.H3.Data.Attachment)


方法说明


添加附件


输入参数


名称


类型


说明


Attachment


OThinker.H3.Data.Attachment


附件对象


返回值


返回添加后的附件ID

方法名称:AddAttachments(System.String,System.String,System.String,OThinker.H3.Data.Attachment[],System.Boolean)


方法说明


批量添加附件


输入参数


名称


类型


说明


BizObjectSchemaCode


System.String


数据模型编码


BizObjectId


System.String


数据实体ID


DataField


System.String


数据项名称


Attachments


OThinker.H3.Data.Attachment[]


附件对象集合


Overwrite


System.Boolean


是否覆盖模式


返回值


方法名称:RemoveAttachment(System.String,System.String,System.String,System.String)


方法说明


移除附件


输入参数


名称


类型


说明


UserId


System.String


操作用户ID


BizObjectSchemaCode


System.String


数据模型编码


BizObjectId


System.String


数据实体ID


AttachmentID


System.String


附件ID


返回值


方法名称:RemoveAttachmentByFileName(System.String,System.String,System.String,System.String,System.String)


方法说明


根据附件名称移除附件


输入参数


名称


类型


说明


UserId


System.String


操作用户ID


BizObjectSchemaCode


System.String


数据模型编码


BizObjectId


System.String


数据实体ID


DataField


System.String


数据项名称


FileName


System.String


文件名称


返回值


方法名称:QueryAttachment(System.String,System.String,System.String,OThinker.Data.BoolMatchValue,System.String)


方法说明


查询附件


输入参数


名称


类型


说明


BizObjectSchemaCode


System.String


数据模型编码


BizObjectId


System.String


数据实体ID


DataField


System.String


数据项名称


LastVersion


OThinker.Data.BoolMatchValue


是否最新版本


FileName


System.String


附件名称


返回值


返回附件头信息集合

方法名称:RemoveAttachments(System.String,System.String,System.String)


方法说明


移除附件


输入参数


名称


类型


说明


BizObjectSchemaCode


System.String


数据模型编码


BizObjectId


System.String


数据实体ID


DataField


System.String


数据项名称


返回值


方法名称:RemoveAttachmentGarbage


方法说明


附件垃圾回收策略


输入参数


名称


类型


说明


返回值


方法名称:CopyAttachments(System.String,System.String,System.String,System.String,System.String,System.String,System.Boolean)


方法说明


将附件从一个数据模型复制到另一个数据模型


输入参数


名称


类型


说明


SourceBizObjectSchemaCode


System.String


源数据模型编码


SourceBizObjectId


System.String


源数据实体ID


SourceDataField


System.String


源附件类型数据项编码


DestBizObjectSchemaCode


System.String


目标数据模型编码


DestBizObjectId


System.String


目标数据实体ID


DestDataField


System.String


目标附件类型数据项编码


Override


System.Boolean


是否覆盖模式


返回值


方法名称:AttachBizObject(System.String,System.String[],System.String,System.String,System.String)


方法说明


更新附件


输入参数


名称


类型


说明


UserId


System.String


操作用户ID


Attachments


System.String[]


附件ID集合


BizObjectSchemaCode


System.String


数据模型编码


BizObjectId


System.String


数据实体ID


DataField


System.String


数据项名称


返回值


方法名称:UpdateAttachment(System.String,System.String,System.String,System.String,System.String,System.String,System.Byte[],System.Int64)


方法说明


更新附件内容


输入参数


名称


类型


说明


BizObjectSchemaCode


System.String


数据模型编码


BizObjectId


System.String


数据实体ID


AttachmentID


System.String


附件ID


ModifiedBy


System.String


修改人


FileName


System.String


文件名称


ContentType


System.String


文件类型


Content


System.Byte[]


文件内容


FileFlag


System.Int64


附件打开模式


返回值


方法名称:UpdateAttachmentWeChatMediaID(System.String,System.String,System.DateTime)


方法说明


更新微信中的多媒体文件ID


输入参数


名称


类型


说明


AttachmentID


System.String


附件ID


WeChatMediaID


System.String


微信多媒体文件ID


WeChatMediaExpireTime


System.DateTime


微信多媒体文件过期时间


返回值


方法名称:AddBizQuery(OThinker.H3.DataModel.BizQuery)


方法说明


注册 BizQuery 对象


输入参数


名称


类型


说明


Query


OThinker.H3.DataModel.BizQuery


查询对象


返回值


返回操作是否成功

方法名称:UpdateBizQuery(OThinker.H3.DataModel.BizQuery)


方法说明


更新 BizQuery 对象


输入参数


名称


类型


说明


Query


OThinker.H3.DataModel.BizQuery


查询对象


返回值


返回操作是否成功

方法名称:SaveBizQuery(OThinker.H3.DataModel.BizQuery)


方法说明


注册 BizQuery 对象(Add/Update)


输入参数


名称


类型


说明


Query


OThinker.H3.DataModel.BizQuery


查询对象


返回值


返回操作是否成功

方法名称:RemoveBizQuery(OThinker.H3.DataModel.BizQuery)


方法说明


移除BizQuery对象


输入参数


名称


类型


说明


Query


OThinker.H3.DataModel.BizQuery


查询对象


返回值


方法名称:GetBizQuery(System.String)


方法说明


获取BizQuery对象


输入参数


名称


类型


说明


QueryCode


System.String


查询编码


返回值


查询对象

方法名称:GetBizQueries(System.String)


方法说明


根据数据模型编码获取查询对象的集合


输入参数


名称


类型


说明


SchemaCode


System.String


数据模型编码


返回值


查询对象的集合

方法名称:GetScheduleInvoker(System.String)


方法说明


获得定期调用的设置


输入参数


名称


类型


说明


ScheduleInvokerId


System.String


定期调用的ID


返回值


定期调用的设置

方法名称:GetScheduleInvokerList(System.String)


方法说明


获得定期调用的设置


输入参数


名称


类型


说明


SchemaCode


System.String


业务对象模式编码


返回值


定期调用的设置列表

方法名称:AddScheduleInvoker(OThinker.H3.DataModel.ScheduleInvoker)


方法说明


注册监听器


输入参数


名称


类型


说明


ScheduleInvoker


OThinker.H3.DataModel.ScheduleInvoker


监听器


返回值


如果成功则返回true;否则返回false

方法名称:UpdateScheduleInvoker(OThinker.H3.DataModel.ScheduleInvoker)


方法说明


更新一个监听器


输入参数


名称


类型


说明


ScheduleInvoker


OThinker.H3.DataModel.ScheduleInvoker


监听器


返回值


如果成功则返回true;否则返回false

方法名称:RemoveScheduleInvoker(System.String)


方法说明


删除一个监听器


输入参数


名称


类型


说明


ScheduleInvokerId


System.String


监听器ID,不区分大小写


返回值


如果成功则返回true;否则返回false

方法名称:RegisterListener(OThinker.H3.DataModel.BizListener)


方法说明


注册一个监听器


输入参数


名称


类型


说明


Listener


OThinker.H3.DataModel.BizListener


监听器


返回值


如果注册成功,则返回true;否则返回false

方法名称:RemoveListener(OThinker.H3.DataModel.BizListener)


方法说明


删除一个监听器


输入参数


名称


类型


说明


Listener


OThinker.H3.DataModel.BizListener


监听器


返回值


方法名称:GetListenersBySchemaCode(System.String)


方法说明


获得某个业务对象模式下的所有监听


输入参数


名称


类型


说明


SchemaCode


System.String


业务对象模式编码


返回值


所有的监听

方法名称:ValidateBizObjectSchema(System.String)


方法说明


检验数据模型


输入参数


名称


类型


说明


SchemaCode


System.String


数据模型编码


返回值


返回检验结果

方法名称:SetPropertyValue(System.String,System.String,System.String,System.String,System.Object)


方法说明


设置数据项的值


输入参数


名称


类型


说明


BizObjectSchemaCode


System.String


数据模型编码


BizObjectId


System.String


数据实体ID


UserId


System.String


用户ID


PropertyName


System.String


数据项名称


PropertyValue


System.Object


数据项的值


返回值


返回更新是否成功

方法名称:SetPropertyValues(System.String,System.String,System.String,System.Collections.Generic.Dictionary{System.String,System.Object})


方法说明


设置数据项的值


输入参数


名称


类型


说明


BizObjectSchemaCode


System.String


数据模型编码


BizObjectId


System.String


数据实体ID


UserId


System.String


用户ID


PropertyNameValues


System.Collections.Generic.Dictionary{System.String


数据项(名称,值)的集合


返回值


返回更新是否成功

方法名称:AddBizObjectAcl(OThinker.H3.Acl.BizObjectAcl)


方法说明


添加数据项模型权限


输入参数


名称


类型


说明


Acl


OThinker.H3.Acl.BizObjectAcl


数据模型权限对象


返回值


返回更新是否成功

方法名称:UpdateBizObjectAcl(OThinker.H3.Acl.BizObjectAcl)


方法说明


更新权限


输入参数


名称


类型


说明


Acl


OThinker.H3.Acl.BizObjectAcl


数据模型权限对象


返回值

方法名称:RemoveBizObjectAcl(System.String,System.String,System.String)


方法说明


删除数据项模型权限


输入参数


名称


类型


说明


SchemaCode


System.String


数据模型编码


FolderId


System.String


文件夹ID


AclID


System.String


权限ID


返回值


方法名称:RemoveBizObjectAcls(System.String,System.String,System.String[])


方法说明


删除数据项模型权限


输入参数


名称


类型


说明


SchemaCode


System.String


数据模型编码


FolderId


System.String


文件夹ID


AclIDs


System.String[]


权限ID集合


返回值


方法名称:GetBizObjectAcls(System.String,System.String)


方法说明


根据数据模型编码、文件夹获取权限信息


输入参数


名称


类型


说明


SchemaCode


System.String


数据模型编码


FolderId


System.String


文件夹ID


返回值


返回权限对象的集合

方法名称:GetBizObjectAcl(System.String,System.String,System.String)


方法说明


根据模型编码、文件夹、ID获取业务权限


输入参数


名称


类型


说明


SchemaCode


System.String


数据模型编码


FolderId


System.String


文件夹ID


AclId


System.String


权限ID


返回值


返回业务权限对象

方法名称:GetBizObjectUserAcls(System.String,System.String,System.String[])


方法说明


根据数据模型编码、文件夹、用户获取权限信息


输入参数


名称


类型


说明


SchemaCode


System.String


数据模型编码


FolderId


System.String


文件夹ID


Users


System.String[]


用户集合


返回值


返回权限对象的集合

方法名称:CheckSchemaCodeDuplicated(System.String,[email protected])


方法说明


检测数据模型编码是否重复


输入参数


名称


类型


说明


SchemaCode


System.String


数据模型编码


Message


[email protected]


返回的错误信息


返回值


重复返回false,没重复返回true

18 类:OThinker.H3.DataModel.IBizObjectTrackManager

说明:数据痕迹管理器

访问入口:this.Engine.BizObjectTrackManager

示例:


this.Engine.BizObjectTrackManager.Query("BizobjectID","ItemName");

方法名称:Add(OThinker.H3.DataModel.BizObjectPropertyTrack[])


方法说明


添加痕迹记录


输入参数


名称


类型


说明


Tracks


OThinker.H3.DataModel.BizObjectPropertyTrack[]


要记录的痕迹


返回值


方法名称:QueryTable(System.String,System.String)


方法说明


查询痕迹


输入参数


名称


类型


说明


BizObjectId


System.String


业务对象的ID


ItemName


System.String


项名称


返回值


痕迹表,里面会包含修改时间、修改人、活动名称和修改后的值等信息

方法名称:Query(System.String,System.String)


方法说明


查询某个数据项的痕迹记录


输入参数


名称


类型


说明


BizObjectId


System.String


业务对象的ID


ItemName


System.String


项名称


返回值


痕迹记录的ID

方法名称:GetTrack(System.String)


方法说明


读取一个记录


输入参数


名称


类型


说明


TrackID


System.String


痕迹记录的ID


返回值


痕迹记录

方法名称:RemoveBizObject(System.String)


方法说明


删除流程


输入参数


名称


类型


说明


BizObjectId


System.String


业务对象的ID


返回值


19 类:OThinker.H3.DataModel.IFilePolicyManager

说明:文件存储策略管理器

访问入口:this.Engine.FilePolicyManager

示例:


this.Engine.FilePolicyManager.GetFileServer("编码")

方法名称:GetFileServers


方法说明


获取所有文件服务器的存储策略集合


输入参数


名称


类型


说明


返回值


返回所有文件存储服务器对象的集合

方法名称:UpdateFileServer(OThinker.H3.DataModel.FileServer)


方法说明


更新文件存储服务器


输入参数


名称


类型


说明


Server


OThinker.H3.DataModel.FileServer


文件服务器对象


返回值


返回更新是否成功

方法名称:GetFileServer(System.String)


方法说明


根据编码获取文件存储服务器


输入参数


名称


类型


说明


Code


System.String


文件服务器编码


返回值


返回文件服务器对象实例

方法名称:AddFileServer(OThinker.H3.DataModel.FileServer)


方法说明


增加文件存储服务器


输入参数


名称


类型


说明


Server


OThinker.H3.DataModel.FileServer


文件服务器对象


返回值


返回添加是否成功

方法名称:RemoveFileServer(System.String)


方法说明


移除文件存储服务器


输入参数


名称


类型


说明


Code


System.String


文件服务器编码


返回值


返回移除是否成功

方法名称:SetDefault(System.String,System.Boolean)


方法说明


设置指定服务器编码是否为默认存储服务器


输入参数


名称


类型


说明


Code


System.String


文件服务器编码


Default


System.Boolean


是否设置为默认存储服务器


返回值


返回设置是否成功

20 类:OThinker.H3.Analytics.IAnalyzer

说明:BPA服务接口

访问入口:this.Engine.Analyzer

示例:


this.Engine.Analyzer.GetReportSource("SourceID")

方法名称:OThinker.H3.Analytics.Reporting.ReportSource


方法说明


构造函数


输入参数


名称


类型


说明


返回值


方法名称:AddReportSource(OThinker.H3.Analytics.Reporting.ReportSource)


方法说明


添加报表数据源


输入参数


名称


类型


说明


Source


OThinker.H3.Analytics.Reporting.ReportSource


报表数据源对象


返回值


返回添加是否成功

方法名称:GetReportSource(System.String)


方法说明


根据ID获取报表数据源


输入参数


名称


类型


说明


SourceID


System.String


数据源ID


返回值


返回报表数据源

方法名称:GetReportSourceByCode(System.String)


方法说明


根据编码获取报表数据源


输入参数


名称


类型


说明


SourceCode


System.String


数据源编码


返回值


返回报表数据源

方法名称:GetReportSources


方法说明


获取所有报表数据源


输入参数


名称


类型


说明


返回值


返回报表数据源集合

方法名称:RemoveReportSource(System.String)


方法说明


删除报表数据源


输入参数


名称


类型


说明


SourceID


System.String


数据源ID


返回值


返回移除报表数据源是否成功

方法名称:UpdateReportSource(OThinker.H3.Analytics.Reporting.ReportSource)


方法说明


更新报表数据源配置


输入参数


名称


类型


说明


Source


OThinker.H3.Analytics.Reporting.ReportSource


报表数据源对象


返回值


返回更新是否成功

方法名称:GetReportTemplate(System.String)


方法说明


获取报表模板


输入参数


名称


类型


说明


ObjectID


System.String


报表模板ID


返回值


返回报表模板

方法名称:GetReportTemplateByCode(System.String)


方法说明


获取报表模板


输入参数


名称


类型


说明


Code


System.String


报表模板编码


返回值


返回报表模板

方法名称:GetReportTemplatesByType(OThinker.H3.Analytics.Reporting.ReportType)


方法说明


根据报表类型,获取报表模板


输入参数


名称


类型


说明


ReportType


OThinker.H3.Analytics.Reporting.ReportType


报表类型


返回值


返回报表模板集合

方法名称:GetAllReportTemplates


方法说明


获取所有报表模板


输入参数


名称


类型


说明


返回值


返回报表模板集合

方法名称:GetReportTemplateByFolderCode(System.String)


方法说明


根据目录编码,获取报表


输入参数


名称


类型


说明


FolderCode


System.String


目录编码


返回值


返回报表模板集合

方法名称:AddReportTemplate(OThinker.H3.Analytics.Reporting.ReportTemplate)


方法说明


添加报表模板


输入参数


名称


类型


说明


ReportTemplate


OThinker.H3.Analytics.Reporting.ReportTemplate


报表模板对象


返回值


返回添加是否成功

方法名称:RemoveReportTemplate(System.String)


方法说明


删除报表模板


输入参数


名称


类型


说明


ObjectID


System.String


报表模板对象ID


返回值


返回删除是否成功

方法名称:UpdateReportTemplate(OThinker.H3.Analytics.Reporting.ReportTemplate)


方法说明


更新报表模板


输入参数


名称


类型


说明


ReportTemplate


OThinker.H3.Analytics.Reporting.ReportTemplate


报表模板对象


返回值


返回更新是否成功

21 类:OThinker.H3.WorkItem.IAgencyManager

说明:委托关系管理器。当系统向用户A发送一个工作项的时候,会首先检查委托设置,如果存在委托,则发给委托人

访问入口:this.Engine.AgencyManager

示例:


this.Engine.AgencyManager.GetAgency("ID")

方法名称:Add(OThinker.H3.WorkItem.Agency)


方法说明


添加一个委托关系


输入参数


名称


类型


说明


Agency


OThinker.H3.WorkItem.Agency


委托关系对象


返回值


返回操作是否成功

方法名称:Update(OThinker.H3.WorkItem.Agency)


方法说明


更新一个委托关系对象


输入参数


名称


类型


说明


Agency


OThinker.H3.WorkItem.Agency


委托关系对象


返回值


返回操作是否成功

方法名称:GetUserAgencies(System.String)


方法说明


通过委托人ID,获得所有委托给该用户、并且当前已经生效的所有委托设置


输入参数


名称


类型


说明


UserID


System.String


委托人ID


返回值


所有已经生效的委托关系

方法名称:GetAgent(System.String,System.String,System.String)


方法说明


通过委托人ID,获得用户的当前生效的、最终的受托人


输入参数


名称


类型


说明


UserID


System.String


委托人ID


WorkflowCode


System.String


流程模板编码


Originator


System.String


流程的发起人


返回值


如果没有找到最终代理人,则返回为Null

方法名称:Remove(System.String)


方法说明


删除一个委托关系


输入参数


名称


类型


说明


AgencyID


System.String


委托关系ID


返回值


方法名称:RemoveWorkflow(System.String)


方法说明


当流程模板被删除的时候,调用该方法,删除相关的委托关系


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


返回值


方法名称:GetAgency(System.String)


方法说明


读取一个委托关系


输入参数


名称


类型


说明


AgencyID


System.String


委托关系ID


返回值


委托关系

方法名称:Exists(System.String,System.String,System.String)


方法说明


检查委托关系定义是否已经存在。请注意,这里不区分是否已经生效,凡事定义的,即使没有生效也算存在。


输入参数


名称


类型


说明


UserID


System.String


委托人ID


WorkflowCode


System.String


流程模板编码


Originator


System.String


流程发起人


返回值


是否存在关系定义

方法名称:CheckWorkItemAgency(System.String,System.String,System.String,System.String)


方法说明


检查User与Agent就某个工作流模板是否存在当前已经生效的工作委托关系


输入参数


名称


类型


说明


UserID


System.String


委托人ID


AgentID


System.String


受托人ID


WorkflowCode


System.String


流程模板编码


Originator


System.String


发起人


返回值


是否存在委托关系

方法名称:CheckOriginateAgency(System.String,System.String,System.String)


方法说明


检查User与Agent就某个工作流模板是否存在当前已经生效的发起委托关系


输入参数


名称


类型


说明


UserID


System.String


委托人ID


AgentID


System.String


受托人ID


WorkflowCode


System.String


流程模板编码


返回值


是否存在委托关系

方法名称:GetOriginateAgencyTable(System.String,System.String,System.Data.DataTable,System.String)


方法说明


将没有发起权限的流程模板去掉


输入参数


名称


类型


说明


UserID


System.String


委托人


AgentID


System.String


被委托人


WorkflowTable


System.Data.DataTable


所有委托人可以发起的流程


ColumnCode


System.String


WorkflowTable的WorkflowCode列的列名称


返回值


被委托人可以帮助委托人发起的所有流程模板的表

方法名称:GetOriginateOriginators(System.String)


方法说明


获得发起委托给AgentID的委托人


输入参数


名称


类型


说明


AgentID


System.String


被委托人,禁止为空


返回值


委托关系

22 类:OThinker.H3.WorkItem.IConsultancyManager

说明:自动征询意见的关系管理器

访问入口:this.Engine.ConsultancyManager

示例:


this.Engine.ConsultancyManager.GetConsultancy("ID");

方法名称:Save(OThinker.H3.WorkItem.Consultancy)


方法说明


将征询关系信息保存起来


输入参数


名称


类型


说明


Consultancy


OThinker.H3.WorkItem.Consultancy


自动征询意见关系


返回值


方法名称:Remove(System.String)


方法说明


删除一个征询关系信息


输入参数


名称


类型


说明


ConsultancyID


System.String


自动征询意见设置的ID


返回值


方法名称:RemoveWorkflow(System.String)


方法说明


当流程模板被删除的时候,调用该方法,删除相关的委托关系


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


返回值


方法名称:GetConsultancy(System.String)


方法说明


读取一个征询关系信息


输入参数


名称


类型


说明


ConsultancyID


System.String


自动征询意见设置的ID


返回值


自动征询意见设置

方法名称:Exists(System.String,System.String,System.String)


方法说明


检查征询关系信息是否已经存在


输入参数


名称


类型


说明


UserID


System.String


用户ID


WorkflowCode


System.String


流程模板编码


Originator


System.String


发起人范围


返回值


如果征询意见关系已经存在,则返回true,否则返回false

方法名称:GetUserConsultancies(System.String)


方法说明


获得某个用户所有当前有效的自动征询意见关系设置


输入参数


名称


类型


说明


UserID


System.String


用户ID


返回值


该用户的所有当前有效的自动征询意见关系

方法名称:GetConsultancyByRelationship(System.String,System.String,System.String[])


方法说明


获得用户的征询关系


输入参数


名称


类型


说明


UserID


System.String


用户ID


WorkflowCode


System.String


流程模板编码


OriginatorMemberOfs


System.String[]


发起人所属,包括自己


返回值


如果没有找到最终征询关系人,则返回为Null

23 类:OThinker.H3.Exceptions.IExceptionManager

说明:异常管理器

访问入口:this.Engine.ExceptionManager

示例:


this.Engine.ExceptionManager.NotifyException

方法名称:

NotifyException(System.String,System.Int32,System.String,OThinker.H3.Instance.RuntimeObjectType,System.String,System.Boolean,OThinker.H3.Instance.RuntimeObjectAction,System.String,System.String,System.String)


方法说明


通知异常


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


WorkflowVersion


System.Int32


流程模板版本号


InstanceId


System.String


流程实例的ID


SourceRuntimeObjectType


OThinker.H3.Instance.RuntimeObjectType


异常源对象的类型


SourceElementName


System.String


异常源对象的名称


Block


System.Boolean


是否阻塞流程


SourceRuntimeObjectAction


OThinker.H3.Instance.RuntimeObjectAction


异常源对象造成异常的动作,比如:流程启动、活动结束事件等


Message


System.String


异常信息


SequenceNo


System.String


流水号


Originator


System.String


发起人


返回值


方法名称:GetUnfixedExceptions


方法说明


获得未修复的异常记录


输入参数


名称


类型


说明


返回值

方法名称:GetExceptions(System.DateTime,System.DateTime)


方法说明


获得某个时间段的所有异常记录


输入参数


名称


类型


说明


From


System.DateTime


开始时间


To


System.DateTime


结束时间


返回值


在时间段内发生的异常的记录

方法名称:GetExceptionsByInstance(System.String)


方法说明


获得一个实例的所有异常情况


输入参数


名称


类型


说明


InstanceId


System.String


流程实例的ID


返回值


流程实例的所有异常

方法名称:FixException(System.String)


方法说明


修复一个异常


输入参数


名称


类型


说明


ExceptionID


System.String


异常信息的ID


返回值


如果修复成功,则返回0,否则返回异常信息

方法名称:RemoveInstance(System.String)


方法说明


删除一个实例的异常


输入参数


名称


类型


说明


InstanceId


System.String


流程实例的ID


返回值


方法名称:GetException(System.String)


方法说明


获得某个异常的具体信息


输入参数


名称


类型


说明


ExceptionID


System.String


异常记录的ID


返回值


异常信息

方法名称:QueryTable(System.String,System.DateTime,System.DateTime,OThinker.H3.Exceptions.ExceptionState)


方法说明


查询当前存在的异常


输入参数


名称


类型


说明


InstanceId


System.String


流程实例的ID


From


System.DateTime


开始时间


To


System.DateTime


结束时间


State


OThinker.H3.Exceptions.ExceptionState


异常记录的状态,Unspecified表示不区分异常状态


返回值


异常表

24 类:OThinker.H3.Instance.IInstanceManager

说明:流程实例管理器

访问入口:this.Engine.InstanceManager

示例:


this.Engine.InstanceManager.GetInstanceContext("流程实例ID");

方法名称:

CreateInstance(System.String,System.String,System.Int32,System.String,System.String,System.String,System.String,System.String,System.Boolean,System.String,System.String,System.Int32)


方法说明


创建一个流程实例


输入参数


名称


类型


说明


BizObjectId


System.String


业务对象的ID


WorkflowCode


System.String


流程模板编码


WorkflowVersion


System.Int32


流程版本号


InstanceId


System.String


流程实例的ID,如果为空则由Engine自动生成一个


InstanceName


System.String


流程实例的名称


Originator


System.String


发起人


OriginatedGroup


System.String


以哪个组的身份发起流程的


OriginatedPost


System.String


以哪个岗位的身份发起流程的


IsChildInstance


System.Boolean


是否是子实例


ParentInstanceID


System.String


如果是子实例,则该项为父实例的ID


ParentActivityName


System.String


如果是子实例,则该项为发起该实例的父实例的Activity的ID


ParentActivityTokenId


System.Int32


如果是子实例,则该项为发起该实例的父实例的TokenID


返回值


如果创建成功则返回实例的ID,否则返回NullInstanceID

方法名称:CreateInstanceByDefault(System.String,System.String,System.String,System.String)


方法说明


创建流程实例


输入参数


名称


类型


说明


BizObjectId


System.String


数据实例ID


WorkflowCode


System.String


流程模板编码


InstanceName


System.String


流程实例名称


Originator


System.String


发起人


返回值

方法名称:GetInstanceContext(System.String)


方法说明


获得一个实例的状态


输入参数


名称


类型


说明


InstanceId


System.String


流程实例的ID


返回值


流程实例的上下文

方法名称:GetInstanceContextsByBizObject(System.String,System.String)


方法说明


根据BizObjectID获取流程实例集合


输入参数


名称


类型


说明


SchemaCode


System.String


数据模型编码


BizObjectId


System.String


业务实例ID


返回值


返回当前数据所有绑定的流程实例的集合

方法名称:GetParentInstanceInfo(System.String)


方法说明


获得父流程的工作流信息


输入参数


名称


类型


说明


InstanceId


System.String


流程实例的ID


返回值


父流程实例信息

方法名称:SendMessages(OThinker.H3.Messages.Message[])


方法说明


发送消息给流程实例,以驱动流程实例的运行


输入参数


名称


类型


说明


Messages


OThinker.H3.Messages.Message[]


发送给流程实例的消息


返回值


方法名称:SendMessage(OThinker.H3.Messages.Message)


方法说明


发送消息给流程实例,以驱动流程实例的运行


输入参数


名称


类型


说明


Message


OThinker.H3.Messages.Message


发送给流程实例的消息


返回值


方法名称:SetInstanceName(System.String,System.String)


方法说明


设置流程实例显示名称


输入参数


名称


类型


说明


InstanceId


System.String


流程实例ID


InstanceName


System.String


流程实例名称


返回值

方法名称:SetInstancePriority(System.String,OThinker.H3.Instance.PriorityType)


方法说明


设置流程实例紧急程度


输入参数


名称


类型


说明


InstanceId


System.String


流程实例ID


Priority


OThinker.H3.Instance.PriorityType


紧急程度


返回值

方法名称:IncNextInstanceSeqID(System.String)


方法说明


增加一个流水号,并返回一个新的流水号


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


返回值


新的流程实例的流水号

方法名称:ResetSeqNo(System.DateTime)


方法说明


重置流水号,该方法只能每天被调用一次,且最多只能被调用一次。该方法只能由Engine的定时器调用,不能被外部系统调用。


输入参数


名称


类型


说明


Now


System.DateTime


当前时间


返回值


方法名称:RemoveInstance(System.String,System.Boolean)


方法说明


删除流程实例


输入参数


名称


类型


说明


InstanceId


System.String


要删除的流程实例的ID


AutoUpdateBizObject


System.Boolean


删除之后,是否需要更新BO.RunningInstanceId字段


返回值


25 类:OThinker.H3.Instance.IInstanceSimulationManager

说明:流程模拟管理器

访问入口:this.Engine.SimulationManager

示例:


this.Engine.SimulationManager.AddSimulation(new Instance.InstanceSimulation());

方法名称:GetSimulation(System.String)


方法说明


获取单个流程案例


输入参数


名称


类型


说明


ObjectID


System.String


流程模拟ID


返回值


返回流程模拟对象

方法名称:GetSimulations(System.String[])


方法说明


获取单个流程案例


输入参数


名称


类型


说明


ObjectID


System.String[]


流程模拟ID


返回值


返回流程模拟对象

方法名称:GetSimulationList(System.String)


方法说明


获取单个测试集


输入参数


名称


类型


说明


ObjectID


System.String


测试集ID


返回值


返回流程模拟对象

方法名称:AddSimulationList(OThinker.H3.Instance.InstanceSimulationList)


方法说明


新增一个流程案例


输入参数


名称


类型


说明


SimulationList


OThinker.H3.Instance.InstanceSimulationList


测试集对象


返回值


返回添加是否成功

方法名称:AddSimulation(OThinker.H3.Instance.InstanceSimulation)


方法说明


新增一个流程案例


输入参数


名称


类型


说明


Simulation


OThinker.H3.Instance.InstanceSimulation


流程模拟对象


返回值


返回添加是否成功

方法名称:UpdateSimulation(OThinker.H3.Instance.InstanceSimulation)


方法说明


更新流程案例


输入参数


名称


类型


说明


Simulation


OThinker.H3.Instance.InstanceSimulation


流程模拟对象


返回值


返回更新是否成功

方法名称:UpdateSimulationList(OThinker.H3.Instance.InstanceSimulationList)


方法说明


更新流程测试集


输入参数


名称


类型


说明


SimulationList


OThinker.H3.Instance.InstanceSimulationList


测试集对象


返回值


返回更新是否成功

方法名称:RemoveSimulation(System.String[])


方法说明


删除模拟


输入参数


名称


类型


说明


SimulationIDs


System.String[]


流程模拟ID集合


返回值


方法名称:RemoveSimulationList(System.String[])


方法说明


删除测试集


输入参数


名称


类型


说明


SimulationListIDs


System.String[]


测试集ID集合


返回值


方法名称:RunSimulation(System.String[])


方法说明


运行选定的案例


输入参数


名称


类型


说明


SimulationIds


System.String[]


流程模拟ID集合


返回值


方法名称:RunSimulationList(System.String[])


方法说明


运行选定的测试集


输入参数


名称


类型


说明


SimulationListIds


System.String[]


测试集ID集合


返回值


方法名称:GetSimulationByWorkflow(System.String)


方法说明


获取指定模板的所有流程案例


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


返回值


返回流程模拟对象的集合

方法名称:GetSimulationListByWorkflow(System.String)


方法说明


获取指定模板的所有流程测试集


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


返回值


返回流程模拟对象的集合

26 类:OThinker.H3.Data.IMetadataRepository

说明:数据字典接口

访问入口:this.Engine.MetadataRepository

示例:


this.Engine.MetadataRepository.Add(new Data.EnumerableMetadata());

方法名称:ExistPrimitiveItem(System.String)


方法说明


检查全局变量名称是否已经存在


输入参数


名称


类型


说明


ItemName


System.String


项目名称


返回值


返回是否存在

方法名称:CreatePrimitiveItem(System.String,System.String,System.String)


方法说明


创建一个全局变量


输入参数


名称


类型


说明


ItemName


System.String


变量名称


Description


System.String


描述信息


ItemValue


System.String


变量值


返回值


如果成功,则返回0,否则返回错误代码 OThinker.H3.ErrorCode

方法名称:GetPrimitiveItemValue(System.String)


方法说明


获取一个全局变量


输入参数


名称


类型


说明


ItemName


System.String


全局变量名称


返回值


全局变量值

方法名称:SetPrimitiveItemValue(System.String,System.String,System.String)


方法说明


设置一个全局变量的值


输入参数


名称


类型


说明


ItemName


System.String


全局变量名称


ItemValue


System.String


全局变量值


返回值


如果成功,则返回0,否则返回错误代码 OThinker.H3.ErrorCode

方法名称:GetAllPrimitiveItems


方法说明


获取所有的全局变量名称的集合


输入参数


名称


类型


说明


返回值


全局变量名称集合

方法名称:RemovePrimitiveItem(System.String)


方法说明


删除一个全局变量


输入参数


名称


类型


说明


ItemName


System.String


全局变量名称


返回值


方法名称:GetPrimitiveItem(System.String)


方法说明


根据名称获取单个全局变量


输入参数


名称


类型


说明


ItemName


System.String


全局变量名称


返回值


全局变量

方法名称:ParseText(System.String)


方法说明


解析一段文本,将文本中的{}标记的数据转换为数据的值


输入参数


名称


类型


说明


Text


System.String


解析的公式


返回值

方法名称:Remove(System.String)


方法说明


删除主数据


输入参数


名称


类型


说明


ObjectId


System.String


要删除的主数据的ID


返回值


方法名称:RemoveByCategory(System.String)


方法说明


删除某个类型的主数据


输入参数


名称


类型


说明


Category


System.String


要删除的主数据的类型


返回值


方法名称:Add(OThinker.H3.Data.EnumerableMetadata)


方法说明


新增主数据项


输入参数


名称


类型


说明


Data


OThinker.H3.Data.EnumerableMetadata


主数据


返回值


返回是否保存成功

方法名称:Update(OThinker.H3.Data.EnumerableMetadata)


方法说明


更新主数据


输入参数


名称


类型


说明


Data


OThinker.H3.Data.EnumerableMetadata


要更新的主数据


返回值


返回是否保存成功

方法名称:GetByCategory(System.String)


方法说明


获得某个类型下的所有主数据


输入参数


名称


类型


说明


Category


System.String


类型代码


返回值


所有主数据

方法名称:GetValuesByCategory(System.String)


方法说明


获得所有主数据的值


输入参数


名称


类型


说明


Category


System.String


类型代码


返回值


所有主数据的值

方法名称:GetById(System.String)


方法说明


通过ID获得主数据


输入参数


名称


类型


说明


ObjectId


System.String


返回值

方法名称:GetByCode(System.String,System.String)


方法说明


通过类型和编码获取单个数据字典对象


输入参数


名称


类型


说明


Category


System.String


数据字典类型


Code


System.String


数据字典编码


返回值


数据字典对象

方法名称:GetCategoryTable


方法说明


获取所有的数据字典


输入参数


名称


类型


说明


返回值


返回数据字典类型的集合

方法名称:GetChildren(System.String,OThinker.H3.Data.MasterDataState)


方法说明


通过父对象的编码获得子成员


输入参数


名称


类型


说明


ParentCode


System.String


父对象编码


State


OThinker.H3.Data.MasterDataState


状态


返回值


子成员

方法名称:GetTreeItemsByCode(System.String[])


方法说明


根据编码获得主数据对象


输入参数


名称


类型


说明


Codes


System.String[]


要读取的主数据的项目的代码


返回值


主数据对象

方法名称:GetTreeItemByCode(System.String)


方法说明


根据编码获得主数据对象


输入参数


名称


类型


说明


Code


System.String


要读取的主数据的项目的代码


返回值


主数据对象

方法名称:SetTreeItemState(System.String,OThinker.H3.Data.MasterDataState)


方法说明


设置数据的状态


输入参数


名称


类型


说明


Code


System.String


主数据对象编码


State


OThinker.H3.Data.MasterDataState


主数据的状态


返回值


方法名称:SaveTreeItem(OThinker.H3.Data.TreeMetadata)


方法说明


保存树状主数据


输入参数


名称


类型


说明


Item


OThinker.H3.Data.TreeMetadata


主数据对象


返回值


如果保存成功,则返回true,否则返回false

方法名称:RemoveTreeItem(System.String)


方法说明


删除树型主数据的节点


输入参数


名称


类型


说明


Code


System.String


要删除的节点的编码


返回值


方法名称:SetDefaultItem(System.String,System.Boolean)


方法说明


设置默认


输入参数


名称


类型


说明


ObjectID


System.String


Default


System.Boolean


返回值

27 类:OThinker.H3.Notification.INotifier

说明:用于管理通知的接口

访问入口:this.Engine.Notifier

示例:


this.Engine.Notifier.Notify(new Notification.Notification());

方法名称:Notify(OThinker.H3.Notification.Notification)


方法说明


通知对外发送的消息


输入参数


名称


类型


说明


Notification


OThinker.H3.Notification.Notification


要发送的通知


返回值


方法名称:SetState(System.String,OThinker.H3.Notification.NotificationState)


方法说明


设置为已读


输入参数


名称


类型


说明


NotificationId


System.String


通知的ID


返回值


28 类:OThinker.H3.Settings.ISettingManager

说明:设置管理器,通过这个接口,我们可以获得全局性的设置信息,比如:显示的格式、流水号的格式等

访问入口:this.Engine.SettingManager

示例:


this.Engine.SettingManager.SetCustomSetting("名称","值");

方法名称:GetCustomSetting(System.String)


方法说明


获得自定义设置的值


输入参数


名称


类型


说明


SettingName


System.String


设置的名称


返回值


设置的值

方法名称:GetDisabledMobiles


方法说明


获得MobileSID


输入参数


名称


类型


说明


返回值


MobileSID

方法名称:AddDisabledMobile(System.String)


方法说明


添加MobileSID


输入参数


名称


类型


说明


MobileSID


System.String


MobileSID


返回值


如果设置成功,则返回true,否则返回false

方法名称:RemoveDisabledMobile(System.String)


方法说明


移除MobileSID


输入参数


名称


类型


说明


MobileSID


System.String


MobileSID


返回值


如果设置成功,则返回true,否则返回false

方法名称:SetCustomSetting(System.String,System.String)


方法说明


设置自定义设置的值


输入参数


名称


类型


说明


SettingName


System.String


设置的名称


SettingValue


System.String


设置的值


返回值


如果设置成功,则返回true,否则返回false

方法名称:GetSheetSettings


方法说明


为了提高性能,一次性获得所有跟Portal相关的设置


输入参数


名称


类型


说明


返回值


跟Portal相关的设置

方法名称:ResetSeqNo(System.DateTime)


方法说明


重置流水号,该方法只能每天被调用一次,且最多只能被调用一次。该方法只能由Engine的定时器调用,不能被外部系统调用。


输入参数


名称


类型


说明


Now


System.DateTime


当前时间


返回值


方法名称:IncNextInstanceSeqID


方法说明


获得当前新的流程ID,然后下一个流程ID自加一


输入参数


名称


类型


说明


返回值


流水号

方法名称:GetPageSetting(System.String)


方法说明


获得页面的设置


输入参数


名称


类型


说明


PageLocalPath


System.String


页面的地址


返回值


页面设置

方法名称:GetControlSettings(System.String,System.String)


方法说明


获得控件的所有设置


输入参数


名称


类型


说明


PageLocalPath


System.String


页面的地址


ControlID


System.String


空间的ID


返回值


空间的设置

方法名称:UpdateSetting(OThinker.H3.Settings.PageSetting)


方法说明


更新设置


输入参数


名称


类型


说明


Setting


OThinker.H3.Settings.PageSetting


页面设置


返回值


方法名称:GetIntAndInc(System.String,System.Int32)


方法说明


获得一个数据的值,然后对这个值加1


输入参数


名称


类型


说明


SettingName


System.String


设置的名称


InitialValue


System.Int32


初始值


返回值


如果参数为空则返回-1;如果设置不存在,则创建一个并返回InitialValue;否则,返回当前数值,然后对数值加一保存

方法名称:AddBizDbConnectionConfig(OThinker.H3.Settings.BizDbConnectionConfig)


方法说明


添加一个数据库的连接配置


输入参数


名称


类型


说明


Config


OThinker.H3.Settings.BizDbConnectionConfig


配置


返回值


如果添加成功,则返回true;否则返回false

方法名称:GetBizDbConnectionConfig(System.String)


方法说明


获得一个数据库连接配置


输入参数


名称


类型


说明


Code


System.String


配置编码


返回值


数据库连接配置

方法名称:GetBizDbConnectionConfigList


方法说明


获得数据库连接配置的列表


输入参数


名称


类型


说明


返回值


所有的数据库连接配置

方法名称:RemoveBizDbConnectionConfig(System.String)


方法说明


删除一个数据库连接配置,如果正在由事务引用到,则无法删除


输入参数


名称


类型


说明


DbCode


System.String


数据库的编码


返回值


如果数据库连接不存在,或者正在被事务引用,则无法被删除,将返回false;否则返回true

方法名称:UpdateBizDbConnectionConfig(OThinker.H3.Settings.BizDbConnectionConfig)


方法说明


更新一个数据库连接配置


输入参数


名称


类型


说明


Config


OThinker.H3.Settings.BizDbConnectionConfig


连接配置


返回值


如果一数据库连接配置存在,并且编码属性没有被修改,则返回true;否则返回false

方法名称:GetBizDbTableColumns(System.String,System.String)


方法说明


获得特定表的结构


输入参数


名称


类型


说明


DbCode


System.String


数据库编号


TableName


System.String


表名称


返回值


表结构

方法名称:GetBizDbTableNames(System.String)


方法说明


获得业务数据库里的所有数据表名称


输入参数


名称


类型


说明


DbCode


System.String


业务数据库编号


返回值


所有的表名称

方法名称:GetBizDbViewNames(System.String)


方法说明


获得业务数据库里的所有视图名称


输入参数


名称


类型


说明


DbCode


System.String


业务数据库编号


返回值


所有的视图名称

29 类:OThinker.H3.WorkItem.IUrgencyManager

说明:催办管理器

访问入口:this.Engine.UrgencyManager

示例:


this.Engine.UrgencyManager.Urge("催办人ID","流程实例ID","催办内容");

方法名称:Urge(System.String,System.String,System.String)


方法说明


催办


输入参数


名称


类型


说明


Urger


System.String


催办人


InstanceId


System.String


催办的流程实例ID


Content


System.String


催办的内容


返回值


方法名称:GetUrgency(System.String)


方法说明


获得催办信息


输入参数


名称


类型


说明


UrgencyID


System.String


催办记录的ID


返回值


催办的详细信息

30 类:OThinker.H3.Tracking.IUserLogWriter

说明:用户操作日志

访问入口:this.Engine.UserLogWriter

示例:


this.Engine.UserLogWriter.Write(new Tracking.UserLog());

方法名称:Write(OThinker.H3.Tracking.UserLog)


方法说明


写入日志


输入参数


名称


类型


说明


Log


OThinker.H3.Tracking.UserLog


要写入的用户操作日志


返回值


方法名称:OnUserLogInOut(OThinker.H3.Tracking.UserLog[],System.String,System.Int32)


方法说明


当用户登录/出的时候调用该日志接口


输入参数


名称


类型


说明


Logs


OThinker.H3.Tracking.UserLog[]


要写入的日志


ServerName


System.String


服务器名称


OnlineUserCount


System.Int32


在线用户数的数量


返回值


方法名称:ClearPortalOnlineUser(System.String)


方法说明


清空Portal服务器上的在线用户数的记录


输入参数


名称


类型


说明


ServerName


System.String


服务器名称


返回值


31 类:OThinker.H3.WorkflowTemplate.IWorkflowManager

说明:流程模板管理器,用于发布、获得、更新流程模板信息

访问入口:this.Engine.WorkflowManager

示例:


this.Engine.WorkflowManager.GetDefaultWorkflow("流程模板编码");

方法名称:GetDraftTemplate(System.String)


方法说明


获取设计中的流程模板


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


返回值


返回流程模板草稿对象

方法名称:SaveDraftTemplate(System.String,OThinker.H3.WorkflowTemplate.DraftWorkflowTemplate)


方法说明


保存设计中的流程模板


输入参数


名称


类型


说明


UserID


System.String


设计人


DraftWorkflowTemplate


OThinker.H3.WorkflowTemplate.DraftWorkflowTemplate


流程模板草稿对象


返回值


返回操作是否成功

方法名称:RegisterWorkflow(System.String,System.String,System.Boolean)


方法说明


注册一个流程


输入参数


名称


类型


说明


Publisher


System.String


发布这个流程模板的人员


WorkflowCode


System.String


流程模板编码


SetDefaultVersion


System.Boolean


是否设置为默认版本


返回值


返回注册结果

方法名称:GetDefaultWorkflow(System.String)


方法说明


获得默认版本的流程模板


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


返回值


返回已发布的流程模板对象

方法名称:GetDefaultWorkflowHeaders(System.String[])


方法说明


批量获取默认版本的流程模板头信息


输入参数


名称


类型


说明


WorkflowCodes


System.String[]


流程模板编码集合


返回值


获取已发布的流程模板头信息集合

方法名称:GetClause(System.String)


方法说明


获得流程模板族定义


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


返回值


流程模板族

方法名称:GetClausesBySchemaCode(System.String)


方法说明


根据数据模型获取流程族


输入参数


名称


类型


说明


SchemaCode


System.String


返回值

方法名称:GetClausesBySchemaCodes(System.String[])


方法说明


根据数据模型数组批量获取流程族


输入参数


名称


类型


说明


SchemaCodes


System.String[]


流程包编码集合


返回值


返回流程模板运行参数集合

方法名称:RemoveClause(System.String)


方法说明


移除模板族


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


返回值


方法名称:GetPublishedTemplate(System.String,System.Int32)


方法说明


获取发布后的流程模板


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


WorkflowVersion


System.Int32


流程版本号


返回值


返回流程模板对象

方法名称:GetPublishedTemplateHeader(System.String,System.Int32)


方法说明


获取发布后的流程模板头信息


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


WorkflowVersion


System.Int32


流程版本号


返回值


返回流程模板头信息

方法名称:GetPublishedTemplateHeaders(System.String)


方法说明


获取流程模板的所有已发布历史版本集合


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


返回值


返回指定流程模板的所有已发布历史版本集合

方法名称:GetWorkflowVersions(System.String)


方法说明


获得某个流程编码的所有版本号


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


返回值


返回指定流程模板的所有版本号集合

方法名称:GetWorkflowDefaultVersion(System.String)


方法说明


获得某个流程的当前默认版本号


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


返回值


流程模板的当前默认版本号

方法名称:SetWorkflowDefaultVersion(System.String,System.Int32)


方法说明


设置某个流程的默认版本号


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


DefaultVersion


System.Int32


返回值


如果设置成功,则返回0,否则返回错误代码

方法名称:GetWorkflowNewVersion(System.String)


方法说明


获得某个流程的新版本号,这个版本号并不一定能够作为新版本,因为可能获得这个版本的时候其他地方又重新发布了一个新版本


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


返回值


流程模板的下一个版本号

方法名称:SetWorkflowState(System.String,OThinker.H3.WorkflowTemplate.WorkflowState)


方法说明


设置工作流模板的状态


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


State


OThinker.H3.WorkflowTemplate.WorkflowState


流程模板的状态


返回值


如果设置成功则返回0,否则返回错误代码

方法名称:GetWorkflowState(System.String)


方法说明


获得工作流模板的状态


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


返回值


获得流程模板的状态

方法名称:GetWorkflowCount


方法说明


获得工作流模板的数量


输入参数


名称


类型


说明


返回值


流程模板的数量

方法名称:RemoveWorkflowTemplate(System.String,System.Int32)


方法说明


移除已发布的流程模板。这里需要指定具体某一个流程模板。


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


WorkflowVersion


System.Int32


流程模板版本号


返回值


方法名称:GetClauseDisplayName(System.String)


方法说明


获得一个流程模板的显示名称的全名称


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


返回值


流程模板的显示名称

方法名称:GetTemplateDisplayName(System.String,System.Int32)


方法说明


获得一个流程模板的显示名称的全名称


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


WorkflowVersion


System.Int32


流程模板版本号


返回值


流程模板的显示名称

方法名称:UpdateClause(OThinker.H3.WorkflowTemplate.WorkflowClause)


方法说明


更新流程模板族


输入参数


名称


类型


说明


WorkflowClause


OThinker.H3.WorkflowTemplate.WorkflowClause


流程模板运行参数对象


返回值


返回修改是否成功,0:表示成功

方法名称:AddClause(OThinker.H3.WorkflowTemplate.WorkflowClause)


方法说明


添加流程模板族


输入参数


名称


类型


说明


WorkflowClause


OThinker.H3.WorkflowTemplate.WorkflowClause


流程模板运行参数对象


返回值


返回添加是否成功,0:表示成功

方法名称:GetCalendarReferences(System.String)


方法说明


获得哪些流程模板族引用了该工作日历


输入参数


名称


类型


说明


CalendarId


System.String


工作日历ID,不区分大小写


返回值


引用该工作日历的流程模板族

方法名称:GetParentNodesByWorkflowCodes(System.Collections.Generic.List{System.String})


方法说明


根据流程编码获取所有的父节点


输入参数


名称


类型


说明


WorkflowCodes


System.Collections.Generic.List{System.String}


流程模板编码集合


返回值


返回所有指定流程包的父节点

32 类:OThinker.H3.Calendar.IWorkingCalendarManager

说明:工作日历接口方法

访问入口:this.Engine.WorkingCalendarManager

示例:


this.Engine.WorkingCalendarManager.GetCalendar("工作日历ID");

方法名称:GetCalendar(System.String)


方法说明


获取日历缓存数据


输入参数


名称


类型


说明


CalendarId


System.String


返回值

方法名称:GetCalendarList


方法说明


获取所有的日期类型


输入参数


名称


类型


说明


返回值

方法名称:GetWorkingDays(System.String)


方法说明


获取日历的日期信息


输入参数


名称


类型


说明


CalendarId


System.String


日历ID


返回值

方法名称:GetWorkingDaysBySpan(System.String,System.DateTime,System.DateTime)


方法说明


获取日历的日期信息


输入参数


名称


类型


说明


CalendarId


System.String


日历ID


StartDate


System.DateTime


EndDate


System.DateTime


返回值

方法名称:AddCalendar(OThinker.H3.Calendar.WorkingCalendar,System.Collections.Generic.Dictionary{System.String,System.Boolean},System.Collections.Generic.List{OThinker.H3.Calendar.WorkingTimeSpan})


方法说明


初始化工作日历


输入参数


名称


类型


说明


Calendar


OThinker.H3.Calendar.WorkingCalendar


日期类型实体类


WeekWorkingDayTable


System.Collections.Generic.Dictionary{System.String


是否工作日期


WorkingTimeSpans


System.Boolean}


工作时间


返回值


方法名称:UpdateCalendar(OThinker.H3.Calendar.WorkingCalendar)


方法说明


更新工作日历,不更新日期和工作时间


输入参数


名称


类型


说明


Calendar


OThinker.H3.Calendar.WorkingCalendar


返回值


方法名称:UpdateCalendarRule(System.String,System.DateTime,System.DateTime,System.Collections.Generic.Dictionary{System.String,System.Boolean},System.Collections.Generic.List{OThinker.H3.Calendar.WorkingTimeSpan})


方法说明


更新工作日历,更新日期和工作时间,每次更新时,只设置当前日期的规则,不删除旧日期规则


输入参数


名称


类型


说明


CalendarId


System.String


日历的ID


StartDate


System.DateTime


要更新的日期的开始日期,如果超过范围会抛出ArgumentOutOfRangeException的异常


EndDate


System.DateTime


要更新的日期的结束日期,如果超过范围会抛出ArgumentOutOfRangeException的异常


DefaultWorkingDayTable


System.Collections.Generic.Dictionary{System.String


是否工作日期


WorkingTimeSpans


System.Boolean}


工作时间


返回值


方法名称:GetWorkingDay(System.String,System.DateTime)


方法说明


获取日期信息


输入参数


名称


类型


说明


CalendarId


System.String


Date


System.DateTime


返回值

方法名称:UpdateWorkingDay(OThinker.H3.Calendar.WorkingDay)


方法说明


保存日期


输入参数


名称


类型


说明


WorkingDay


OThinker.H3.Calendar.WorkingDay


返回值

方法名称:GetExceptionalDays(System.String,System.DateTime,System.DateTime)


方法说明


查询例外日期


输入参数


名称


类型


说明


CalendarId


System.String


日历ID


FromTime


System.DateTime


开始日期


ToTime


System.DateTime


结束日期


返回值

方法名称:RemoveCalendar(System.String)


方法说明


删除日历


输入参数


名称


类型


说明


CalendarId


System.String


日历ID


返回值

方法名称:ExistsDefaultCalendar


方法说明


获取是否存在默认日历


输入参数


名称


类型


说明


返回值

方法名称:GetOrgCalendar(System.String)


方法说明


获得某个组织结构对应的工作日历


输入参数


名称


类型


说明


OrgId


System.String


组织结构ID


返回值


工作日历

方法名称:GetUsedTimeByCompanyCalendar(System.DateTime,System.DateTime)


方法说明


获取集团公司工作日历耗费时间


输入参数


名称


类型


说明


StartTime


System.DateTime


开始时间


EndTime


System.DateTime


结束时间


返回值

方法名称:GetUsedTimeByOrgCalendar(System.String,System.DateTime,System.DateTime)


方法说明


获取组织工作日历耗费时间


输入参数


名称


类型


说明


OrgId


System.String


当前组织


StartTime


System.DateTime


开始时间


EndTime


System.DateTime


结束时间


返回值

方法名称:GetUsedTimeByWorkflowCalendar(System.String,System.DateTime,System.DateTime)


方法说明


获取流程模板维度工作日历耗费时间


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


StartTime


System.DateTime


开始时间


EndTime


System.DateTime


结束时间


返回值

方法名称:GetUsedTimeByCalendar(System.String,System.DateTime,System.DateTime)


方法说明


获取用户自定义日历的工作时间


输入参数


名称


类型


说明


CalendarId


System.String


自定义日历的ID


StartTime


System.DateTime


开始时间


EndTime


System.DateTime


结束时间


返回值

方法名称:GetDelayedTimeByCompanyCalendar(System.DateTime,System.TimeSpan)


方法说明


获取集团公司日历的某个时间段后的工作时间


输入参数


名称


类型


说明


StartTime


System.DateTime


输入时间


Delay


System.TimeSpan


延后的时间


返回值


延迟时间段后的工作时间

方法名称:GetDelayedTimeByOrgCalendar(System.String,System.DateTime,System.TimeSpan)


方法说明


获取当前组织的某个时间段后的工作时间


输入参数


名称


类型


说明


OrgId


System.String


组织ID


StartTime


System.DateTime


输入时间


Delay


System.TimeSpan


延迟时间段


返回值


延迟时间段后的工作时间

方法名称:GetDelayedTimeByWorkflowCalendar(System.String,System.DateTime,System.TimeSpan)


方法说明


获取流程模板日历的某个时间段后的工作时间


输入参数


名称


类型


说明


WorkflowCode


System.String


流程模板编码


StartTime


System.DateTime


输入时间


Delay


System.TimeSpan


延迟时间段


返回值


延迟时间段后的工作时间

方法名称:GetDelayedTimeByCalendar(System.String,System.DateTime,System.TimeSpan)


方法说明


获取用户自定义日历某个时间段后的工作时间


输入参数


名称


类型


说明


CalendarId


System.String


日历ID


StartTime


System.DateTime


输入时间


Delay


System.TimeSpan


延迟时间段


返回值


延迟时间段后的工作时间

33 类:OThinker.H3.WorkItem.IWorkItemManager

说明:工作项管理器

访问入口:this.Engine.WorkItemManager

示例:


this.Engine.WorkItemManager.GetWorkItem("工作任务ID");

方法名称:OThinker.H3.Configs.License


方法说明


构造函数


输入参数


名称


类型


说明


返回值


方法名称:OThinker.Licenses.LicenseException


方法说明


构造函数


输入参数


名称


类型


说明


返回值


方法名称:OThinker.Licenses.LicenseException(System.String)


方法说明


构造函数


输入参数


名称


类型


说明


Message


System.String


返回值


方法名称:OThinker.H3.Configs.LicenseProvider


方法说明


构造函数


输入参数


名称


类型


说明


返回值


方法名称:OThinker.H3.Daemons.Daemon(OThinker.H3.IEngine)


方法说明


构造函数


输入参数


名称


类型


说明


Engine


OThinker.H3.IEngine


返回值


方法名称:OThinker.H3.Data.PrimitiveMetadata


方法说明


从数据库中读取


输入参数


名称


类型


说明


返回值


方法名称:OThinker.H3.Data.PrimitiveMetadata(System.String,System.String,System.String)


方法说明


创建的时候使用


输入参数


名称


类型


说明


ItemName


System.String


数据的名称


Description


System.String


数据的描述


Value


System.String


数据的值


返回值


方法名称:OThinker.H3.Sheet.BizSheet


方法说明


构造函数


输入参数


名称


类型


说明


返回值


方法名称:OThinker.H3.Sheet.BizSheet(System.String,System.String,System.String,OThinker.H3.Sheet.SheetType,System.String,System.String)


方法说明


新建的构造函数


输入参数


名称


类型


说明


BizObjectSchemaCode


System.String


数据模型编码


SheetCode


System.String


表单编码


SheetName


System.String


表单名称


SheetType


OThinker.H3.Sheet.SheetType


表单类型


SheetAddress


System.String


如果是自定义表单的话,这里记录表单的URL地址,可以是相对地址


MobileSheetAddress


System.String


如果是自定义表单的话,这里记录表单的移动终端URL地址,可以是相对地址


返回值


方法名称:OThinker.H3.WorkflowTemplate.ActivityConfig


方法说明


从数据库反序列化的构造函数


输入参数


名称


类型


说明


返回值


方法名称:AddWorkItem(OThinker.H3.WorkItem.WorkItem)


方法说明


为某个用户添加一项工作。 1、这里需要将该作业直接添加到数据库中,否则无法实时地检索出来 2、添加一个作业的时候,需要在这里设置他的被添加时间,而不能以创建的时间为准,因为创建的时间可能来自于其他服务器或者客户端,这就有可能涉及时区的问题,如果以外部的时间为准就无法统一了。 3、如果WorkItem是发起活动的任务的话,那么不会调用委托关系。


输入参数


名称


类型


说明


WorkItem


OThinker.H3.WorkItem.WorkItem


要添加的工作项


返回值


新添加的对象的ID

方法名称:AddWorkItems(OThinker.H3.WorkItem.WorkItem[])


方法说明


添加一组用户作业,这样可以保证事务化,以防有的作业刚刚添加就被完成了。


输入参数


名称


类型


说明


WorkItems


OThinker.H3.WorkItem.WorkItem[]


新增的工作项


返回值


添加的工作项的ID

方法名称:InstanceFinished(System.String)


方法说明


流程完成的时候调用。取消掉非传阅类的所有未完成工作项


输入参数


名称


类型


说明


InstanceId


System.String


流程ID


返回值


返回取消的数量

方法名称:InstanceCanceld(System.String)


方法说明


流程取消的时候调用。取消掉所有未完成的工作项。


输入参数


名称


类型


说明


InstanceId


System.String


流程ID


返回值


返回取消的数量

方法名称:ActivityActivated(System.String,System.Int64)


方法说明


活动被取回的时候调用


输入参数


名称


类型


说明


InstanceId


System.String


流程ID


TokenID


System.Int64


步骤ID


返回值


返回取消的数量

方法名称:ActivityFinished(System.String,System.Int64)


方法说明


活动完成的时候调用。取消掉非传阅类的所有未完成工作项。


输入参数


名称


类型


说明


InstanceId


System.String


流程ID


TokenID


System.Int64


步骤ID


返回值


返回取消的数量

方法名称:ActivityCanceled(System.String,System.Int64)


方法说明


活动被取消的时候调用。取消掉所有未完成的工作项。


输入参数


名称


类型


说明


InstanceId


System.String


流程ID


TokenID


System.Int64


步骤ID


返回值


返回取消的数量

方法名称:CancelWorkItem(System.String,System.Boolean)


方法说明


取消一个工作项。相应的征询意见的工作项也会被取消。


输入参数


名称


类型


说明


WorkItemID


System.String


工作项ID


Force


System.Boolean


是否强制取消。强制取消意味着,如果工作项处于正在工作的状态下也执行取消操作


返回值


执行结果

方法名称:ActivityAdjusted(System.String,System.Int64,System.String[])


方法说明


当一个活动被调整活动的时候,取消一组工作项,同时重置过去的锁


输入参数


名称


类型


说明


InstanceId


System.String


流程ID


TokenId


System.Int64


步骤ID


WorkItemsToBeCanceled


System.String[]


工作项ID


返回值


方法名称:GetWorkItem(System.String)


方法说明


根据作业的ID获得工作项


输入参数


名称


类型


说明


WorkItemID


System.String


工作项ID


返回值


获得的工作项

方法名称:ForwardWorkItem(System.String,System.String)


方法说明


委托一个任务给某人,不能创建新任务,否则引用这些任务的地方无法取消这个任务


输入参数


名称


类型


说明


WorkItemID


System.String


工作项ID


Participant


System.String


接收人


返回值


执行结果

方法名称:ActivateWorkItem(System.String)


方法说明


将工作项重新从取消状态激活为等待状态


输入参数


名称


类型


说明


WorkItemID


System.String


工作项ID


返回值


执行结果

方法名称:DoWorkItem(System.String)


方法说明


开始工作一个作业


输入参数


名称


类型


说明


WorkItemID


System.String


工作项ID


返回值


执行结果

方法名称:FinishWorkItem(System.String,System.String,OThinker.H3.WorkItem.AccessPoint,System.String,System.String,OThinker.Data.BoolMatchValue,System.String,System.String,OThinker.H3.WorkItem.ActionEventType,System.Int32)


方法说明


完成一个作业


输入参数


名称


类型


说明


WorkItemID


System.String


工作项ID


Finisher


System.String


提交人员


FinishAccessPoint


OThinker.H3.WorkItem.AccessPoint


提交人员的接入方式


ParticipateGroup


System.String


提交人员使用的组


ParticipatePost


System.String


提交人员使用的岗位


Approval


OThinker.Data.BoolMatchValue


审批结果


Comment


System.String


审批意见


ActionName


System.String


操作名称


ActionEventType


OThinker.H3.WorkItem.ActionEventType


操作的事件的类型:OThinker.H3.WorkItem.ActionEventType


ActionButtonType


System.Int32


操作的按钮的类型:OThinker.H3.WorkSheet.SheetButtonType,保存:2,驳回:10,提交:11


返回值


执行结果

方法名称:UpdateUrged(System.String,System.Boolean)


方法说明


标志一个工作项被催办过


输入参数


名称


类型


说明


WorkItemId


System.String


工作项ID


Urged


System.Boolean


是否被催办过


返回值


执行结果

方法名称:ConsultWorkItem(System.String,System.String,System.String[],System.String,System.Boolean)


方法说明


将某个任务发送给多个人以征询意见,这个操作也需要锁定,否则在发送任务完毕前,源任务就已经完成了。请注意:对于以任何形式参与过该步骤的人员,将不会发送征询意见的任务。比如:如果用户A已经参与了该活动,现在B向A发出征询意见的请求,那么将不会创建该征询意见的工作项。


输入参数


名称


类型


说明


Creator


System.String


申请征询意见的人


WorkItemID


System.String


源工作项ID


Consultants


System.String[]


接收征询意见的人员


WorkItemDisplayName


System.String


征询意见时创建的新任务的显示名称


MonitorConsultant


System.Boolean


监听顾问的完成/取消事件


返回值


新征询意见的任务的ID

方法名称:Consult(System.String,System.Int64,System.String[],System.String)


方法说明


将某个任务发送给多个人以征询意见,这个操作也需要锁定,否则在发送任务完毕前,源任务就已经完成了。该方法是提供给系统本身使用的,用于在某个活动开始的时候,执行征询意见,所以不需要指定源工作项,也不需要制定请求人。


输入参数


名称


类型


说明


InstanceId


System.String


流程ID


TokenId


System.Int64


步骤


Consultants


System.String[]


接收征询意见的人员


WorkItemDisplayName


System.String


征询意见时创建的新任务的显示名称


返回值


新征询意见的任务的ID

方法名称:Circulate(System.String,System.String,System.String[],System.Boolean,System.String)


方法说明


将某个任务传阅给多个人,这个操作也需要锁定,否则在发送任务完毕前,源任务就已经完成了


输入参数


名称


类型


说明


Creator


System.String


请求传阅的人员


WorkItemID


System.String


工作项ID


Receivers


System.String[]


接收传阅的人员


Recirculatable


System.Boolean


是否允许再转传阅


WorkItemDisplayName


System.String


传阅时创建的新任务的显示名称


返回值


新任务的ID

方法名称:AssistWorkItem(System.String,System.String,System.String[],System.String,System.Boolean,OThinker.H3.WorkItem.ReturnToType)


方法说明


协办某个工作项


输入参数


名称


类型


说明


Creator


System.String


要协办的人


WorkItemId


System.String


要协办的工作项


Assistants


System.String[]


协办者


WorkItemDisplayName


System.String


工作项名称


MonitorConsultant


System.Boolean


是否监听处理人完成/取消的事件


ReturnTo


OThinker.H3.WorkItem.ReturnToType


指定:任务完成后,返回给哪个任务。true表示返回自己,false表示返回给源任务。


返回值


协办工作项的ID

方法名称:Assist(System.String,System.Int64,System.String[],System.String)


方法说明


创建协助工作项。由系统本身调用,不需要指定源协办工作项,也不需要制定创建人。请注意:对于以任何形式参与过该步骤的人员,将不会发送征询意见的任务。比如:如果用户A已经参与了该活动,现在B向A发出征询意见的请求,那么将不会创建该征询意见的工作项。


输入参数


名称


类型


说明


InstanceId


System.String


流程ID


TokenId


System.Int64


步骤


Assistants


System.String[]


协办者


WorkItemDisplayName


System.String


工作项名称


返回值


新创建的工作项ID

方法名称:UpdatePriority(System.String,OThinker.H3.Instance.PriorityType)


方法说明


更新工作项的优先级属性


输入参数


名称


类型


说明


WorkItemID


System.String


工作项ID


Priority


OThinker.H3.Instance.PriorityType


优先级


返回值


执行结果

方法名称:Transfer(System.String,System.String)


方法说明


转移工作项


输入参数


名称


类型


说明


WorkItemID


System.String


工作项ID


Receiptor


System.String


接收转移的人员


返回值


执行结果

方法名称:SetColor(System.String,System.Int32)


方法说明


设置显示颜色


输入参数


名称


类型


说明


WorkItemID


System.String


工作项ID


ColorArgb


System.Int32


颜色


返回值


方法名称:UpdateDisplayName(System.String,System.String)


方法说明


更新工作项的显示名称


输入参数


名称


类型


说明


WorkItemID


System.String


工作项ID


DisplayName


System.String


显示名称


返回值


执行结果

方法名称:LockActivity(System.String,System.String,System.Boolean)


方法说明


锁定流程


输入参数


名称


类型


说明


LockedByWorkItemId


System.String


请求锁定的工作项的ID


LockedBy


System.String


请求锁定的用户ID


CancelOtherWorkItems


System.Boolean


是否要取消掉其他的工作项。如果为false,则不取消任何工作项,否则取消掉除“请求锁定的工作项”之外的所有工作项


返回值


锁结果

方法名称:DropLock(System.String,System.Boolean)


方法说明


放弃自己的锁定。用户可以显示解锁,也可以在用户提交或者取消后系统自动解锁


输入参数


名称


类型


说明


LockedByWorkItemId


System.String


请求锁定的工作项


ActivateOtherWorkItems


System.Boolean


是否重新激活曾经被自己取消的工作项


返回值


锁结果

方法名称:GetLocker(System.String,System.Int64)


方法说明


获得锁定的人员


输入参数


名称


类型


说明


InstanceId


System.String


流程ID


TokenId


System.Int64


步骤ID


返回值


锁定该步骤的人员

34 类:OThinker.H3.EventHandlers.IMessageEventHandler

说明:流程引擎Message处理事件接口。

部署方法:创建一个新的类库,引用H3Cloud程序集,将类继承至 IMessageEventHandler,编译成程序集后发布至H3Cloud安装目录 Server/Adapters目录下。

示例程序:


using System;

using System.Data;

using System.Configuration;

using System.Collections;

namespace OThinker.Demo

{

/// <summary>

/// EventHandler处理程序

/// 该程序与后台消息同步执行

/// </summary>

public class MessageEventHandler : OThinker.H3.EventHandlers.IMessageEventHandler

{

/// <summary>

/// 消息处理完成事件

/// </summary>

/// <param name="InstanceContext">流程实例名称</param>

/// <param name="Message">系统消息</param>

/// <param name="DisposalType">处理结果</param>

public void OnInstanceMessageDisposed(H3.Instance.InstanceContext InstanceContext,

H3.Messages.Message Message,

H3.Messages.DisposalType DisposalType)

{

// TODO:这里增加逻辑代码,在系统每次处理消息完成后同步触发

}

}

}

35 类:OThinker.H3.EventHandlers.IEngineEventHandler`1

说明:引擎级对象的事件处理接口,比如:新建WorkItem事件等。注意:这里的事件都是滞后的事件,并不是实时的事件,比如:流程实例创建事件,是在新建的流程实例保存进数据库中才被触发的,而且是异步触发的。如果事件处理程序耗用大量的CPU,那么会影响引擎的性能;如果事件处理程序抛出异常,那么引擎会忽略掉这个异常。

部署方法:创建一个新的类库,引用H3Cloud程序集,将类继承至 IMessageEventHandler,编译成程序集后发布至H3Cloud安装目录 Server/Adapters目录下。

示例程序:


using System;

using System.Data;

using OThinker.H3;

namespace OThinker.Demo

{

/// <summary>

/// 监控流程实例对象的增加、删除、修改事件

/// </summary>

public class WorkItemHandler : OThinker.H3.EventHandlers.IEngineEventHandler<OThinker.H3.Instance.InstanceContext>

{

/// <summary>

/// 流程实例创建事件

/// </summary>

/// <param name="Engine">引擎实例对象</param>

/// <param name="Obj">流程实例对象</param>

public void OnCreated(IEngine Engine, H3.Instance.InstanceContext Obj)

{

// TODO:你的逻辑

}

/// <summary>

/// 流程实例删除事件

/// </summary>

/// <param name="Engine">引擎实例对象</param>

/// <param name="ObjId">流程实例ID</param>

public void OnRemoved(IEngine Engine, string ObjId)

{

// TODO:你的逻辑

}

/// <summary>

/// 流程实例更新事件

/// </summary>

/// <param name="Engine">引擎实例对象</param>

/// <param name="Obj">流程实例对象</param>

public void OnUpdated(IEngine Engine, H3.Instance.InstanceContext Obj)

{

// TODO:你的逻辑

}

}

}

 

方法名称:OnCreated(OThinker.H3.IEngine,`0)


方法说明


当对象被创建的时候,调用该接口的事件处理程序


输入参数


名称


类型


说明


Engine


OThinker.H3.IEngine


流程引擎接口


Obj


`0


流程实例的上下文


返回值


方法名称:OnUpdated(OThinker.H3.IEngine,`0)


方法说明


当对象被变更的时候,调用该接口的事件处理程序


输入参数


名称


类型


说明


Engine


OThinker.H3.IEngine


流程引擎接口


Obj


`0


流程实例的上下文


返回值


方法名称:OnRemoved(OThinker.H3.IEngine,System.String)


方法说明


当对象被删除的时候,调用该接口的事件处理程序


输入参数


名称


类型


说明


Engine


OThinker.H3.IEngine


流程引擎接口


ObjId


System.String


对象的ID


返回值


36 类:OThinker.H3.EventHandlers.INotificationEventHandler

说明:消息通知 EventHandler 接口

37 类:OThinker.H3.EventHandlers.IOrganizationEventHandler

说明:组织的事件处理接口,注意:这里的事件都是滞后的事件,并不是实时的事件,比如:组织创建事件,是在新建的组织保存进数据库中才被触发的,而且是异步触发的。如果事件处理程序耗用大量的CPU,那么会影响引擎的性能;如果事件处理程序抛出异常,那么引擎会忽略掉这个异常。

38 类:OThinker.H3.EventHandlers.IInstanceEventHandler

说明:流程实例的事件处理接口,注意:这里的事件都是滞后的事件,并不是实时的事件,比如:流程实例创建事件,是在新建的流程实例保存进数据库中才被触发的,而且是异步触发的。如果事件处理程序耗用大量的CPU,那么会影响引擎的性能;如果事件处理程序抛出异常,那么引擎会忽略掉这个异常。

39 类:OThinker.H3.EventHandlers.IWorkItemEventHandler

说明:工作项的事件处理接口,注意:这里的事件都是滞后的事件,并不是实时的事件,比如:工作项创建事件,是在新建的工作项保存进数据库中才被触发的,而且是异步触发的。如果事件处理程序耗用大量的CPU,那么会影响引擎的性能;如果事件处理程序抛出异常,那么引擎会忽略掉这个异常。

部署方法:创建一个新的类库,引用H3Cloud程序集,将类继承至 IMessageEventHandler,编译成程序集后发布至H3Cloud安装目录 Server/Adapters目录下。

示例:


using System;

using System.Data;

namespace OThinker.Demo

{

/// <summary>

/// 工作任务触发事件

/// </summary>

public class WorkItemHandler : OThinker.H3.EventHandlers.IWorkItemEventHandler

{

/// <summary>

/// 创建工作任务事件

/// </summary>

/// <param name="Engine">引擎实例对象</param>

/// <param name="Obj">工作任务对象</param>

public void OnCreated(IEngine Engine, WorkItem.WorkItem Obj)

{

// TODO:程序逻辑

}

/// <summary>

/// 移除工作任务事件

/// </summary>

/// <param name="Engine">引擎实例对象</param>

/// <param name="ObjId">工作任务ID</param>

public void OnRemoved(IEngine Engine, string ObjId)

{

// TODO:程序逻辑

}

/// <summary>

/// 工作任务更新事件

/// </summary>

/// <param name="Engine">引擎实例对象</param>

/// <param name="Obj">工作任务对象</param>

public void OnUpdated(IEngine Engine, WorkItem.WorkItem Obj)

{

// TODO:程序逻辑

}

}

}

40 常用方法示例

常用流程示例包含启动流程、提交、驳回、结束流程、激活活动、取消活动、取回、设置流程数据项的值等方法。


using System;

using System.Collections.Generic;

using System.Web;

using System.Web.Services;

using System.Data;

namespace OThinker.H3.Portal

{

/// <summary>

/// 流程实例操作相关接口

/// </summary>

[WebService(Namespace = "http://tempuri.org/")]

[WebServiceBinding(ConformsTo = WsiProfiles.None)]

//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。

// [System.Web.Script.Services.ScriptService]

public class BPMService : System.Web.Services.WebService

{

/// <summary>

/// 构造函数

/// </summary>

public BPMService()

{

//如果使用设计的组件,请取消注释以下行

//InitializeComponent();

}

private IEngine _Engine = null;

/// <summary>

/// 流程引擎的接口,该接口会比this.Engine的方式更快,因为其中使用了缓存

/// </summary>

public IEngine Engine

{

get

{

if (OThinker.H3.WorkSheet.AppConfig.ConnectionMode == ConnectionStringParser.ConnectionMode.Mono)

{

return OThinker.H3.WorkSheet.AppUtility.Engine;

}

return _Engine;

}

set

{

_Engine = value;

}

}

/// <summary>

/// 查询对象

/// </summary>

protected Query Query

{

get

{

return this.Engine.Query;

}

}

/// <summary>

/// 获取用户的待办任务总数

/// </summary>

/// <returns></returns>

[WebMethod(Description = "获取用户未完成的任务总数")]

[System.Web.Services.Protocols.SoapHeader("authentication")]

public int GetUserUnfinishedWorkItemCount()

{

ValidateSoapHeader();

int recordCounts;

// 构造查询用户帐号的条件

string[] conditions = Query.GetWorkItemConditions(

UserValidator.UserID,

true,

H3.WorkItem.WorkItemState.Unfinished,

H3.WorkItem.WorkItemType.Unspecified,

OThinker.Data.BoolMatchValue.Unspecified,

OThinker.Data.BoolMatchValue.Unspecified);

// 获取总记录数,计算页码

recordCounts = this.Engine.Query.CountWorkItem(conditions);

return recordCounts;

}

/// <summary>

/// 获取用户的已办任务总数

/// </summary>

/// <returns></returns>

[WebMethod(Description = "获取用户已完成的任务总数")]

[System.Web.Services.Protocols.SoapHeader("authentication")]

public int GetUserFinishedWorkItemCount()

{

ValidateSoapHeader();

int recordCounts;

// 构造查询用户帐号的条件

string[] conditions = Query.GetWorkItemConditions(

UserValidator.UserID,

true,

H3.WorkItem.WorkItemState.Finished,

H3.WorkItem.WorkItemType.Unspecified,

OThinker.Data.BoolMatchValue.Unspecified,

OThinker.Data.BoolMatchValue.Unspecified);

// 获取总记录数,计算页码

recordCounts = this.Engine.Query.CountWorkItem(conditions);

return recordCounts;

}

/// <summary>

/// 提交(已阅)工作任务

/// </summary>

/// <param name="workItemId"></param>

/// <param name="commentText"></param>

/// <returns></returns>

[WebMethod(Description = "提交(已阅)工作任务")]

[System.Web.Services.Protocols.SoapHeader("authentication")]

public bool SubmitWorkItem(string workItemId, string commentText)

{

ValidateSoapHeader();

// 获取操作的用户

WorkItem.WorkItem item = this.Engine.WorkItemManager.GetWorkItem(workItemId);

SubmitItem(workItemId, OThinker.Data.BoolMatchValue.True, commentText, UserValidator.UserID);

return true;

}

/// <summary>

/// 驳回工作任务

/// </summary>

/// <param name="workItemId"></param>

/// <param name="commentText"></param>

/// <returns></returns>

[WebMethod(Description = "驳回工作任务")]

[System.Web.Services.Protocols.SoapHeader("authentication")]

public bool ReturnWorkItem(string workItemId, string commentText)

{

ValidateSoapHeader();

// 获取操作的用户

WorkItem.WorkItem item = this.Engine.WorkItemManager.GetWorkItem(workItemId);

ReturnItem(UserValidator.UserID, workItemId, commentText);

return true;

}

/// <summary>

/// 结束流程

/// </summary>

/// <param name="instanceId">流程实例ID</param>

/// <returns></returns>

[WebMethod(Description = "强制结束流程")]

[System.Web.Services.Protocols.SoapHeader("authentication")]

public bool FinishInstance(string instanceId)

{

ValidateSoapHeader();

// 获取操作的用户

Instance.InstanceContext context = this.Engine.InstanceManager.GetInstanceContext(instanceId);

if (context == null) return false;

WorkflowTemplate.PublishedWorkflowTemplate workflow = this.Engine.WorkflowManager.GetDefaultWorkflow(context.WorkflowCode);

Messages.ActivateActivityMessage activateMessage = new Messages.ActivateActivityMessage(

Messages.MessageEmergencyType.High,

instanceId,

workflow.EndActivityCode,

OThinker.H3.Instance.Token.UnspecifiedID,

null,

null,

false,

WorkItem.ActionEventType.Adjust

);

this.Engine.InstanceManager.SendMessage(activateMessage);

return true;

}

/// <summary>

/// 激活流程

/// </summary>

/// <param name="instanceId">流程实例ID</param>

/// <returns></returns>

[WebMethod(Description = "激活流程")]

[System.Web.Services.Protocols.SoapHeader("authentication")]

public bool ActiveInstance(string instanceId)

{

ValidateSoapHeader();

// 获取操作的用户

OThinker.H3.Messages.ActivateInstanceMessage activateMessage = new OThinker.H3.Messages.ActivateInstanceMessage(instanceId);

this.Engine.InstanceManager.SendMessage(activateMessage);

return true;

}

/// <summary>

/// 激活指定的活动节点

/// </summary>

/// <param name="instanceId">流程实例ID</param>

/// <param name="activityCode">活动节点</param>

/// <param name="participants">活动参与者,可以指定参与者,如果为空那么取流程默认配置</param>

/// <returns></returns>

[WebMethod(Description = "激活指定的活动节点")]

[System.Web.Services.Protocols.SoapHeader("authentication")]

public bool ActiveToken(string instanceId, string activityCode, string[] participants)

{

ValidateSoapHeader();

// 准备触发后面Activity的消息

OThinker.H3.Messages.ActivateActivityMessage activateMessage

= new OThinker.H3.Messages.ActivateActivityMessage(

OThinker.H3.Messages.MessageEmergencyType.Normal,

instanceId,

activityCode,

OThinker.H3.Instance.Token.UnspecifiedID,

participants,

null,

false,

H3.WorkItem.ActionEventType.Adjust);

this.Engine.InstanceManager.SendMessage(activateMessage);

return true;

}

/// <summary>

/// 取消指定的活动节点

/// </summary>

/// <param name="instanceId">流程实例ID</param>

/// <param name="activityCode">活动节点</param>

/// <returns></returns>

[WebMethod(Description = "取消指定的活动节点")]

[System.Web.Services.Protocols.SoapHeader("authentication")]

public bool CancelToken(string instanceId, string activityCode)

{

ValidateSoapHeader();

// 准备触发后面Activity的消息

OThinker.H3.Messages.CancelActivityMessage cancelMessage

= new Messages.CancelActivityMessage(Messages.MessageEmergencyType.Normal,

instanceId,

activityCode,

false);

this.Engine.InstanceManager.SendMessage(cancelMessage);

return true;

}

/// <summary>

/// 取回工作任务

/// </summary>

/// <param name="workitemId">工作任务ID</param>

/// <returns></returns>

[WebMethod(Description = "取回工作任务")]

[System.Web.Services.Protocols.SoapHeader("authentication")]

public bool RetrieveWorkItem(string workitemId)

{

ValidateSoapHeader();

//获取工作项信息

OThinker.H3.WorkItem.WorkItem workItem = this.Engine.WorkItemManager.GetWorkItem(workitemId);

// 检查是否能够取回

if (workItem == null) return false;

OThinker.H3.Instance.InstanceContext context = this.Engine.InstanceManager.GetInstanceContext(workItem.InstanceId);

// 获得当前的Token是否存在多个分支

OThinker.H3.Instance.IToken currentToken = context.GetToken(workItem.TokenId);

if (currentToken == null) return false;

// 获得后继的Token

int[] postTokenIds = context.GetPostTokens(workItem.TokenId);

// 发送回退消息

if (postTokenIds == null || postTokenIds.Length == 0) return false;

else if (postTokenIds.Length > 1) return false;

int postTokenId = postTokenIds[0];

OThinker.H3.Instance.IToken postToken = context.GetToken(postTokenId);

if (!postToken.Retrievable) return false;

// 具备取回的条件

// 记录操作日志

//无此用户

OThinker.H3.WorkflowTemplate.PublishedWorkflowTemplateHeader worflowTemplate = this.Engine.WorkflowManager.GetPublishedTemplateHeader(workItem.WorkflowCode, workItem.WorkflowVersion);

// 记录操作用户ID

OThinker.H3.Tracking.UserLog log = new OThinker.H3.Tracking.UserLog(

Tracking.UserLogType.Retrieve,

UserValidator.UserID,

workItem.BizObjectId,

worflowTemplate.BizObjectSchemaCode,

workItem.InstanceId,

workItem.WorkItemID,

workItem.DisplayName,

null,

null,

null,

null);

this.Engine.UserLogWriter.Write(log);

// 发送取回消息

OThinker.H3.Messages.CancelActivityMessage rollback

= new OThinker.H3.Messages.CancelActivityMessage(

OThinker.H3.Messages.MessageEmergencyType.Normal,

workItem.InstanceId,

postToken.Activity,

true);

this.Engine.InstanceManager.SendMessage(rollback);

return true;

}

/// <summary>

/// 启动H3流程实例,设置主键数据项的值(私有云接口)

/// </summary>

/// <param name="workflowCode"></param>

/// <param name="userAlias"></param>

/// <param name="finishStart"></param>

/// <param name="keyName"></param>

/// <param name="keyValue"></param>

/// <returns></returns>

[WebMethod(Description = "启动H3流程实例,设置主键数据项的值")]

public BPMServiceResult StartWorkflowWithKey(

string workflowCode,

string userAlias,

bool finishStart,

string keyName,

string keyValue)

{

List<DataItemParam> paramValues = new List<DataItemParam>();

if (!string.IsNullOrEmpty(keyName))

{

paramValues.Add(new DataItemParam()

{

ItemName = keyName,

ItemValue = keyValue

});

}

return startWorkflow(workflowCode, userAlias, finishStart, paramValues);

}

/// <summary>

/// 启动H3流程实例

/// </summary>

/// <param name="workflowCode">流程模板编码</param>

/// <param name="userCode">启动流程的用户编码</param>

/// <param name="finishStart">是否结束第一个活动</param>

/// <param name="paramValues">流程实例启动初始化数据项集合</param>

/// <returns></returns>

[System.Web.Services.Protocols.SoapHeader("authentication")]

[WebMethod(Description = "启动H3流程实例")]

public BPMServiceResult StartWorkflow(

string workflowCode,

string userCode,

bool finishStart,

List<DataItemParam> paramValues)

{

ValidateSoapHeader();

return startWorkflow(workflowCode, userCode, finishStart, paramValues);

}

/// <summary>

/// 设置单个流程数据项的值

/// </summary>

/// <param name="bizObjectSchemaCode"></param>

/// <param name="bizObjectId"></param>

/// <param name="keyName"></param>

/// <param name="keyValue"></param>

/// <returns></returns>

[WebMethod(Description = "设置单个流程数据项的值")]

[System.Web.Services.Protocols.SoapHeader("authentication")]

public bool SetItemValue(string bizObjectSchemaCode, string bizObjectId, string keyName, object keyValue)

{

ValidateSoapHeader();

List<DataItemParam> keyValues = new List<DataItemParam>();

keyValues.Add(new DataItemParam()

{

ItemName = keyName,

ItemValue = keyValue

});

return SetItemValues(bizObjectSchemaCode, bizObjectId, keyValues);

}

/// <summary>

/// 设置批量流程数据项的值

/// </summary>

/// <param name="bizObjectSchemaCode"></param>

/// <param name="bizObjectId"></param>

/// <param name="keyValues"></param>

/// <returns></returns>

[WebMethod(Description = "设置批量流程数据项的值")]

[System.Web.Services.Protocols.SoapHeader("authentication")]

public bool SetItemValues(string bizObjectSchemaCode, string bizObjectId, List<DataItemParam> keyValues)

{

ValidateSoapHeader();

// 获取操作的用户

if (keyValues == null || keyValues.Count == 0) return false;

Dictionary<string, object> values = new Dictionary<string, object>();

foreach (DataItemParam param in keyValues)

{

values.Add(param.ItemName, param.ItemValue);

}

return this.Engine.BizObjectManager.SetPropertyValues(bizObjectSchemaCode, bizObjectId, UserValidatorFactory.CurrentUser.UserID, values);

}

/// <summary>

/// 输出日志至引擎服务器

/// </summary>

/// <param name="message"></param>

[WebMethod(Description = "输出日志至引擎服务器")]

public void WriteLog(string message)

{

this.Engine.LogWriter.Write(message);

}

#region 工作任务私有方法 ----------------

/// <summary>

/// 提交工作项

/// </summary>

/// <param name="workItemId">工作项ID</param>

/// <param name="approval">审批结果</param>

/// <param name="commentText">审批意见</param>

/// <param name="userId">处理人</param>

private void SubmitItem(string workItemId, OThinker.Data.BoolMatchValue approval, string commentText, string userId)

{

// 获取工作项

OThinker.H3.WorkItem.WorkItem item = this.Engine.WorkItemManager.GetWorkItem(workItemId);

// 添加意见

this.AppendComment(item, OThinker.Data.BoolMatchValue.Unspecified, commentText);

// 结束工作项

this.Engine.WorkItemManager.FinishWorkItem(

item.ObjectID,

userId,

OThinker.H3.WorkItem.AccessPoint.ExternalSystem,

null,

null,

approval,

commentText,

null,

OThinker.H3.WorkItem.ActionEventType.Forward,

(int)OThinker.H3.WorkSheet.SheetButtonType.Submit);

// 需要通知实例事件管理器结束事件

Messages.AsyncEndMessage endMessage = new OThinker.H3.Messages.AsyncEndMessage(

Messages.MessageEmergencyType.Normal,

item.InstanceId,

item.ActivityCode,

item.TokenId,

approval,

false,

approval,

true,

null);

this.Engine.InstanceManager.SendMessage(endMessage);

}

/// <summary>

/// 驳回工作任务

/// </summary>

/// <param name="userId"></param>

/// <param name="workItemId"></param>

/// <param name="commentText"></param>

/// <returns></returns>

private bool ReturnItem(string userId, string workItemId, string commentText)

{

Organization.User user = this.Engine.Organization.GetUnit(userId) as Organization.User;

if (user == null) return false;

// 获取工作项

OThinker.H3.WorkItem.WorkItem item = this.Engine.WorkItemManager.GetWorkItem(workItemId);

OThinker.H3.Instance.InstanceContext context = this.Engine.InstanceManager.GetInstanceContext(item.InstanceId);

// ToKen

OThinker.H3.Instance.IToken Token = context.GetToken(item.TokenId);

int PreToken = int.Parse(Token.PreTokens[0].ToString());

OThinker.H3.Instance.IToken PreToken1 = context.GetToken(PreToken);

string activityName = PreToken1.Activity;

// 添加意见

this.AppendComment(item, OThinker.Data.BoolMatchValue.False, commentText);

// 结束工作项

this.Engine.WorkItemManager.FinishWorkItem(

item.ObjectID,

user.ObjectID,

H3.WorkItem.AccessPoint.ExternalSystem,

null,

null,

OThinker.Data.BoolMatchValue.False,

commentText,

null,

H3.WorkItem.ActionEventType.Backward,

(int)OThinker.H3.WorkSheet.SheetButtonType.Return);

// 准备触发后面Activity的消息

OThinker.H3.Messages.ActivateActivityMessage activateMessage

= new OThinker.H3.Messages.ActivateActivityMessage(

OThinker.H3.Messages.MessageEmergencyType.Normal,

item.InstanceId,

activityName,

OThinker.H3.Instance.Token.UnspecifiedID,

null,

new int[] { item.TokenId },

false,

H3.WorkItem.ActionEventType.Backward);

// 通知该Activity已经完成

OThinker.H3.Messages.AsyncEndMessage endMessage =

new OThinker.H3.Messages.AsyncEndMessage(

OThinker.H3.Messages.MessageEmergencyType.Normal,

item.InstanceId,

item.ActivityCode,

item.TokenId,

OThinker.Data.BoolMatchValue.False,

true,

OThinker.Data.BoolMatchValue.False,

false,

activateMessage);

this.Engine.InstanceManager.SendMessage(endMessage);

return true;

}

private BPMServiceResult startWorkflow(

string workflowCode,

string userCode,

bool finishStart,

List<DataItemParam> paramValues)

{

ValidateSoapHeader();

string workItemID, keyItem, errorMessage;

workItemID = keyItem = errorMessage = string.Empty;

BPMServiceResult result;

try

{

// 获取模板

OThinker.H3.WorkflowTemplate.PublishedWorkflowTemplateHeader workflowTemplate = GetWorkflowTemplate(workflowCode);

if (workflowTemplate == null)

{

result = new BPMServiceResult(false, "流程启动失败,流程模板不存在,模板编码:" + workflowCode + "。");

return result;

}

// 查找流程发起人

OThinker.Organization.User user = this.Engine.Organization.GetUnitByCode(userCode) as Organization.User;

if (user == null)

{

result = new BPMServiceResult(false, "流程启动失败,用户{" + userCode + "}不存在。");

return result;

}

OThinker.H3.DataModel.BizObjectSchema schema = this.Engine.BizObjectManager.GetPublishedSchema(workflowTemplate.BizObjectSchemaCode);

OThinker.H3.DataModel.BizObject bo = new DataModel.BizObject(

this.Engine.Organization,

this.Engine.MetadataRepository,

this.Engine.BizObjectManager,

schema,

OThinker.Organization.User.SystemUserID,

OThinker.Organization.Company.DefaultCompanyId);

if (paramValues != null)

{

// 这里可以在创建流程的时候赋值

foreach (DataItemParam param in paramValues)

{

if (bo.Schema.ContainsField(param.ItemName))

{

bo[param.ItemName] = param.ItemValue;

}

}

}

bo.Create();

// 创建流程实例

string InstanceId = this.Engine.InstanceManager.CreateInstance(

bo.ObjectID,

workflowTemplate.WorkflowCode,

workflowTemplate.WorkflowVersion,

null,

null,

user.UnitID,

null,   // 以组的身份发起

null,   // 以岗位的身份发起

false,  //

Instance.InstanceContext.UnspecifiedID,

null,

Instance.Token.UnspecifiedID);

// 设置紧急程度为普通

OThinker.H3.Messages.MessageEmergencyType emergency = Messages.MessageEmergencyType.Normal;

// 这里也可以在启动流程的时候赋值

Dictionary<string, object> paramTables = new Dictionary<string, object>();

// 启动流程的消息

OThinker.H3.Messages.StartInstanceMessage startInstanceMessage

= new OThinker.H3.Messages.StartInstanceMessage(

emergency,

InstanceId,

paramTables,

Instance.PriorityType.Normal,

true,

null,

false,

OThinker.H3.Instance.Token.UnspecifiedID,

null);

Engine.InstanceManager.SendMessage(startInstanceMessage);

result = new BPMServiceResult(true, InstanceId, workItemID, "流程实例启动成功!", "");

}

catch (Exception ex)

{

result = new BPMServiceResult(false, "流程实例启动失败!错误:" + ex.ToString());

}

return result;

}

/// <summary>

/// 给工作项添加审批意见

/// </summary>

/// <param name="item">工作项</param>

/// <param name="approval">审批结果</param>

/// <param name="commentText">审批意见</param>

private void AppendComment(OThinker.H3.WorkItem.WorkItem item, OThinker.Data.BoolMatchValue approval, string commentText)

{

// 添加一个审批意见

WorkflowTemplate.PublishedWorkflowTemplate workflow = this.Engine.WorkflowManager.GetPublishedTemplate(

item.WorkflowCode,

item.WorkflowVersion);

// 审批字段

string approvalDataItem = null;

if (workflow != null)

{

OThinker.H3.DataModel.BizObjectSchema schema = this.Engine.BizObjectManager.GetPublishedSchema(item.BizObjectSchemaCode);

approvalDataItem = workflow.GetDefaultCommentDataItem(schema, item.ActivityCode);

}

if (approvalDataItem != null)

{

// 创建审批

OThinker.H3.Data.Comment comment = new Data.Comment();

comment.Activity = item.ActivityCode;

comment.Approval = approval;

comment.CreatedTime = System.DateTime.Now;

comment.DataField = approvalDataItem;

comment.InstanceId = item.InstanceId;

comment.BizObjectId = item.BizObjectId;

comment.BizObjectSchemaCode = item.BizObjectSchemaCode;

comment.OUName = this.Engine.Organization.GetName(this.Engine.Organization.GetParent(item.Participant));

comment.Text = commentText;

comment.TokenId = item.TokenId;

comment.UserID = item.Participant;

// 设置用户的默认签章

Organization.Signature[] signs = this.Engine.Organization.GetSignaturesByUnit(item.Participant);

if (signs != null && signs.Length > 0)

{

foreach (Organization.Signature sign in signs)

{

if (sign.IsDefault)

{

comment.SignatureId = sign.ObjectID;

break;

}

}

}

this.Engine.BizObjectManager.AddComment(comment);

}

}

#endregion

/// <summary>

/// 获取最新的流程模板

/// </summary>

/// <param name="workflowCode">流程模板编码</param>

/// <returns></returns>

private OThinker.H3.WorkflowTemplate.PublishedWorkflowTemplateHeader GetWorkflowTemplate(string workflowCode)

{

// 获取最新版本号

int workflowVersion = this.Engine.WorkflowManager.GetWorkflowDefaultVersion(workflowCode);

return GetWorkflowTemplate(workflowCode, workflowVersion);

}

/// <summary>

/// 获取指定版本号的流程模板对象

/// </summary>

/// <param name="workflowCode">流程模板编码</param>

/// <param name="workflowVersion">流程模板版本号</param>

/// <returns></returns>

private OThinker.H3.WorkflowTemplate.PublishedWorkflowTemplateHeader GetWorkflowTemplate(string workflowCode, int workflowVersion)

{

// 获取模板

OThinker.H3.WorkflowTemplate.PublishedWorkflowTemplateHeader workflowTemplate = this.Engine.WorkflowManager.GetPublishedTemplateHeader(

workflowCode,

workflowVersion);

return workflowTemplate;

}

public Authentication authentication;

public Acl.UserValidator UserValidator = null;

/// <summary>

/// 验证当前用户是否正确

/// </summary>

/// <returns></returns>

public void ValidateSoapHeader()

{

if (authentication == null)

{

throw new Exception("请输入身份认证信息!");

}

UserValidator = UserValidatorFactory.Validate(authentication.UserCode, authentication.Password);

if (UserValidator == null)

{

throw new Exception("帐号或密码不正确!");

}

this.Engine = UserValidator.Engine;

// this.Engine = OThinker.H3.WorkSheet.AppUtility.Engine;

}

}

/// <summary>

/// 身份验证类

/// </summary>

public class Authentication : System.Web.Services.Protocols.SoapHeader

{

public Authentication() { }

public Authentication(string UserCode, string Password)

{

this.UserCode = UserCode;

this.Password = Password;

}

public string UserCode { get; set; }

public string Password { get; set; }

}

/// <summary>

/// 流程服务返回消息类

/// </summary>

public class BPMServiceResult

{

/// <summary>

/// 消息类构造函数

/// </summary>

/// <param name="success"></param>

/// <param name="instanceId"></param>

/// <param name="workItemId"></param>

/// <param name="message"></param>

public BPMServiceResult(bool success, string instanceId, string workItemId, string message, string WorkItemUrl)

{

this.Success = success;

this.InstanceID = instanceId;

this.Message = message;

this.WorkItemID = workItemId;

this.WorkItemUrl = WorkItemUrl;

}

/// <summary>

/// 消息类构造函数

/// </summary>

/// <param name="success"></param>

/// <param name="message"></param>

public BPMServiceResult(bool success, string message)

: this(success, string.Empty, string.Empty, message, string.Empty)

{

}

public BPMServiceResult() { }

private bool success = false;

/// <summary>

/// 获取或设置流程启动是否成功

/// </summary>

public bool Success

{

get { return success; }

set { success = value; }

}

private string instanceId = string.Empty;

/// <summary>

/// 获取或设置启动的流程实例ID

/// </summary>

public string InstanceID

{

get { return instanceId; }

set { this.instanceId = value; }

}

private string message = string.Empty;

/// <summary>

/// 获取或设置系统返回消息

/// </summary>

public string Message

{

get { return message; }

set { this.message = value; }

}

private string workItemId = string.Empty;

/// <summary>

/// 获取或设置第一个节点的ItemID

/// </summary>

public string WorkItemID

{

get { return workItemId; }

set { this.workItemId = value; }

}

private string workItemUrl = string.Empty;

/// <summary>

/// 获取或设置第一个节点的url

/// </summary>

public string WorkItemUrl

{

get { return workItemUrl; }

set { this.workItemUrl = value; }

}

}

/// <summary>

/// 提交任务后返回对象

/// </summary>

[Serializable]

public class ReturnWorkItemInfo

{

public ReturnWorkItemInfo() { }

private bool isSuccess = false;

/// <summary>

/// 是否提交成功

/// </summary>

public bool IsSuccess

{

get { return isSuccess; }

set { this.isSuccess = value; }

}

private string workItemUrl = string.Empty;

/// <summary>

/// 当前表单地址

/// </summary>

public string WorkItemUrl

{

get { return workItemUrl; }

set { this.workItemUrl = value; }

}

}

/// <summary>

/// 数据项参数

/// </summary>

[Serializable]

public class DataItemParam

{

private string itemName = string.Empty;

/// <summary>

/// 获取或设置数据项名称

/// </summary>

public string ItemName

{

get { return itemName; }

set { this.itemName = value; }

}

private object itemValue = string.Empty;

/// <summary>

/// 获取或设置数据项的值

/// </summary>

public object ItemValue

{

get { return itemValue; }

set { this.itemValue = value; }

}

}

}

 

 

 

 

 

 

 

41 SheetPage

SheetPage是ASPX版本所有的表单基类。

属性


名称


类型


说明


Approval


OThinker.Data.BoolMatchValue


获取或设置当前任务审核结果


Comment


string


获取或设置当前任务审核意见


DisplayName


string


获取当前表单显示名称


Enviroment


OThinker.H3.WorkSheet.SheetEnviroment


获取表单任务环境对象


InstanceNameEditor


SheetInstanceNameEditor


获取流程实例名称编辑控件


PortalRoot


string


获取Portal根目录路径


PriorityType


OThinker.H3.Instance.PriorityType


获取或设置当前流程实例紧急程度

方法


名称


参数


说明


CancelInstance


 


在表单取消流程实例时事件


CancelWorkItem


在表单取消工作任务时事件


GetItemEditable


string ItemName


获取指定数据项在当前任务是否可编辑


GetItemRequired


string ItemName


获取指定数据项在当前任务是否必填


GetItemTrackVisible


string ItemName


获取指定数据项在当前任务是可查看痕迹


GetItemVisible


string ItemName


获取指定数据项在当前任务是可见


GetItemValue


string ItemName, ref object Value


获取指定数据项的值


GetOptionalRecipients


SelectRecipientType SelectRecipientType


设置当前任务协助/征询/传阅的可选人范围


IsActivitySelectable


string ActivityName


当活动节点是手工选择时,设置某个活动节点是否允许被选择


LoadDataFields


表单加载数据项的值


OnOriginatingInstance


object Sender, OriginateInstanceEventArgs Args


流程被发起时触发事件


OnSubmit


SheetSubmitEventArgs Args


流程提交时触发事件


SaveDataFields


SheetSubmitEventArgs Args


流程保存/提交时触发,将表单上的值保存到数据项中


SetItemValue


string ItemName, object Value


设置数据项的值


ValidateAuthorization


权限验证方法,设置当前用户是否有权限打开表单


ValidateDataFields


SheetSubmitEventArgs Args, List<string> Errors


数据项验证方法,设置数据项在后台验证是否通过

时间: 2024-11-03 05:41:52

H3 BPM接口说明文档的相关文章

weiapi2.2 HelpPage自动生成接口说明文档和接口测试功能

在开发Webapi项目时每写完一个方法时,是不是需要添加相应的功能说明和测试案例呢?为了更简单方便的写说明接口文档和接口测试HelpPage提供了一个方便的途径. 她的大致原理是:在编译时会生成.dll程序集和.xml程序集说明文件,通过xml文件获取Controller名称.action名称.参数信息和备注信息等.这样接口说明文档就可以放到备注信息了,个人觉得确实粗暴简单 .那接口测试在哪呢?这里用到nuget第三方程序包:webapitestclient 先上效果图吧! 案例是用VS2013

Swagger(webapi自动生成接口说明文档)

1.引入Swagger.Net.UI和Swashbuckle包 2.卸载重复包Swagger.Net 3.多余的SwaggerUI文件夹 4.项目属性->勾选生成xml文档文件 5.添加类SwaggerCachingProvider和修改SwaggerConfig文件 using Swashbuckle.Swagger; using System; using System.Collections.Concurrent; using System.Collections.Generic; usi

Abp中SwaggerUI的接口说明文档配置

项目中集成了swashbuckle,那么通过访问http://ip:port/swagger/ui/index,可以看到提供的接口列表.接口列表默认是没有提供接口说明信息的,但是swagger内部是集成了一个方法,可以通过读取xml文档添加接口说明. 下面是操作步骤: 1. 设置项目属性 > 生成,勾选XML文档文件.这样在制定文件目录下就可以生成代码的注释xml文件了. 2. 提供方法读取这个xml文档. private static List<string> GetXmlCommen

基站定位接口说明文档

基站使用api说明 移动联通基站定位 参数说明: 名称 类型 是否必须 说明 mcc int(十进制) 是 mcc国家代码:中国代码;460 mnc int(十进制) 是 mnc网络类型0移动1联通(电信对应sid) cell_id int(十进制) 是 基站Id(电信对应bid) lac int(十进制) 是 lac(电信对应nid) key string 是 APP KEY type int 否 返回坐标类型默认值 0(google坐标),1( 百度坐标),2(gps坐标) 返回码说明: 返

Abp中SwaggerUI的多个接口文档配置说明

对外提供的接口在实际生成过程中,可能是需要一个接口版本的,比如说v1,manage.效果如下: 在swagger中怎么实现呢? 1. 添加SwaggerVersionHelper.cs public class SwaggerVersionHelper { public static bool ResolveVersionSupportByRouteConstraint(ApiDescription apiDesc, string targetApiVersion) { var attr = a

H3 BPM 跨平台表单发起详解

1.1 目的 为方便技术对接服务,实现流程业务的跨平台对接,给出指引和帮助文档. 2 跨平台以Java为例调用.NET BPM表单流程全过程 2.1 双方系统确定接口协议规则 通信协议:基于soap通信utf-8编码,webservices访问.令牌.鉴权等(不知什么原因鉴权未做说明,理论上肯定是需要的)用于安全验证. 2.2 传参要求 按照接口文档实现方法传参赋值. 2.3 .NET代码实现 以"启动H3流程实例"接口文件BPMService.asmx中的"StartWor

ICE中间件说明文档

1       ICE中间件简介 2       平台核心功能 2.1        接口描述语言(Slice) 2.2        ICE运行时 2.2.1         通信器 2.2.2         对象适配器 2.2.3         位置透明性 2.3        异步编程模型 2.3.1         异步方法调用 2.3.2         异步方法分派 2.4        订阅/发布编程模型 2.5        动态服务管理(IceBox) 2.6       

H3 BPM门户操作说明及实例介绍

一. H3 BPM部件介绍 H3_V9.0门户功能主要由两部分功能组成:前台展示和后台管理: 1. 前台展示 前台展示参考sharepoint部件管理,用于将用户添加的webpart部件在页面上进行展示:如图1. 图1 门户界面 1.1 展现模式 前台展现模式有两种,当以管理员账号登陆时,模块管理提供浏览和设计两种模式.浏览模式用于展现部件内容:设计模式用于部件设计,此模式下提供部件的增加.删除.属性设置.顺序调整功能.见图2.图3:普通用户只有浏览模式. 图2 浏览模式 图3 设计模式 1.2

Eclipse4.7使用基础 制作说明文档

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0) 三个代码 父类.接口类.子类 父类 package jizuiku.test01; /** * 人抽象类 * * @author 给最苦 * @version 17.08.29 */ public abstract class Person { /** * 吃饭功能 */ public abstract void eat(); /