H3 BPM 跨平台表单发起详解

时间:2023-03-08 22:47:54
H3 BPM 跨平台表单发起详解

1.1 目的

  为方便技术对接服务,实现流程业务的跨平台对接,给出指引和帮助文档。

跨平台以Java为例调用.NET BPM表单流程全过程

2.1 双方系统确定接口协议规则

通信协议:基于soap通信utf-8编码,webservices访问。令牌、鉴权等(不知什么原因鉴权未做说明,理论上肯定是需要的)用于安全验证。

2.2 传参要求

按照接口文档实现方法传参赋值。

2.3 .NET代码实现

以“启动H3流程实例”接口文件BPMService.asmx中的“StartWorkflow”方法为例说明。

首先确定参数传送形式,此例以json字符串形式传参,出参。

BPM服务端实现:通过strjosn去做序列化转换成DataItemParam对象,将传参包进行解析,复制成BPM需要的参数格式形式,通过发起实例后返回实例发起结果。代码如下

H3 BPM 跨平台表单发起详解

/// <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 string StartWorkflow(

string workflowCode,

string userCode,

bool finishStart,

string paramValues)

{

paramValues = "[{ItemName:'苹果',ItemValue:5.5},{ItemName:'橘子',ItemValue:2.5},{ItemName:'柿子',ItemValue:16}]";

List<DataItemParam> param = new List<DataItemParam>();

param = StrJsontoObj.JSONStringToList<DataItemParam>(paramValues);

BPMServiceResult result = startWorkflow(workflowCode, userCode, finishStart, param);

var rel = new { Success=result.Success,

Message=result.Message,

data= new{

instanceId=result.InstanceID,

WorkItemID=result.WorkItemID,

WorkItemUrl=result.WorkItemUrl

}

};

return GetJson(rel);

}

public static string GetJson(object obj)

{

string str;

try

{

str = Newtonsoft.Json.JsonConvert.SerializeObject(obj);

}

catch

{

str = "";

}

return str;

}

解析字符串,返回需要的字符串

H3 BPM 跨平台表单发起详解

Josn字符串序列化与对象转换

H3 BPM 跨平台表单发起详解

出参格式调整

H3 BPM 跨平台表单发起详解

H3 BPM 跨平台表单发起详解

返回结果

H3 BPM 跨平台表单发起详解

数据库实例

H3 BPM 跨平台表单发起详解

流程发起

2.4  Java代码实现

使用axis架包实现对接.NET服务(方法很多不唯一,仅作为实现范例)

H3 BPM 跨平台表单发起详解

方法实现

H3 BPM 跨平台表单发起详解

方法参数说明

H3 BPM 跨平台表单发起详解

Soap表头说明

H3 BPM 跨平台表单发起详解

H3 BPM 跨平台表单发起详解

输出结果。