zoukankan      html  css  js  c++  java
  • 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表头说明

    输出结果。

  • 相关阅读:
    2020CCPC秦皇岛 K 【Kindom's Power】(树上贪心dp)
    对于树上状态机dp问题的一些总结与思考
    PTA_L3题解集
    PTA_L2题解集
    树上dp_学习笔记
    2020牛客国庆集训派对day2 B【Cheap Delivers】(最短路+状压dp)
    2020牛客国庆集训派对day1
    Codeforces 1426F【Number of Subsequences】(dp)
    2019icpc陕西省赛
    CF1281E【Jeremy Bearimy】(树上点对最大值/最小值和)
  • 原文地址:https://www.cnblogs.com/h3bpm/p/6281739.html
Copyright © 2011-2022 走看看