当前位置: 首页 > article >正文

如何在知行之桥上通过业务单号查找原始报文?

在知行之桥中接收或发送的数据通常是EDI原始报文,知行之桥会对EDI原始报文进行格式转换,以方便用户后端系统的处理。因此,一般情况下,用户看到的都是转换后的数据结构,例如Json、XML或Excel等,无需直接查看原始EDI报文。但在以下特殊的业务场景下,用户需要查找到指定的原始报文:

1.对于接收方向的报文来说,例如订单,用户在查看转换后的数据结构后,对数据值存在疑问,需要向发送方求证,看是否存在数据值错误的情况,此时会需要提供EDI原始报文和订单编号,给发送方确认

2.对于发送方向的报文来说,例如发货通知,若是接收方验证报文失败,一般会通过EDI报文或以邮件等方式通知发送方,告知其发货通知单号和错误信息,此时发送方需内部排查,看是数据值错误还是EDI报文错误,若是EDI报文错误,为了确定具体错误信息,此时会提供原始的EDI报文,给接收方检查确认。

后端系统业务人员或交易伙伴提供的用于排查问题的信息,一般都是业务单号,如果传输的是订单,那提供的就是订单号;如果传输的是发货通知单,那就是发货通知单号;如果传输的是发票,那提供的就是发票号。那么,如何通过这些业务单据编号,在知行之桥EDI系统中准确查找到原始EDI报文呢?

在转换过程中对文件进行重命名

在收到交易伙伴或后端业务系统推送过来的数据时,文件名是多种多样的,此时需要对文件进行重命名处理,将业务单号放在文件名上,以便于后期运维查询。

在知行之桥中,文件重命名操作一般会在XML Map端口实现。

1.接收方向

以订单为例,在接收订单时,知行之桥中将会搭建如下工作流,我们在Markant_Map_ORDERS端口对文件名进行修改:

Find_original_message1.png

点击端口,在设置-目标文件中,新增代码脚本:

Find_original_message21.png

对代码脚本命名为Rename,并填入内容:

<arc:set attr="_message.header:filename" value="ORDERS_[xpath(BGM/C106/_1004) | def | trim]_[_ | snowflake].xml" />

其中,[xpath(BGM/C106/1004) | def | trim]是获取订单编号,[ | snowflake]则是生成随机数,以确保文件名不会重复。

Find_original_message3.png

保存后进行测试,在 输出 中即可看到,订单号已被添加到文件名中:

Find_original_message4.png

2.发送方向

以发货通知单为例,在发送发货通知单时,知行之桥上的工作流如下,我们在Markant_Map_DESADV端口对文件名进行修改:

Find_original_message5.png

在端口中新增代码脚本,并填入内容:

<arc:set attr="_message.header:filename" value="DESADV_[xpath(ASNNumber) | def | trim]_[_ | snowflake].xml" />

其中,[xpath(ASNNumber) | def | trim]是获取发货通知单号,[_ | snowflake]则是生成随机数,以确保文件名不会重复。

Find_original_message6.png

保存后测试,即可在输出中看到,发货通知单号已经被添加到文件名中:

Find_original_message7.png

根据文件名查找原始报文

在实施过程中完成第一步对文件进行重命名后,在后续文件传输的过程中,所有业务单号将被写入到文件名上。此时,我们就可以根据使用业务单号在知行之桥上查找文件,具体操作如下:

进入日志页面,在搜索框中输入要查询的业务单号,进行搜索,然后找到对应的那行消息,点击查看详情:

Find_original_message8.png

待跳转到详情页面,找到MFT端口,即EDI报文的传输端口,例如AS2/OFTP等,在MFT端口,即可看到对应的原始EDI报文:

Find_original_message9.png

点击文件名称,即可下载原始EDI报文:

Find_original_message10.png

如果您希望了解有关EDI对接的相关信息,欢迎交流。

阅读原文


http://www.kler.cn/news/283666.html

相关文章:

  • 英文论文格式编辑(二)
  • redis list 单推送消息,批量消费消息,springboot实现
  • Nginx配置实例-负载均衡
  • 密码学(二)---DES、SM、RSA
  • c++中的匿名对象及内存管理及模版初阶
  • 【系统架构师软考】计算机网络知识(四)
  • 在类Unix操作系统(如Linux)上运行Windows应用程序方法小记
  • flutter和原生Android以及IOS开发相比有什么优缺点?
  • Gradio学习——图像流输出
  • ShenNiusModularity项目源码学习(3:用户登录)
  • MFC工控项目实例之七点击下拉菜单弹出对话框
  • Python使用总结之Flask-SocketIO介绍
  • 查看显卡cuda版本
  • PD协议沟通过程
  • 最大池化、非线性激活、线性层
  • 【C++ Qt day3】
  • PrimeVue DataTable 属性值解析
  • validationtools中按键测试选项光标移除
  • JavaEE 第18节 TCPUDP优缺点(对比)
  • 基于SVM的手势识别,SVM工具箱详解,SVM工具箱使用注意事项
  • 【策略方法】设计模式:构建灵活的算法替换方案
  • 已经git push,但上传的文件超过100MB
  • 都2024了,还在为uniapp的app端tabbar页面闪烁闪白而发愁吗
  • AI:引领未来的科技浪潮
  • 基于vue框架的餐馆管理系统jo0i7(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • 解决Vite+Vue3打包项目本地运行html白屏和报错问题
  • 【iOS】Masonry学习
  • EasyCode实现完整CRUD + 分页封装
  • RateLimiter超时
  • Memcached stats items 命令