使用成功路径实现数据库状态回传
项目实施过程中,需要明确数据是否已成功发送给交易伙伴。以防止数据漏发、错发给业务带来不必要的损失。在最新发布的知行之桥EDI系统中,新增了显示成功路径功能。我们可以利用这个功能,快速实现数据库状态回传。
支持版本:知行之桥EDI系统22.0.8452.0或者更高版本
接下来为大家详细介绍如何根据当前数据处理情况完成状态回传。以中间数据库方案为例,在header表中,我们将id设置为主键:
status列可以用来标志每行数据的处理状态,如下图所示:status值为0表示新建状态,status值为1表示抓取成功状态,status值为2表示发送成功状态。
想要实现状态回传,我们主要使用数据库表里的id和status。接下来我们在知行之桥EDI系统中进行操作!
我们设定的场景是:EDI系统从中间数据库表中抓取数据,并进行格式转换,生成符合X12 国际报文标准的文件并通过AS2发送给交易伙伴。
需要实现的功能:在X12文件从AS2端口成功发出后,需要将发送成功的状态回传至相应的数据库表中。也就是我们上文提到的,需要令数据库header表下的status值由0变为1再变为2。如下是整体工作流:
搭建步骤
1.数据库端口配置
在工作流界面左侧的 端口 选项卡下,找到 数据库 分类。将SQL Sever 端口拖拽至右侧空白区域。
点击SQL Server 端口,即可看到弹出的 设置 选项卡,在 配置>连接 下点击创建。这一步我们需要填写中间数据库的信息,实现与数据库的连接。如下图所示:
需要填写的信息如下:
服务器
端口
数据库
用户名
密码
填写完成后可以点击 测试连接 按钮,检查是否可以成功连接到我们配置好的数据库。当提示测试连接成功,即可点击右下角的 创建连接 按钮。接下来回到设置页面中,
选择操作为:Select。
找到下方的 Select 配置。如下图所示:
1)点击添加,选择我们上文存放id和status的header表。可以看到在左侧 列 的位置出现了我们header表中的两个列:id和status。
2)在 过滤规则 下,点击右侧添加规则,令status 等于0。
3)在 高级 下,勾选这行,并且设置为:当行处理成功时,更新列status,其值为1。
完成以上设置之后记得点击右上角,保存变更。在输出页面,点击接收,即可下载数据库XML文件。此时status状态变更为1,标识数据已被EDI系统成功抓取。
2.映射配置
新建一个XMLMap端口,将从数据库端口下载的数据库XML上传至 源文件 中。可以看到映射部分左侧出现了数据库中的两个字段:id以及status。按照如下所示的对应关系建立映射:
在目标部分,添加脚本:
1 |
<rsb:set attr="_message.header:ID" value="[xpath(id)]"/> |
上述脚本的主要功能是将数据库中的id值写入文件的消息头部,以便后续处理。我们在XMLMap的输出部分,点击输出文件,即可在其他消息头部中看到设置成功的ID值。
创建X12端口,在 设置 页面下,将 转换类型 设置为:XML转换为X12。
3.通信配置
创建两个AS2端口,一个为本地的AS2端口,将其命名为:I_AS2;另一个模拟交易伙伴方的AS2端口,将其命名为:AS2OUT。配置连接信息,实现自发自收。本文不再赘述,详细步骤参考:AS2端口配置
4.脚本介绍
创建一个Script端口,在 设置 界面中写入如下脚本:
<rsb:set attr="file.filename" value="[FileName]" />
<rsb:set attr="file.data"><header><id>[_input.header:ID]</id><status>2</status>
</header>
</rsb:set>
<rsb:push item="file" />
将对应id下的状态更新为2。
AS2端口选择 显示成功路径 之后会出现一个绿色的小标识,将这个绿色标识引入新建的Script端口中。
当X12端口成功发出文件之后,文件会被传输到Script端口。创建一个SQLSever端口,操作为:Upsert
在 Upsert 配置 中,添加header表,在 列 部分选择 执行此查询以查找 UPSERT 键,填写为select id from header。
这一步我们将根据id值将status信息更新到数据库表中。此时header表中的status值将会被更新为2,表示数据已成功发送给交易伙伴。
为了验证我们的操作,我们从数据库中抓取一条status值为0 的数据,经过上述工作流的转换之后,成功从AS2端口发出。此时数据库里这条数据的status值被更新为2,表示文件已成功发送至交易伙伴。
我们打开此前配置的模拟交易伙伴AS2端口,可以在 输出 页面下看到我们发出的文件已被成功接收了!
如果你对使用成功路径实现数据库状态回传还有任何疑问,欢迎联系我们。
了解更多 EDI 信息,请参阅: EDI 是什么?
阅读原文
使用成功路径实现数据库状态回传相关推荐
- (转)SQL Server数据库状态监控 - 作业状态
4. SQL Server数据库状态监控 - 作业状态 有很多地方可以设置定时任务,比如:Windows的计划任务,Linux下的crontab,各种开发工具里的timer组件.SQL Server也 ...
- 华为云找到 “成功”路径
自2017年3月华为云BU宣告成立到现在,两年多的时间,华为云一直在向前.虽然中间有走过弯 路,但总体上是在向上发展的. 2019,华为云进入发展快车道 2018年之前的华为云虽然业务发展得不慢,当由 ...
- Stetho增加SD卡路径的数据库
Stetho简介 Chrome的Developer Tools对于WEB开发者来讲几乎是一个神器,而Chrome Store里也有无奇不有的插件,如果Chrome能调试应用应该是一件美好的事,而Fac ...
- 未能取得服务器的用户数据,未能成功连接到数据库服务器
未能成功连接到数据库服务器 内容精选 换一换 CDC(Change Data Capture),即数据变更抓取,通过为源端数据源开启CDC,ROMA Connect可实现数据源的实时数据同步以及数据表 ...
- 关于数据库‘状态’字段设计的思考与实践
最近在做订单及支付相关的系统,在订单表的设计阶段,团队成员就'订单状态'数据库字段设计有了一些分歧,网上也有不少关于这方面的思考和探讨,结合这些资料和项目的实际情况,拟对一些共性问题进行更深一层的思考 ...
- 如何查看MySQL数据库状态及信息(内存、数据库、编码格式、表、列、索引等)
备战2022春招或暑期实习,本专栏会持续输出MySQL系列文章,祝大家每天进步亿点点!文末私信作者,我们一起去大厂. 本篇总结的是 <如何查看MySQL数据库状态及信息>,后续会每日更新~ ...
- springboot实现图片上传到又拍云中,并且保存图片外连接路径到数据库,外连接也可访问图片(一)
注册又拍云账号,申请一个云存储空间.如果开启服务状态,开启状态把必须要进行实名认证.开启状态之后,自行申请服务即可.申请完成之后,点击配置 进入下个页面不用管,直接点击存储管理. 拉到最下面查看管理员 ...
- SQL SERVER 2005 数据库状态为“可疑”的解决方法
重启服务 -------------------------------------------------- 日志文件丢了,建一个日志文件 ----------------------------- ...
- php || 上传图片,pdf等文件到本地/upload;再实现保存本地路径到数据库
html代码(上传图片,文件): <html><head><meta http-equiv="content-type" content=" ...
最新文章
- 人工智能之算法知识与实战篇
- DevExpress的下拉框控件ComboBoxEdit控件的使用
- 讲讲 group by 的plus版
- 【计算机组成原理】加减法器
- 一次频繁Full GC的排查过程,根源居然是它...
- 【LeetCode】剑指 Offer 66. 构建乘积数组
- 三步完成博客打赏功能
- 2020.12.23 随笔纪念粉笔数【2020】
- 史上最失败系统!微软正式终止对Vista支持
- Android 使用数据库操作应用加锁、未加锁,列表展示效果
- OpenDaylight VTN 项目指南
- Ubuntu安装riscv-gnu-toolchain和riscv-tools
- 程序员的价值观与网络的复杂性
- 高性能裸金属服务器应用场景
- 学生论坛管理系统的设计与实现
- AI-041: Python深度学习3 - 三个Karas实例-3
- RFC2861 TCP 拥塞窗口检验
- HBuilder制作英雄皮肤抽奖小游戏
- E18-D80NK拆解
- 拆解金融科技Q3业绩:增长、迭代与飞轮效应
热门文章
- 数据库优化方法 (一)
- 最全面的UI自动化面试题全在这里了!你还在考虑什么?
- 样本均值方差的期望的推导
- 卡硬工具箱说系统服务器,卡硬工具箱|卡硬工具箱 v2.95官方版 - 系统天堂
- 【隧道篇 / PPTPL2TP】(5.2) ❀ 01. PPTP L2TP 连接 ❀ FortiGate 防火墙
- MATLAB和Python最优控制问题
- Linux下将nano编辑器Tab键设置成4个空格
- mblock控制SG90舵机模块
- 学会这10招,让你的服装短视频带货率提升50%
- 初学Java入门介绍