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 跨平台表单发起详解的更多相关文章

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

    错误5:登陆无反应,F12查看后台网络请求错误如下图所示  错误原因:ISAPI未对相应的.net版本允许. 解决方法:IIS的根节点--右侧"ISAPI和CGI限制"打开--将相 ...

  2. H3 BPM初次安装常见错误详解1-4

    错误1: 首次安装完成无法访问,效果如下. 错误原因:没有配置IIS. 解决方法: 控制面板-程序-打开或关闭Windows功能,选择internet信息服务. 因为安装的时候没有没有iis,所以程序 ...

  3. Skip List(跳跃表)原理详解与实现【转】

    转自:http://dsqiu.iteye.com/blog/1705530 Skip List(跳跃表)原理详解与实现 本文内容框架: §1 Skip List 介绍 §2 Skip List 定义 ...

  4. 问题:oracle select into;结果:oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解

    oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解 (2011-07-08 08:59:47) 转载▼ 标签: it 分类: oracle 我们经常会遇 ...

  5. SQL Server时间粒度系列----第8节位运算以及设置日历数据表节假日标志详解

    本文目录列表: 1.位运算 2.设置日历数据表节假日标志 3.总结语 4.参考清单列表   位运算   SQL Server支持的按位运算符有三个,分别为:按位与(&).按位或(|).按位异或 ...

  6. Oracle create tablespace 创建表空间语法详解

    CREATE [UNDO]  TABLESPACE tablespace_name          [DATAFILE datefile_spec1 [,datefile_spec2] ...... ...

  7. SQLServer中的CTE(Common Table Expression)通用表表达式使用详解

    概述 我们经常会编写由基本的 SELECT/FROM/WHERE 类型的语句派生而来的复杂 SQL 语句.其中一种方案是需要编写在 FROM 子句内使用派生表(也称为内联视图)的 Transact-S ...

  8. Django基础,Day5 - form表单投票详解

    投票URL polls/urls.py: # ex: /polls/5/vote/ url(r'^(?P<question_id>[0-9]+)/vote/$', views.vote, ...

  9. JSON编码格式提交表单数据详解

    以JSON编码格式提交表单数据是HTML5对WEB发展进化的又一大贡献,以前我们的HTML表单数据是通过key-value方式传输的服务器端,这种形式的传输对数据组织缺乏管理,形式十分原始.而新出现的 ...

随机推荐

  1. Spring IOC之基于JAVA的配置

    基础内容:@Bean 和 @Configuration 在Spring中新的支持java配置的核心组件是 @Configuration注解的类和@Bean注解的方法. @Bean注解被用于表明一个方法 ...

  2. 设计与实现的简单和经常使用的权限系统(五岁以下儿童):不维护节点的深度level,手工计算level,树形结构

     以这种方式.和第三的类似介绍.所不同的是.深度未在数据库中存储节点level,添加和更改时间,护.而是,在程序中,实时去计算的. 至于后面的,依照level升序排序,再迭代全部的节点构造树,与第三篇 ...

  3. C#中使用消息队列RabbitMQ

    在C#中使用消息队列RabbitMQ 2014-10-27 14:41 by qy1141, 745 阅读, 2 评论, 收藏, 编辑 1.什么是RabbitMQ.详见 http://www.rabb ...

  4. 实例学习SSIS(二)--使用迭代

    原文:实例学习SSIS(二)--使用迭代 导读: 实例学习SSIS(一)--制作一个简单的ETL包 实例学习SSIS(二)--使用迭代 实例学习SSIS(三)--使用包配置 实例学习SSIS(四)-- ...

  5. Inno Setup connection to the database and create

    原文 Inno Setup connection to the database and create Description: the first half of this program in I ...

  6. Ruby on Rails (ROR)类书籍

    Ruby on Rails (ROR)类书籍下载地址及其他(整理) Ruby on Rails 如此之热,忍不住也去看了看热闹,现在把一些相关的电子图书下载地址整理下,方便有兴趣的朋友. 2006-0 ...

  7. Visual Studio 使用调试技巧

    Visual Studio 使用调试技巧 这篇文章来源于http://damieng.com/blog/2014/02/05/8-visual-studio-debugging-tips-debug- ...

  8. ios中mvc的FormsAuthentication.SetAuthCookie(cookieUserName, false)失败

    如果楼主使用.net开发,要注意FormsAuthentication.SetAuthCookie 方法的使用会导致ios出现该问题.因为这个方法在ios设备上是把票据加入到url中,导致url和你的 ...

  9. WCF、Web API、WCF REST、Web Service 区别

    Web Service It is based on SOAP and return data in XML form. It support only HTTP protocol. It is no ...

  10. [置顶] Ants(Northeastern Europe 2007)

                                                                                      Ants Time Limit: 5 ...