使用成功路径实现数据库状态回传

文章介绍了如何在知行之桥EDI系统的新版本中,通过数据库端口配置、映射设置和脚本应用,实现数据从抓取到发送给交易伙伴后的状态回传,确保数据完整性和准确性。在数据发送成功后,系统自动更新数据库中的status状态,标记为已发送。
摘要由CSDN通过智能技术生成

项目实施过程中,需要明确数据是否已成功发送给交易伙伴。以防止数据漏发、错发给业务带来不必要的损失。在最新发布的知行之桥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 是什么?

阅读原文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知行EDI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值