使用BizTalk实现RosettaNet B2B So Easy
使用BizTalk实现RosettaNet B2B So Easy
最近完成了一个vmi-hub的B2B项目,使用Rosettanet 2.0的标准与一家品牌商,OEM,供应商实现B2B。一共交换4个报文,4B2,3B2,4B2 POD,4C1,说白了就是收发存这些数据;
项目环境
BizTalk 2009 Accelerator for RosettaNet,并没有使用最新的BizTalk版本因为客户已经在使用了,所以就在现有的环境下进行。
下面说一下如何配置RosettaNet
交换证书
RosettaNet B2B中证书的用途和导入就不在这里详细说了,建议服务器端证书(IIS的SSL证书)和解密/验签的使用同一本证书
配置partner
配置Partner/Home Organization,这部分配置也非常简介,关键是Name和GBI 两个栏位填写正确就可以了

配置Process Configuration
定义每个pip的处理规则。以下我们用需要了3b2,4B2,4C1,0A1

每个pip代码都是有标准的,第一次做项目的时候你可能不知道如何填写



以上内容都可以通过https://www.rosettanet.org/RosettaNet-Standards/Standards-Library/PIP-Directory 可以查到,都是标准定义

配置Agreement
OA1 agreement的做作用是当处理这个pip流程时如果错误就会返回给对方一个0A1报文
Home role 如果选择Initiator表示做为发送方,Responder表示接收方


Ports 都填写对方的URL
其它的基本默认就可以了
以上配置还是非常简单的
流程如何调用RosettaNet API
在流程中只需要执行SubmitRNIF.SubmitMessage这个方法就可以了,但是在执行这个方法前必须先执行以下代码,在XML字符串的头部加上已下定义,应为Rosettanet的报文是通过dtd验证的,所以必须要加


RosettaNet Troubleshooting
UNP.SCON.VALERR:A failure occurred while validating the service content.
Error Number:2005
Description:A failure occurred while validating the service content.
验证Playload内容是否和dtd的定义一致,RosettaNet 加速器是严格的执行XML Schema验证只要有一个节点不符合就会报以上错误
UNP.SHDR.VALERR : A failure occurred while validating the service header.
请检查Process Configuration配置和消息的playload/serviceHeade 是否一致
400 Bad Request OR Time out
双方检查证书是否导入正确,特别是对于自发布的证书,对方需要导入根证书到受信任的目录下,如果对方是linux或其他OS,则需要根据相应的操作
Error code:UNP.MESG.DCRYPTERR
检查配置 Is Persistent Confidentiality Required 一般选None就可以了,不排除对方会选Palyload
还有一种情况是 acknowledgement of receipt\Non-Repudiation Required 也需要双方定义

运维工具
测试阶段免不了报文重发,做了一个报文重发的工具,可以选择发送错误报文再次重发,在原来LOB Application的源代码基础上加了一个选择发送失败的报文再次重发
源代码提供下载

希望对初次使用BizTalk做Rosettanet B2B 项目的能提供一些帮助,当然有问题也可以留言哦
使用BizTalk实现RosettaNet B2B So Easy的更多相关文章
- BizTalk增强型RosettaNet跟踪报告
BizTalk 的数据报表能力一直是比较弱的,好在Rosettanet 支持使用BAM 跟踪功能来跟踪各PIP消息状态.增强的跟踪功能能跟踪流程为消息.错误和事件.不可否认性的数据.可以根据跟踪的 ...
- BizTalk开发小技巧
BizTalk开发小技巧 随笔分类 - Biztalk Biztalk 使用BizTalk实现RosettaNet B2B So Easy 摘要: 使用BizTalk实现RosettaNet B2B ...
- BizTalk 2010/2013 EDI B2B
BizTalk 2010/2013 EDI B2B项目实践(1) BizTalk 2010/2013 EDI B2B项目实践(1) BizTalk开发标准EDI B2B是件非常容易的事情,但对于初 ...
- BizTalk 2016 配置 RosettaNet遇到的坑
本文只针对已经安装好BizTalk 2016 需要在安装RosettaNet加速器的伙伴. IIS配置 权限问题 错误信息 Failed to get IIS metabase property. E ...
- 重置BizTalk RosettaNet
RosettaNet如果出现问题,可以进行重新配置安装,不过重置过程稍微有点麻烦.步骤如下: 注意:执行如下步骤前请做全部备份工作,如BTARN文件夹,自主开发的BTARN应用程序源码.MSI及Bin ...
- BizTalk RosettaNet 配置导入与导出
更多内容请查看:BizTalk动手实验系列目录 BizTalk 开发系列 BizTalk 培训/项目开发/技术支持请联系:Email:cbcye ...
- BizTalk RosettaNet 开发笔记
RNIF BAM Tracking Error  解决办法:  503: Service Unavailable   解决办法:IIS 应用程序池运行账户用户名或密码错误,用户名不能是doma ...
- BizTalk RosettaNet解决方案搭建
contoso为证书颁发机构 分别在两台服务器中配置hosts 192.168.199.160 fabrikam 192.168.199.225 contoso 安装CA 控制面板,添加删除程序 打开 ...
- BizTalk RosettaNet解决方案之Loopback
本教程使用 BizTalk Accelerator for RosettaNet (BTARN) 在一台计算机上模拟本组织与合作伙伴组织之间的流程实施情况. 创建本组织 “BizTalk <版本 ...
随机推荐
- Java之IO流总结
IO流·Java流式输入/输出原理·Java流类的分类·输入/输出流类·常见的节点流和处理流·文件流·缓冲流·转换流·数据流·Print流·Object流 ①Java流式输入/输出原理 ...
- MSSQL语句学习(查询表的总记录数)
如何高效查询表的总记录数(通用方法) SELECT COUNT(1) ROWS FROM product 野路子1:利用系统自带的存储过程SP_SPACEUSED,详细的使用方式推荐谷哥或度娘, EX ...
- OpenCV-可视化界面Image Watch
平台:Win10 x64+vs2015专业版+opencv-3.4.1-vc14_vc15 一直觉得OpenCV在调试方面不如MATLAB灵活方便,没成想OpenCV官方早就推出了一个叫Image W ...
- ABP框架系列之二十八:(Handling-Exceptions-异常处理)
Introduction This document is for ASP.NET MVC and Web API. If you're interested in ASP.NET Core, see ...
- android 测试
Android Monkey压力测试 monkey测试结果详细分析 Android自动化测试工具 UiAutomator使用详解 在Android Sudio中使用Uiautomator 六款Andr ...
- ZOJ 3229 Shoot the Bullet (有源有汇有上下界最大流)
题意:一个人要给女孩子们拍照,一共 n 天,m 个女孩子,每天他至多拍 d[i] 张照片,每个女孩子总共要被至少拍 g[i] 次.在第 i 天,可以拍 c[i] 个女孩子,c[i] 个女孩子中每个女孩 ...
- day11_雷神_udp、多进程等
day11 1.网络编程 1.1 udp协议 client端 import json import socket server_addr = ('127.0.0.1',9090) sk = socke ...
- ubuntu16.04安装maven
一.下载maven apache maven官网地址:http://maven.apache.org/download.cgi 找到Link列下的“apache-maven-3.5.2-bin.tar ...
- SQL Server表分区(水平分区及垂直分区)
什么是表分区? 表分区分为水平表分区和垂直表分区,水平表分区就是将一个具有大量数据的表,进行拆分为具有相同表结构的若干个表:而垂直表分区就是把一个拥有多个字段的表,根据需要进行拆分列,然后根据某一个字 ...
- Java中List, Integer[], int[]的相互转换
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class Mai ...