EDI Json解决方案

Published On: 2020年3月19日Categories: 帮助文档, 操作指南, 脚本和自动化, 解决方案Views: 2

© All rights reserved. • 西安知行软件有限公司 • 陕ICP备09022277号

Hello,大家好,这里是小知课堂,这节课小知带大家来探索Json文件的前世今生。JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。因此在EDI项目中常常需要将EDI报文解析为Json格式的文件来与ERP系统集成。与其他方案类似,Json格式的EDI 解决方案中同样包含传输和转换两个步骤,但如何将收到的EDI报文解析为能与ERP系统集成的Json文件呢?小知给你答案。

要将EDI报文解析为Json格式的文件,首先需要了解EDI报文的结构,根据报文设计出对应的XML文件格式,最后将XML文件转换为Json格式的文件,再将其Json文件发送到ERP系统对应的API中即可。

下面小知就以ORDERS报文为例,来带大家看看如何将EDI报文解析为对应的Json文件,并传输到ERP系统中。

1 EDIFACT ORDERS报文

下方即为示例ORDERS报文的内容:

UNA:+.? '
UNB+UNOC:3+12345678901:14+123456789012:14+200202:0926+10001'
UNH+1+ORDERS:D:96A:UN:EAN005'
BGM+220+123456789' 
DTM+137:20200202:102'
DTM+2:20200202:102'
NAD+SU+1234567890102::9'
NAD+BY+1234567890123::9'
CTA+OC+ChinaShangHai:First Street'
COM+?+112233441:TE'
COM+?+443322115:FX'
NAD+DP+1234567890098::9'
CTA+GR+A company:The EDI apartment'
COM+?+123456789:TE'
COM+?+987654321:FX'
NAD+IV+4567890123456::9'
CUX+2:USD:9'
PAT+22++5::D:45'
TOD+3++FOB'
LOC+1+:::BeiJing'
LIN+00010++5463728190345:EN'
PIA+1+123456789:BP::92'
IMD+F+ABC+:::Item01, M, red'
IMD+C+98+::92:M'
IMD+F+35+::92:red'
QTY+21:3:PCE'
PRI+AAA:2.2:::1:PCE'
LIN+00020++6574839201098:EN'
PIA+1+12345678:BP::92'
IMD+F+CBA+:::Item2, S, blue'
IMD+C+98+::92:S'
IMD+F+35+::92:blue'
QTY+21:5:PCE'
PRI+AAA:9.9:::1:PCE'
UNS+S'
MOA+86:56.1'
CNT+2:2'
UNT+31+1'
UNZ+1+10001'

看着这样的EDI报文,难免有些头大,不要着急,小知带大家看看这EDI报文的真面目。首先看看报文的首部的UNA、UNB和UNH字段,这几个字段表示的是EDI报文的头部信息,这些头部信息中包含着该EDI报文Message ID,报文的日期、报文的种类以及报文的规范等信息。同时UNA字段与报文尾部的UNH字段为一对,表示报文的开始与结束。

再往下看,从BGM到LOC字段包含此订单的主信息,其中BGM字段表示此EDI报文的业务主键,DTM表示与此报文有关的日期时间,NAD则表示联系人的信息,例如NAD+SU则表示供应商的信息。CTA以及COM表示联系人的联系方式等信息,LOC则表示地址信息。而从LIN字段到PRI字段则表示此订单的物料信息,通常一个订单中往往包含多种物料,因此在一个报文中可能含有多个此结构。在知道了这些信息后,我们就可以按照此报文的结构来设计对应的XML模板了。

2 设计XML模板

根据报文中对应的字段,我们便可设计出其对应的XML模板,如下所示:


  
    
    
    
    
    
    
    
    
    
      
      
      
    
    
      
      
      
      
      
      
      
    
  

有了模板之后还需要将EDI 报文输出的标准XML文件与此自定义XML文件在XML Map端口完成映射,生成Json文件对应的XML文件。如何使用XML Map端口来映射文件,可以参考XML Map端口实战,映射完成的XML文件如下所示:



  
    1
    1234567890123
    A company
    112233441
    20200202
    USD
    20200202
    The EDI apartment
    4567890123456
    123456789
    0
    1234567890102
    +123456789
    BeiJing
    
      1
      5463728190345
      Item01, M, red
      PCE
      123456789
      2.2
      0
    
    
      2
      6574839201098
      Item2, S, blue
      PCE
      12345678
      9.9
      0
    
  

