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

2022-05-09 17:48:43 浏览数 (1)

塔吉特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 系统中搭建如下图所示的工作流:

需要注意以下四点操作:

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

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

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

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

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

代码语言: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店采用同一套模板。

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

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

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

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

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

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

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

文章来源

0 人点赞