H3 BPM 跨平台表单发起详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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需要的参数格式形式,通过发起实例后返回实例发起结果。代码如下

 技术分享

 /// <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;

        }

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

 技术分享

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

 技术分享

出参格式调整

技术分享

技术分享

返回结果

技术分享

 数据库实例

技术分享

流程发起

 

2.4  Java代码实现

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

技术分享

方法实现

技术分享

方法参数说明

技术分享

Soap表头说明

技术分享

输出结果。

 技术分享


以上是关于H3 BPM 跨平台表单发起详解的主要内容,如果未能解决你的问题,请参考以下文章

H3 BPM协同平台解决方案

H3 BPM社区:流程开发者的学习交流平台

H3 BPM社区:流程开发者的学习交流平台

H3 BPM SharePoint解决方案

H3 BPM初次安装常见错误详解5-7

H3 BPM10.0让天下没有难用的流程之功能介绍