3 将XML文件转换为Json文件

我们将上面映射好的XML文件,在Json port转换为Json格式就能得到对应的Json文件了,如下所示:

{
  "order_header": {
    "id": "1",
    "buyer_number": "1234567890123",
    "buyer_company": "A company",
    "buyer_telephone": "112233441",
    "create_datetime": "20200202",
    "currency": "USD",
    "delivery_datetime": "20200202",
    "rff_1": "The EDI apartment",
    "invoice_recipent_number": "4567890123456",
    "order_number": "123456789",
    "status":"0",
    "supplier_number": "1234567890102",
    "supplier_telephone": "+123456789",
    "plant": "BeiJing",
    "order_items": [
      {
        "id": "1",
        "buyer_item_number": "5463728190345",
        "item_description": "Item01, M, red",
        "unit_price":"PCE",
        "po_number": "123456789",
        "price_unit": "2.2",
        "status": "0"
      },
      {
        "id": "2",
        "buyer_item_number": "6574839201098",
        "item_description": "Item2, S, blue",
        "unit_price":"PCE",
        "po_number": "12345678",
        "price_unit": "9.9",
        "status": "0"
      }
    ]
  }
}

4 调用Http post请求将Json文件发送到ERP系统中

将EDI报文成功解析为对应的Json文件后,我们还需要将其发送到ERP系统对应的API中,这样才能完成EDI报文与ERP系统的集成。而要如何将此Json文件发送到ERP系统中呢,我们的知行EDI系统为我们提供了方法——利用代码,调用httppost方法,将此Json文件传输到ERP系统中。

下面即为实现此功能的代码:










  



在这段代码中,首先将http post请求的头部信息写入httpPost方法的header属性中,这里要注意,因为Header属性包含了多种参数,所以需要将各个参数对应的值放入其header属性对应的数组中。这些头部的参数中包含认证、服务器,连接等信息,如非必须的头部信息也可以不填写。其次将请求的URL地址写入HttpPost方法的url属性中,再将Json文件的内容放入httpPost方法的postdata属性中。最后调用httpPost方法,传入这些参数,将Json文件发送到对应的ERP系统的API中。

5.总结

到这里我们就已完成了EDI报文解析为Json文件的工作,并通过httpPost方法Post到ERP系统对应的API中,这为EDI集成又提供了一种方案。当然,除了能将EDI报文解析为对应的Json文件外,知行EDI系统同样也能获取Json文件并生成对应的EDI报文。如果想知道这其中奥秘,请听小知下回分解。

了解更多EDI信息,请您电话 177-8250-8152 或邮件 edi@kasoftware.cn 联系我们。点击下方蓝色按钮,即可免费试用EDI软件。

注:文案部分图片及内容来源于网络,版权归原创作者所有,如有侵犯到您的权益,请您联系我们进行删除,给您带来困扰,我们深感抱歉。

为什么选择

知行之桥®?​

根据企业规模与集成需求,提供从本地部署到云端托管的灵活选择

可视化 EDI 工作流

基于拖拽式图形化设计器,零代码构建完整 EDI 业务流程,满足复杂供应链自动化场景。

Odette & Drummond 认证

通过 Odette(OFTP) 与 Drummond(AS2) 权威认证,确保与主机厂安全合规、高可靠的数据交换。

多系统集成能力

提供数据库、REST/SOAP、FTP/SFTP 等标准化接口,实现 ERP、WMS、MES 等系统的双向数据自动同步。

数据映射格式转换

内置可视化 Mapping 编辑器,零代码实现 EDI 报文与企业内部数据格式(XML/JSON…)的映射转换及复杂规则处理。

实时监控预警机制

全流程可视化监控报文状态,支持邮件、钉钉、企业微信自动预警,保障 JIT 交付的稳定性与及时性。

多工厂支持

支持集团级多组织、多工厂架构,实现数据隔离与权限管控,统一平台集中运维,满足大型制造企业多地点协同需求。