H3 BPM 跨平台表单发起详解
1.1 目的
为方便技术对接服务,实现流程业务的跨平台对接,给出指引和帮助文档。
2 跨平台以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初次安装常见错误详解5-7
错误5:登陆无反应,F12查看后台网络请求错误如下图所示 错误原因:ISAPI未对相应的.net版本允许. 解决方法:IIS的根节点--右侧"ISAPI和CGI限制"打开--将相 ...
- H3 BPM初次安装常见错误详解1-4
错误1: 首次安装完成无法访问,效果如下. 错误原因:没有配置IIS. 解决方法: 控制面板-程序-打开或关闭Windows功能,选择internet信息服务. 因为安装的时候没有没有iis,所以程序 ...
- Skip List(跳跃表)原理详解与实现【转】
转自:http://dsqiu.iteye.com/blog/1705530 Skip List(跳跃表)原理详解与实现 本文内容框架: §1 Skip List 介绍 §2 Skip List 定义 ...
- 问题:oracle select into;结果:oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解
oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解 (2011-07-08 08:59:47) 转载▼ 标签: it 分类: oracle 我们经常会遇 ...
- SQL Server时间粒度系列----第8节位运算以及设置日历数据表节假日标志详解
本文目录列表: 1.位运算 2.设置日历数据表节假日标志 3.总结语 4.参考清单列表 位运算 SQL Server支持的按位运算符有三个,分别为:按位与(&).按位或(|).按位异或 ...
- Oracle create tablespace 创建表空间语法详解
CREATE [UNDO] TABLESPACE tablespace_name [DATAFILE datefile_spec1 [,datefile_spec2] ...... ...
- SQLServer中的CTE(Common Table Expression)通用表表达式使用详解
概述 我们经常会编写由基本的 SELECT/FROM/WHERE 类型的语句派生而来的复杂 SQL 语句.其中一种方案是需要编写在 FROM 子句内使用派生表(也称为内联视图)的 Transact-S ...
- Django基础,Day5 - form表单投票详解
投票URL polls/urls.py: # ex: /polls/5/vote/ url(r'^(?P<question_id>[0-9]+)/vote/$', views.vote, ...
- JSON编码格式提交表单数据详解
以JSON编码格式提交表单数据是HTML5对WEB发展进化的又一大贡献,以前我们的HTML表单数据是通过key-value方式传输的服务器端,这种形式的传输对数据组织缺乏管理,形式十分原始.而新出现的 ...
随机推荐
- shell awk统计重复个数
awk是一个很强大的工具,一个常见的用法就是统计一个文件中重复的列值的个数,这也是面试时面试官经常问的一个问题. 举个例子: 有个文件file.log的内容如下: http://www.sohu.co ...
- [译]Java 设计模式之桥接
(文章翻译自Java Design Pattern: Bridge) 简单来说,桥梁设计模式是一个两层的抽象. 桥接模式就是从一个抽象中实现中解耦以便两个都可以独立的改变.桥接使用封装聚合而且使用继承 ...
- 使用Flexible实现手淘H5页面的终端适配(转)
曾几何时为了兼容IE低版本浏览器而头痛,以为到Mobile时代可以跟这些麻烦说拜拜.可没想到到了移动时代,为了处理各终端的适配而乱了手脚.对于混迹各社区的偶,时常发现大家拿手机淘宝的H5页面做讨论—— ...
- 通过SqlClr制作Sql自动化批量执行脚本
原文:通过SqlClr制作Sql自动化批量执行脚本 通过SqlClr制作Sql自动化批量执行脚本 在与同事一起做项目时,看到同事用sqlclr做批量执行脚本,感觉挺新奇的就上网搜集资料自己模仿跟做了个 ...
- vi/vim多行注释和取消注释
多行注释: 1. 进入命令行模式,按ctrl + v进入 visual block模式,然后按j, 或者k选中多行,把需要注释的行标记起来 2. 按大写字母I,再插入注释符,例如// 3. 按esc键 ...
- C# 导入导出excel文件案例
个人总结导出excel报表的案例: //导出报表 protected void btnExport_Click(object sender, EventArgs e) { List<ProOut ...
- Unity学习入门
文章说明,文本内容基于配置文件进行依赖注入 unity介绍:Unity是由微软的Patterns & Practices团队开发的一个轻量级.可扩展的依赖注入(Dependency Injec ...
- VS2012下systemC配置
一.编译System库 1.下载SystemC library source code 到http://www.systemc.org注册会员账号后,即可下载SystemC ...
- HDU 4630、BOJ 某题
两道离线线段树. 比赛时候没想到.... 扫描数组,i从1到n,线段树维护从1到i每一个约数(1~50000)的出现的最近位置,线段树存储的是约数的最大值 #include<cstdio> ...
- Mocha JavaScript TDD
JavaScript TDD with Mocha 2014-04-30 02:05 by owenyang, 317 阅读, 0 评论, 收藏, 编辑 开发现状 当新的版本快要发布的时候,大家都忙于 ...