前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在EDI系统中区分Target发给不同店铺的订单?

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

原创
作者头像
知行软件EDI
发布2022-05-09 17:48:43
5730
发布2022-05-09 17:48:43
举报
文章被收录于专栏:EDI技术知识EDI技术知识

塔吉特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
edi

需要注意以下四点操作:

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

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

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

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

edi
edi

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

代码语言:javascript
复制
<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>

注意以下代码:

代码语言:javascript
复制
    <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
edi

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

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

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

edi
edi

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

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

edi
edi

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

更多EDI信息,请参阅: EDI是什么?

文章来源

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
即时通信 IM
即时通信 IM(Instant Messaging)基于腾讯二十余年的 IM 技术积累,支持Android、iOS、Mac、Windows、Web、H5、小程序平台且跨终端互通,低代码 UI 组件助您30分钟集成单聊、群聊、关系链、消息漫游、群组管理、资料管理、直播弹幕和内容审核等能力。适用于直播互动、电商带货、客服咨询、社交沟通、在线课程、企业办公、互动游戏、医疗健康等场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档