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方式传输的服务器端,这种形式的传输对数据组织缺乏管理,形式十分原始.而新出现的 ...
随机推荐
- 分享12款经典时尚的HTML5应用
分享伟大,呵呵.今天给大家分享一下收集的12个HTML5小特效. 我整理一下源码,给大家打包一下,我博客园上传文件大小有限,传不了了. 需要的请留下邮箱就行了,觉得好的话,不要忘了点赞哦~ 1.CSS ...
- win8 客户端源码
博客园cnblogs for win8 托管到GitHub开源 中午研究了下GitHub ,然后把博客园cnblogs win8 客户端源码放到了上面. 源码网址是: https://github ...
- VS2010生成安装包制作步骤
VS2010生成安装包制作步骤 在VS2010中文旗舰版本中生成winForm安装包,可以复制你电脑中的开发环境,避免你忘记了一下配置然后在别的机器上运行不起来.也省去了Framwork的安装. ...
- 1572: [Usaco2009 Open]工作安排Job[贪心]
Description Farmer John 有太多的工作要做啊!!!!!!!!为了让农场高效运转,他必须靠他的工作赚钱,每项工作花一个单位时间. 他的工作日从0时刻开始,有1000000000个单 ...
- discuz的门户文章页中增加百度分享代码
discuz虽然有百度分享插件,但是不太想用,于是自己手动添加了百度分享代码: 一.在http://share.baidu.com/地址中申请设置自己的百度分享代码,选择的风格完全按照个人喜好进行选择 ...
- 搞定KMP匹配算法
KMP算法介绍及实现——轻松搞定KMP匹配算法 本文介绍了字符串匹配算法中的BF算法和KMP算法.本文中KMP算法介绍部分是关于KMP算法相关文章中最简洁的一篇文章之一.下一篇将继续介绍Horspoo ...
- [转]ARM64 Function Calling Conventions
from apple In general, iOS adheres to the generic ABI specified by ARM for the ARM64 architecture. H ...
- iOS关于RunLoop和Timer
RunLoop这个东西,其实我们一直在用,但一直没有很好地理解它,或者甚至没有知道它的存在.RunLoop可以说是每个线程都有的一个对象,是用来接受事件和分配任务的loop.永远不要手动创建一个run ...
- Js中call apply函数以及this用法
this介绍: C#里this关键字的意义比较确定的.JavaScript的this关键字,随着函数使用场合不同,this的值会发生变化,感觉用法比较混乱,所以,现在是有必要整理一下的时刻了! 总结一 ...
- 简明CSS属性:定位
简明CSS属性:定位 第一话 定位 (Positioning) 关键词:position/z-index/top/bottom/right/left/clip POSITION 该属性用来决定元素在页 ...