EDI JSON解决方案之接收JSON

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

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

Hello,大家好,这里是小知课堂,之前的课程中我们已经了解了如何将一个EDI报文解析为Json格式的文件,今天我们来看看如何处理接收到的JSON文件。根据接收JSON文件方式的不同,处理JSON文件的方式也有差异。通常情况下,我们会利用知行EDI系统自带的API端口将收到的JSON文件写入数据库中,然后处理收到的这些数据,这种方式需要主动将JSON文件POST到我们的API服务器上,由API端口写入数据库中,接下来则按照数据库方案生成EDI报文即可。同时我们要为获取到的JSON文件返回的Response JSON文件,或者从API服务器上直接GET到JSON文件,这时通过Http请求的方式获取到的JSON文件就无法直接写入数据库,那这些情况下如何处理JSON文件呢?小知给你答案~

1. 获取JSON文件

要处理获取到的JSON文件,首先需要知道我们是如何使用Http 请求获取JSON文件,下面小知就来说明如何使用Http请求来获取JSON文件。

1.1 获取POST请求的Response JSON文件

在《EDI与JSON解决方案——EDI报文JSON格式的解析和传输》中,我们讲解了如何使用POST方法将JSON文件发送的API服务器中。发送成功后API服务器可能会回复一个Rsesponse JSON文件,知行EDI系统提供的httpPost方法可以将该文件保存的http:content参数中,如下所示:


  



我们将获取到的JSON数据放到output.data中,之后将以文件的形式push出去,就可以获取到对应的JSON文件。

1.2 GET请求获取JSON文件

除了获取到返回的Response JSON文件外,有时我们需要使用GET请求直接从API服务器上获取JSON文件,使用GET方法获取JSON文件的方法和使用POST方法获取JSON文件的方法类似,需要使用知行EDI系统提供的httpGet方法获取JSON文件,使用该方法获取JSON文件的示例如下所示:








  



和httpPost方法类似,都需要先将要求的值放到其对应的参数中,其中url参数为必须的,其余的均为可选参数。这里只列举了几个参数,httpGet方法支持的参数可以参考知行EDI系统的Help界面,如下图所示,这里我们可以详细了解到httpGet方法支持的参数。

edi

配置了这些参数后,调用httpGet方法,将获取到的JSON文件保存到其content参数中,最后再push出去就可以得到我们需要的JSON文件了。

2. 处理JSON文件

在获取了对应的JSON文件后,我们需要根据需要获取JSON文件中有用的信息,一般情况下我们会利用JSON端口将获取到的JSON文件转换为XML文件后,在XML Map端口与其他结构的XML文件进行映射,映射完成后,就可以将该JSON文件的有效信息提取出来了。但是在此小知要介绍一种不利用JSON端口,直接获取JSON文件中有效信息的方法,在此,我们就需要借助知行EDI系统为我们提供的rsb代码了。这里我们使用的是jsonDOMSearch方法:




  

和其他的方法类似,在使用该方法时需要先设置此方法的必要参数,uri和jsonPath,uri指代需要读取的JSON文件的路径,写为[FilePath]表示在当前端口的send路径下获取当前的文件,jsonPath则是需要获取的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"
    } ] 
}

此时我们设置的jsonPath为/json/order_header,则需要取order_header下order_number属性的值时,我们只需要写为:,而需要获取order_item中buyer_item_number属性的值时,就需要写为:。这样一来,我们就可以按照此方法将JSON文件中需要处理的属性的值一一获取到,并将其放入到需要转换的XML文件中了。

3. 总结

到这里,小知就已经讲解完了如何处理我们收到的JSON文件了,很多同学看完之后是不是还有些云里雾里呢,如果不太清楚我们rsb语言的话,建议参考一下这篇文章《RSB语言实战》。

从技术角度来看,实现EDI报文的JSON格式转换,在我们的知行EDI系统中还是比较容易的,所以如果大家有这方面的需求或者大家在使用我们知行EDI系统中有任何疑惑的地方都可以通过邮件和我们联系。好了,我们这节课就到这里,下篇再见。

了解更多EDI信息,请您电话 150-0298-3180 / 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 交付的稳定性与及时性。

多工厂支持

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