K2与业务系统对接的接口规范
1 流程图
1.1.1
通用流程--新建审批流程
1.1.2 通用流程-审批过程
1.1.3
通用流程-审批结束
1.1.4 通用流程-打开业务对象
2 业务系统相关规范
2.1
业务系统信息模块
业务系统信息是用来保存和处理与K2有关联的所有业务系统信息的信息。接口程序可以通过业务系统信息查找到某一流程实例所对应的业务系统的URL ,业务数据和在界面上的显示位置等。
2.2 的定义
接口1是K2接口提供给业务系统的一个统一入口,因为需要打开K2的页面,所以将此接口设计成一个页面+参数的调用方式。调用格式如下:
Response.Redirect("http://workflow/Interface/Load.aspx?BSID=HT&BOID=200&ProcID=12");
其中BSID ,BOID 和ProcID 都是关键字。
BSID 对应的值不能为空,也必须是在业务系统信息中存在的一个ID 。否则接口调用失败,接口不做任何处理。
BOID 对应的值不能为空,BSID 和BOID 唯一指定一个业务对象。
ProcID 是流程ID ,可以为空。如果流程实例已经被创建成功,忽略此ID 。直接打开流程实例并展示给用户。
如果ProcID 为空,说明业务系统在创建或打开流程实例前并不知道具体用哪个流程。如此用户将见到流程选择的界面。
如果ProcID 不为空,接口自动依照ProcID 帮用户选好流程,进入流程审批表
2.3
接口2是业务系统为K2提供的统一接口,该接口为标准的Webservice 。所有业务系统的Webservice 接口需以http://*****/ K2Webservice.asmx的命名规则为准。
当用户从业务系统通过接口1创建一个新的流程实例时,K2接口会在流程实例处设置一个bool 型的标志值--bCreatedFromBusinessSystem 。如果该bool 值为true ,K2接口就会调用接口2。K2通过调用接口2,K2可以从业务系统获得重要业务数据,无需用户在K2系统中重新输入一次。 业务系统提供的接口2的定义如下: public class BusinessObjectInfo {
public string _BusinessDataID;
public string _BusinessDataValue; }
public BusinessObjectInfo[] GetInfo (string strBSID, string strBOID);
由于业务数据在K2接口中已经做了相应的配置,并且这里定义的接口是完全具有拓展性的,所以这样的接口可以被所有的业务系统实现,并且统一。
接口从业务系统信息的Interface2中获得业务系统为接口2提供的实际URL 地址,然后可以直接调用该接口,无需为不同的业务系统单独实现接口调用方法。 如果该接口调用失败,则创建流程实例失败。
//业务数据的ID 。与业务数据信息中//的BDID 对应。
//属性的值数组。存储在流程实例的//业务数据中
2.4
的定义
接口3是业务系统为K2提供的统一接口,该接口为标准的Webservice 。
K2在创建一个流程实例结束后(不管是成功还是失败),需要向业务系统回报创建结果,便于业务系统做后续的工作。 业务系统提供的接口3的定义如下:
public void CreateResult (string strBSID, string strBOID, bool bSuccess, int iProcInstID, string strMessage,Vanke.K2Message[] msg)
其中:
strBSID 为业务系统ID 。
strBOID 为业务系统在接口1传入的业务对象ID 。
bSuccess 表示创建流程实例是否成功,true 为成功,false 为创建失败
iProcInstID 为该业务对象对应的创建的流程实例ID 。如果创建失败,则该值无效,置0。 strMessage 为K2接口提供的信息反馈。
msg 为审批时需要传递给业务系统的额外信息。定义成K2Message 的格式,是为了以后扩充的业务需求,这样无需再修改接口定义了。
如果该接口调用失败,K2不再向业务系统发送此信息,但会在log 中生成一笔出错记录。
2.5
的定义
接口4是也业务系统为K2提供的统一接口,该接口为标准的Webservice 。
K2在流程审批中,需要向业务系统汇报审批进展,便于业务系统做后续的工作。当某用户在K2中审批同意或有疑意某一流程实例,K2就会调用接口4。 业务系统提供的接口4的定义如下:
public enum Vanke.UserAction {
Active = 0, //审批中,不会在接口中传递此值。 Approved = 1, //同意 Denied, Doubt }
//K2Message的具体定义需要与业务系统统一,并且同步实现。在实现之前,请更新 K2Message定义.xls 文
//件。并做到K2和业务系统的统一实现。 Public class Vanke.K2Message {
String strMsgID; String strMsg;
}
//信息ID //信息内容
//信息的补充说明 //不同意
//有疑意
String strExtraInfo;
public void Audit (string strBSID, string strBOID, string strStepName, string strApprover, UserAction eAction, string strComment, DateTime dtTime, Vanke.K2Message[] msg); 其中:
strBSID 为业务系统ID 。
strBOID 为保存在K2接口中的业务对象ID 。 strStepName 为审批时的步骤名称。 strApprover 表示审批者。
eAction 为用户对流程实例的审批意见。 strComments 为用户的审批意见备注。 dtTime 为审批时间。
msg 为审批时需要传递给业务系统的额外信息。定义成K2Message 的格式,是为了以后扩充的业务需求,这样无需再修改接口定义了。当前的业务需要是在用户审批通过后,将是否允许提前下发传递给变更系统。
如果该接口调用失败,K2不再向业务系统发送此信息,但会在log 中生成一笔出错记录。
2.6
的定义
接口5是K2接口为业务系统提供的统一接口,该接口为标准的Webservice 。
业务系统可以通过调用此接口查看目前流程实例的状态,上一个审批人,正在等待谁审批。
K2接口提供的接口5的定义如下:
public enum ProcessInstanceStatus {
None = 0, //不存在该流程实例 Active, //正在审批流程中 Approved, //已审批通过 Denied, //已被拒绝 Deleted //已被删除 }
public class ProcessInstanceInfo {
public Vanke. K2Interface.ProcessInstanceStatus _eProcessInstanceStatus;
public ApproveStepInfo _lastApproveStep; public ApproveStepInfo _currentApproveStep; }
public class ApproveStepInfo
{
public string _strApprover;
Vanke. K2Interface.UserAction _eAction; public sting _strStepName;
public string _strApproverComment; public DateTime _dtApproveTime; }
//获得所给对象ID 的流程实例状态
public ProcessInstanceInfo[] GetStatus(string strBSID, string[] strBOID); public ProcessInstanceInfo[] GetKindsStatus(string[] strBSID, string[] strBOID); //获得所给对象ID 的流程实例的所有已审批的步骤信息
public ApproveStepInfo[] GetAllProcessedSteps(string strBSID, string strBOID); 其中:
strBSID 为业务系统ID 。
strBOID 为保存在K2接口中的业务对象ID 。
2.7
的定义
接口6也是业务系统为K2提供的统一接口,该接口为标准的Webservice 。
K2在流程审批结束后(包括审批通过,不同意或被删除),需要向业务系统汇报审批结果,便于业务系统做后续的工作。 业务系统提供的接口6的定义如下:
public void Close (string strBSID, string strBOID, ProcessInstanceStatus eProcessInstanceResult, string strComment, DateTime dtTime, Vanke.K2Message[] msg ); 其中:
strBSID 为业务系统ID 。
strBOID 为保存在K2接口中的业务对象ID 。 eProcessInstanceResult 表示流程审批结果 strComments 为K2接口提供的信息反馈。 dtTime 我审批时间。
msg 为审批时需要传递给业务系统的额外信息。定义成K2Message 的格式,是为了以后扩充的业务需求,这样无需再修改接口定义了。
如果该接口调用失败,K2不再向业务系统发送此信息,但会在log 中生成一笔出错记录。
2.8
的定义
接口7是业务系统为K2提供的统一接口,因为需要打开业务系统的页面,所以将此接口设计成一个页面+参数的调用方式。调用格式如下:
Response.Redirect("http://
×
×
×
×
/K2InterfaceLoadObject.aspx?
BSID
HT&BOID=200&ExtInfo=Modification_UpdateCost");
其中:
BSID 为业务系统ID 。
BOID 为用户需要浏览的业务对象ID 。
ExtInfo 为K2调用业务对象时的扩展信息。以提供业务系统做更进一步的处理。 目前已明确定义的ExtInfo 如下:
Modification_UpdateCost
――更新成本(变更系统使用)
Modification_SetSendOut ――设置下发单位(变更系统使用)
如果该接口调用失败,K2不再向业务系统发送此信息。
=
3 Data Flow
3.1
打开业务对象
3.2 查看业务对象的审批流程
a) 创建流程实例
3.3 流程审批过程
3.4 审批过程状态处理
K2与业务系统对接的接口规范
1 流程图
1.1.1
通用流程--新建审批流程
1.1.2 通用流程-审批过程
1.1.3
通用流程-审批结束
1.1.4 通用流程-打开业务对象
2 业务系统相关规范
2.1
业务系统信息模块
业务系统信息是用来保存和处理与K2有关联的所有业务系统信息的信息。接口程序可以通过业务系统信息查找到某一流程实例所对应的业务系统的URL ,业务数据和在界面上的显示位置等。
2.2 的定义
接口1是K2接口提供给业务系统的一个统一入口,因为需要打开K2的页面,所以将此接口设计成一个页面+参数的调用方式。调用格式如下:
Response.Redirect("http://workflow/Interface/Load.aspx?BSID=HT&BOID=200&ProcID=12");
其中BSID ,BOID 和ProcID 都是关键字。
BSID 对应的值不能为空,也必须是在业务系统信息中存在的一个ID 。否则接口调用失败,接口不做任何处理。
BOID 对应的值不能为空,BSID 和BOID 唯一指定一个业务对象。
ProcID 是流程ID ,可以为空。如果流程实例已经被创建成功,忽略此ID 。直接打开流程实例并展示给用户。
如果ProcID 为空,说明业务系统在创建或打开流程实例前并不知道具体用哪个流程。如此用户将见到流程选择的界面。
如果ProcID 不为空,接口自动依照ProcID 帮用户选好流程,进入流程审批表
2.3
接口2是业务系统为K2提供的统一接口,该接口为标准的Webservice 。所有业务系统的Webservice 接口需以http://*****/ K2Webservice.asmx的命名规则为准。
当用户从业务系统通过接口1创建一个新的流程实例时,K2接口会在流程实例处设置一个bool 型的标志值--bCreatedFromBusinessSystem 。如果该bool 值为true ,K2接口就会调用接口2。K2通过调用接口2,K2可以从业务系统获得重要业务数据,无需用户在K2系统中重新输入一次。 业务系统提供的接口2的定义如下: public class BusinessObjectInfo {
public string _BusinessDataID;
public string _BusinessDataValue; }
public BusinessObjectInfo[] GetInfo (string strBSID, string strBOID);
由于业务数据在K2接口中已经做了相应的配置,并且这里定义的接口是完全具有拓展性的,所以这样的接口可以被所有的业务系统实现,并且统一。
接口从业务系统信息的Interface2中获得业务系统为接口2提供的实际URL 地址,然后可以直接调用该接口,无需为不同的业务系统单独实现接口调用方法。 如果该接口调用失败,则创建流程实例失败。
//业务数据的ID 。与业务数据信息中//的BDID 对应。
//属性的值数组。存储在流程实例的//业务数据中
2.4
的定义
接口3是业务系统为K2提供的统一接口,该接口为标准的Webservice 。
K2在创建一个流程实例结束后(不管是成功还是失败),需要向业务系统回报创建结果,便于业务系统做后续的工作。 业务系统提供的接口3的定义如下:
public void CreateResult (string strBSID, string strBOID, bool bSuccess, int iProcInstID, string strMessage,Vanke.K2Message[] msg)
其中:
strBSID 为业务系统ID 。
strBOID 为业务系统在接口1传入的业务对象ID 。
bSuccess 表示创建流程实例是否成功,true 为成功,false 为创建失败
iProcInstID 为该业务对象对应的创建的流程实例ID 。如果创建失败,则该值无效,置0。 strMessage 为K2接口提供的信息反馈。
msg 为审批时需要传递给业务系统的额外信息。定义成K2Message 的格式,是为了以后扩充的业务需求,这样无需再修改接口定义了。
如果该接口调用失败,K2不再向业务系统发送此信息,但会在log 中生成一笔出错记录。
2.5
的定义
接口4是也业务系统为K2提供的统一接口,该接口为标准的Webservice 。
K2在流程审批中,需要向业务系统汇报审批进展,便于业务系统做后续的工作。当某用户在K2中审批同意或有疑意某一流程实例,K2就会调用接口4。 业务系统提供的接口4的定义如下:
public enum Vanke.UserAction {
Active = 0, //审批中,不会在接口中传递此值。 Approved = 1, //同意 Denied, Doubt }
//K2Message的具体定义需要与业务系统统一,并且同步实现。在实现之前,请更新 K2Message定义.xls 文
//件。并做到K2和业务系统的统一实现。 Public class Vanke.K2Message {
String strMsgID; String strMsg;
}
//信息ID //信息内容
//信息的补充说明 //不同意
//有疑意
String strExtraInfo;
public void Audit (string strBSID, string strBOID, string strStepName, string strApprover, UserAction eAction, string strComment, DateTime dtTime, Vanke.K2Message[] msg); 其中:
strBSID 为业务系统ID 。
strBOID 为保存在K2接口中的业务对象ID 。 strStepName 为审批时的步骤名称。 strApprover 表示审批者。
eAction 为用户对流程实例的审批意见。 strComments 为用户的审批意见备注。 dtTime 为审批时间。
msg 为审批时需要传递给业务系统的额外信息。定义成K2Message 的格式,是为了以后扩充的业务需求,这样无需再修改接口定义了。当前的业务需要是在用户审批通过后,将是否允许提前下发传递给变更系统。
如果该接口调用失败,K2不再向业务系统发送此信息,但会在log 中生成一笔出错记录。
2.6
的定义
接口5是K2接口为业务系统提供的统一接口,该接口为标准的Webservice 。
业务系统可以通过调用此接口查看目前流程实例的状态,上一个审批人,正在等待谁审批。
K2接口提供的接口5的定义如下:
public enum ProcessInstanceStatus {
None = 0, //不存在该流程实例 Active, //正在审批流程中 Approved, //已审批通过 Denied, //已被拒绝 Deleted //已被删除 }
public class ProcessInstanceInfo {
public Vanke. K2Interface.ProcessInstanceStatus _eProcessInstanceStatus;
public ApproveStepInfo _lastApproveStep; public ApproveStepInfo _currentApproveStep; }
public class ApproveStepInfo
{
public string _strApprover;
Vanke. K2Interface.UserAction _eAction; public sting _strStepName;
public string _strApproverComment; public DateTime _dtApproveTime; }
//获得所给对象ID 的流程实例状态
public ProcessInstanceInfo[] GetStatus(string strBSID, string[] strBOID); public ProcessInstanceInfo[] GetKindsStatus(string[] strBSID, string[] strBOID); //获得所给对象ID 的流程实例的所有已审批的步骤信息
public ApproveStepInfo[] GetAllProcessedSteps(string strBSID, string strBOID); 其中:
strBSID 为业务系统ID 。
strBOID 为保存在K2接口中的业务对象ID 。
2.7
的定义
接口6也是业务系统为K2提供的统一接口,该接口为标准的Webservice 。
K2在流程审批结束后(包括审批通过,不同意或被删除),需要向业务系统汇报审批结果,便于业务系统做后续的工作。 业务系统提供的接口6的定义如下:
public void Close (string strBSID, string strBOID, ProcessInstanceStatus eProcessInstanceResult, string strComment, DateTime dtTime, Vanke.K2Message[] msg ); 其中:
strBSID 为业务系统ID 。
strBOID 为保存在K2接口中的业务对象ID 。 eProcessInstanceResult 表示流程审批结果 strComments 为K2接口提供的信息反馈。 dtTime 我审批时间。
msg 为审批时需要传递给业务系统的额外信息。定义成K2Message 的格式,是为了以后扩充的业务需求,这样无需再修改接口定义了。
如果该接口调用失败,K2不再向业务系统发送此信息,但会在log 中生成一笔出错记录。
2.8
的定义
接口7是业务系统为K2提供的统一接口,因为需要打开业务系统的页面,所以将此接口设计成一个页面+参数的调用方式。调用格式如下:
Response.Redirect("http://
×
×
×
×
/K2InterfaceLoadObject.aspx?
BSID
HT&BOID=200&ExtInfo=Modification_UpdateCost");
其中:
BSID 为业务系统ID 。
BOID 为用户需要浏览的业务对象ID 。
ExtInfo 为K2调用业务对象时的扩展信息。以提供业务系统做更进一步的处理。 目前已明确定义的ExtInfo 如下:
Modification_UpdateCost
――更新成本(变更系统使用)
Modification_SetSendOut ――设置下发单位(变更系统使用)
如果该接口调用失败,K2不再向业务系统发送此信息。
=
3 Data Flow
3.1
打开业务对象
3.2 查看业务对象的审批流程
a) 创建流程实例
3.3 流程审批过程
3.4 审批过程状态处理