IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 如何在EDI系统中区分Target发给不同店铺的订单? -> 正文阅读

[系统运维]如何在EDI系统中区分Target发给不同店铺的订单?

塔吉特Target与供应商传输的是X12标准报文,业务类型包含850(采购订单)、860(订单变更)、864(文本消息)、856(发货通知)和810(发票)。

通过知行之桥EDI系统,供应商可实现与塔吉特Target 的EDI直连,实时交互业务数据,减少库存与人力成本,精益供应链。塔吉特Target选用AS2传输协议向供应商发送850、860、864报文,并接收供应商发送的856和810报文。

在EDI项目实施过程中客户提出了这样的需求:

原计划只有一个店铺接收Target发来的订单,现在需要再增加一个店铺,即通过同一AS2 传输通道同时接收Target给1店和2店的订单。由于1店和2店的订单,是由不同的店铺来处理的,这里需要对Target发送850采购订单进行判断,区分是发给1店还是2店,并将经格式转换后的Excel文件发送至对应店铺指定邮箱。

在知行之桥EDI系统中接收Target发来的文件可以按照如下步骤进行操作:

步骤一:通过知行之桥 EDI 系统的 AS2端口接收Target发送的X12文件
步骤二:经过 X12 端口将X12转换为XML
步骤三:借助Script端口对接收到的文件进行重命名
步骤四:Excel端口负责将XML文件转换为Excel格式
步骤五:利用两个Branch端口对文件进行区分
步骤六:如果收到异常文件,可以通过Notify端口向指定联系人发送邮件提醒
步骤七:利用两个EmailSend端口分别将文件发送至两个不同的联系人

以接收Target发来的850采购订单为例,按照上述步骤在知行之桥EDI 系统中搭建如下图所示的工作流:

edi

需要注意以下四点操作:

1.步骤三中利用Script端口进行文件重命名

由于1店和2店具有不同的供应商代码,因此在重命名环节可以从Target发来的文件中提取供应商代码并放置在文件名中,这样就可以区分1店和2店的850订单了。重命名后的文件名称格式如下:

850_订单号_供应商编号.xml

要实现上述功能,需要在Script端口的 设置 选项卡下的 脚本 中写入响应代码即可,如下图所示:

edi

注意不可以编辑上图红色方框中的代码,在方框下方写入以下代码即可:

<rsb:set attr="xmlIn.uri" value="[FilePath]" />
<rsb:set attr="xmlIn.xpath" value="/Interchange/FunctionalGroup/TransactionSet/\[1\]" />
<rsb:call op="xmlDOMSearch" in="xmlIn">
  <rsb:select value="[xpath('Meta/ST01') | def | trim | xmlencode]">
    <rsb:case value="850">
      <rsb:set attr="file.name" value="850_[xpath('BEG/BEG03') | def | xmlencode]_[xpath('REF\[REF01=\'VR\'\]/REF02') | def | xmlencode]"/>
    </rsb:case> 
    <rsb:default>
      <rsb:throw code="ErrorInfo" desc="File [Filename] was not matched to any port, send error, please check!" />
    </rsb:default>
  </rsb:select>
  <rsb:set attr="output.FilePath" value="[xmlIn.uri]" />
  <rsb:set attr="output.FileName" value="[file.name | def]_[_|snowflake(1,1)].xml"/>
  <rsb:push item="output" />
</rsb:call> 

注意以下代码:

    <rsb:case value="850">
      <rsb:set attr="file.name" value="850_[xpath('BEG/BEG03') | def | xmlencode]_[xpath('REF\[REF01=\'VR\'\]/REF02') | def | xmlencode]"/>
    </rsb:case> 

这部分代码中的BEG03 以及当REF01为VR时的REF02两个字段分别表示订单号以及供应商编号。

以上即可实现提取订单号以及供应商编号并将这两个信息写入文件名中,对收到的文件进行重命名。

2.步骤四中将XML文件转换为Excel格式

需要在Excel端口中上传模板文件,即实施顾问提前设计好的850采购订单Excel模板,1店和2店采用同一套模板。

edi

3.步骤五中,利用两个Branch端口对文件进行区分

Branch端口对接收到的文件按设定条件进行分发,可通过匹配类型、数据类型、操作以及匹配值进行设定。

由于此前我们已经对文件进行重命名,将1店和2店的供应商编号放置文件名中,因此匹配类型就选择文件名称,数据类型选择String,操作选择Matches Glob,匹配值写入店铺对应的供应商编号即可。需要注意匹配值的填写方式,如果供应商编号为123456,则匹配值中应填入123456。

edi

4.步骤七中利用两个EmailSend端口分别将文件发送至两个不同的联系人

这一步骤可以在两个EmailSend端口中分别配置1店和2店接收850订单的邮箱。在 连接 中设置SMTP(发信)服务器的相关信息,在 消息 中设置收件人以及邮件的主题、内容等相关信息。

edi

通过以上操作便实现了在EDI系统中区分Target发给不同店铺的订单,你也可以将以上操作步骤应用在自己的工作流中实现文件的区分和分发。如果在尝试过程中遇到任何问题,欢迎联系我们。

更多EDI信息,请参阅: EDI是什么?
原文链接

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-10 12:16:32  更:2022-05-10 12:17:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:21:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码