La-Z-Boy EDI项目测试流程详解

news2024/11/15 16:01:17

在此前的文章《家居EDI:La-Z-Boy EDI 项目案例》中,为大家介绍了La-Z-Boy的EDI 需求以及在知行之桥EDI系统中的具体实现,本文主要为大家介绍La-Z-Boy EDI项目测试流程。

梳理需求文档

La-Z-Boy 提供的EDI资料主要包括:EDI 850订单以及EDI 856发货通知的规范文件(版本号:4010),La-Z-Boy 的AS2连接信息文档以及标签模板与详细介绍等。

AS2连接测试

开始与La-Z-Boy建立连接测试之前,需要完成以下准备:

1.部署服务器,服务器需要具备可供外网访问的 IP 和域名,开通EDI所需端口以及防火墙白名单设置等。
2.交换配置信息,需要与La-Z-Boy交换连接信息。La-Z-Boy会将其测试和生产环境的AS2连接信息(La-Z-Boy-AS2-Residential文档)通过邮件提供给供应商,供应商需要提供EDI供应商信息、AS2基本信息、AS2测试环境和生产环境的连接信息,可以按照如下所示的模板提供:

La-Z-Boy-EDI_TEST1.png

互相交换AS2连接信息之后,需要在各自的EDI系统中配置连接信息,开始连接测试。主要验证:La-Z-Boy 发送测试文件给供应商,供应商确认是否收到。供应商给La-Z-Boy 发送测试文件,La-Z-Boy 确认是否成功收到。在知行之桥EDI系统中,可以在AS2端口(可以理解为功能模块)中进行可视化的配置,无需代码。界面如下所示:

La-Z-Boy-EDI_TEST2.png

La-Z-Boy 发送测试文件给供应商的时候遇到报错,可以请La-Z-Boy 提供MDN,了解详细的报错信息,在本案例中,未能成功收到La-Z-Boy 发来的测试文件是因为La-Z-Boy 的EDI团队未能正确配置供应商的AS2 ID,沟通修改即可。

实施方案

通过AS2传输通道,实现了La-Z-Boy的EDI系统与供应商使用的知行之桥EDI系统的连接,接下来需要解决如何实现供应商ERP系统与EDI系统的数据同步,知行之桥EDI系统支持多种集成方式,如:中间数据库、API等。

本案例中,供应商使用的ERP系统为金蝶云星空,支持通用API接口、定制API接口。经过会议沟通,最终决定使用中间数据库方式集成,实现:

  • EDI系统提供采购订单数据给ERP系统(解析EDI 850采购订单)
  • ERP系统提供发货通知数据给EDI系统(生成 EDI 856发货通知)

ERP中的字段如果进行修改、删除或者变更,需要保证数据库中间表以及知行之桥EDI系统的同步更改。EDI会定时从中间数据库读取数据,因此企业传到中间数据库中的ASN发货通知数据必须是确认过没问题,可以直接发送给La-Z-Boy的。

在本次案例中,标签部分由ERP系统来完成。知行之桥EDI系统也支持制作标签,需要根据La-Z-Boy提供的标签文档进行设计。操作步骤如下:如何使用PDF端口生成标签Label?

EDI 850 采购订单
业务层面沟通

BEG字段主要包含订单类型以及采购订单编号与日期,其中BEG01的值一般为00表示原始订单,BEG02的值一般为OS表示Special Order (Sold),SA表示Stand-alone (Stock)。

示例:

BEG*00*SA*12123520**20240814**NA!
报文字段沟通

EDI实施过程中知行的实施工程师将会根据La-Z-Boy提供的规范整理一个Mapping文件,包含规范中的所有业务字段。对于订单,EDI会把La-Z-Boy发送过来的订单里的所有业务数据都解析到中间数据库表,然后ERP根据供应商的需求读取所需字段即可。

对于业务人员来说,需要查看EDI中提供的哪些业务字段是需要抓取到数据库的,如果EDI中的字段在ERP中没有能够匹配的,则需要ERP顾问在ERP系统中添加EDI需要的字段。

EDI 856 发货通知/ASN
业务层面沟通

存放 EDI 856 发货通知的数据库中间表中会有一个status列,ERP中新增数据时,需要在此列填写0(表示新增数据),EDI系统从数据库表中读取后会将Header表中的状态更新为1(表示数据已被抓取)。

体现在知行之桥EDI系统中,需要在处理 EDI 856 的SQLServer端口的 设置 选项卡下,选择 操作 为 Select,在Select配置中,添加一行代码:

<status updateValue='1' />

如下图所示:

La-Z-Boy-EDI_TEST3.png

La-Z-Boy 在本次项中的包装方式较为简单,采用单包装(Single Pack),包装结构为(SOIP)。

报文字段沟通

对于发货通知而言,ERP需要确保将La-Z-Boy要求的必需字段以及供应商需要传输给La-Z-Boy的字段传输到中间数据库中。

对业务人员来说,需要确认发货通知中哪些字段是业务人员目前可以提供的,如果不能提供,可以先进行测试,通过邮件沟通,如果La-Z-Boy要求必填,则需要内部沟通确认,在业务系统中添加字段。

EDI业务测试

1.EDI 856 发货通知中的收货方信息(ship to)是必填,业务测试过程ERP提供的数据中多次出现缺失,建议ERP加强校验;
2.EDI856 缺失发货方信息(ship from)段,包括N4(包含了发货方城市、省份、以及邮编和国家代码)。需要注意类似这种必填值必须提供,否则将无法通过业务测试。
3.供应商在填写过程中,可能会漏填REF中的发票号信息,注意,此信息为必填项。
4.LIN03中存放的序列号即为包装号,La-Z-Boy要求的LIN03(supplier Item Number)应为supplier number+9位数字,需要保证唯一性,如supplierNo000000001。

项目成果

为满足La-Z-Boy对供应商的要求,供应商需要在本地服务器上部署知行之桥EDI系统,搭建如下所示的工作流:

La-Z-Boy-EDI_TEST4.png

点击获取开源的La-Z-Boy 示例工作流

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

阅读原文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2038903.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在IntelliJ IDEA中利用Git拉取项目

1 访问gitee或github&#xff0c;找到项目对应的仓库&#xff0c;并复制仓库地址。 2 打开IDEA&#xff0c;依次选择菜单:File->New->Project from Version Control 3 在弹出框中输入仓库路径(从第一步中gitee或github复制的路径)并点击Clone 4 在弹出框中输入gite…

Mybatis框架——使用案例详细教程

文章目录 一、项目创建1.1 创建 Idea 项目1.2 导入必要依赖 二、数据库配置2.1 创建数据库2.2 配置数据库连接信息 三、MyBatis 配置3.1 创建配置文件 mybatis-config.xml3.2 创建 SqlSessionFactory 实例 四、项目测试和运行4.1 创建实体类4.2 创建 mapper.xml 文件4.3 创建 m…

CentOS7安装Docker教程(含最新镜像地址)

文章目录 1 安装前必读2 安装Docker的详细步骤3 配置镜像加速 1 安装前必读 在安装 Docker 之前&#xff0c;先说一下配置&#xff0c;我这里是Centos7 Linux 内核&#xff1a;官方建议 3.10 以上&#xff0c;3.8以上貌似也可。 注意&#xff1a;本文的命令使用的是 root 用户…

UE基础 —— 工具和编辑器

目录 Level Editor Static Mesh Editor Material Editor Blueprint Editor Physics Asset Editor Behavior Tree Editor Niagara Editor UMG UI Editor Font Editor Sequencer Editor Animation Editor Control Rig Editor Sound Cue Editor Media Editor nDisp…

JUC-变量的线程安全

成员变量和静态变量是否线程安全&#xff1f; 如果它们没有共享&#xff0c;则线程安全&#xff0c;即没有被外部访问。 如果它们被共享了&#xff0c;根据它们的状态是否能够改变&#xff0c;又分两种情况 如果只有读操作&#xff0c;则线程安全 如果有读写操作&#xff0c;…

【图形学】TA之路-矩阵应用平移-旋转-大小

矩阵应用&#xff1a;在 Unity 中&#xff0c;Transform 和矩阵之间的关系非常密切。Transform 组件主要用于描述和控制一个物体在三维空间中的位置、旋转和缩放&#xff0c;而这些操作背后实际上都是通过矩阵来实现的 1. Transform 组件与矩阵的关系 Transform 组件包含以下…

java简单实现双链表代码

package com.se.day03.aGenericity.eDataStructrue;/*** 自定义一个双链表的数据结构。**/public class MyDoubleList<E> {//新创建容器时&#xff0c;头部和尾部元素都是null,size0;private Node head; //头部元素private Node tail; //尾部元素private int size; // …

特殊数组Z(前缀和)

前言&#xff1a;想了好一会才想到是前缀和来写&#xff0c;并且我一开始的是从考虑这个数和这个数后面一个数&#xff0c;导致边界烦了我好久 看了一下&#xff0c;考虑这个数和这个数前一个数更好 class Solution { public:vector<bool> isArraySpecial(vector<int…

按键按下,LED 点亮,但是,理论和现象不符

通过 Debug &#xff0c;解决了一个 Bug&#xff0c;很开心&#x1f604;&#xff0c;记录下 想实现的效果&#xff1a;按下 PB12 上的按钮&#xff0c;PA7 上的 LED 点亮&#xff1b;松开&#xff0c;LED 熄灭 单片机型号&#xff1a;STM32F103C8T6 PB12 为上拉电阻&#xf…

高可用负载均衡集群

高可用负载均衡集群 相比单点的负载均衡集群&#xff0c;高可用负载均衡集群可以解决以下两个问题。 1. real server某个服务down会怎么样&#xff1f;如何解决&#xff1f; 解决 自动调用好的real server 2. scheduler server down会怎么样&#xff1f;如何解决&#xff1f…

Docker容器管理之FAQ

一、前言 某次&#xff0c;某容器服务发现无法使用了&#xff0c;查看状态为restaring状态&#xff0c;后看是云主机重启了&#xff0c;导致本地的nfs-server未自动启动&#xff0c;导致关联的集群主机&#xff0c;远程挂载点无法使用&#xff0c;影响容器服务运行。故此&#…

Qt编译错误: error: msvc-version.conf loaded but QMAKE_MSC_VER isn‘t set

方法一&#xff1a;清空构建目录 清空当前目录的多余文件即可&#xff0c;具体操作如下 一个正常的Qt项目刚被创建且没有编译时是这样的 一个main文件&#xff0c;一个pro文件&#xff0c;一个user文件&#xff0c;一个头文件(.h)&#xff0c;和一个源文件(.cpp)&#xff0c;一…

springsecurity的学习(四):实现授权

简介 springsecurity的授权&#xff0c;自定义授权失败的处理&#xff0c;跨域的处理和自定义权限校验方法的介绍 授权 权限系统作用 在后台进行用户权限的判断&#xff0c;判断当前用户是否有相应的权限&#xff0c;必须具有所需的权限才能进行相应的操作&#xff0c;以此…

高通分享:glTF 2.0扩展MPEG、3GPP在AR/VR 3D场景的沉浸式体验

日前&#xff0c;高通技术标准高级总监托马斯斯托克哈默尔&#xff08;Thomas Stockhammer&#xff09;和高通技术标准总监伊梅德布亚齐兹&#xff08;Imed Bouazizi&#xff09;撰文分享了ISO和Khronos之间是如何紧密合作&#xff0c;并最终开发出MPEG-I Scene Description IS…

基于LangChain的大模型学习手册(入门级)

前言 时间轴来到2024年的下半年&#xff0c;“大模型”这个术语&#xff0c;从几乎是ChatGPT的代名词&#xff0c;转变为AI领域一个划时代产品的广泛词汇。从单一到广泛&#xff0c;代表大模型这个世界级产品&#xff0c;正在走向枝繁叶茂的生命阶段。截止现在&#xff0c;目前…

【算法分析与设计】期末复习-小题100道

目录 0、基础知识点 一、单选题 二、多选题 三、判断题 0、基础知识点 &#xff08;1&#xff09;常见时间复杂度与公式&#xff1a; 汉诺塔&#xff1a;T(n)O(2^n) 全排列&#xff1a;T(n)O(n!) 整数划分&#xff1a; 正整数n的划分&#xff1a;p(n)q(n,n) 分治&#…

推荐系统三十六式学习笔记:工程篇.效果保证31|推荐系统的测试方法及常用指标介绍

目录 为什么要关注指标推荐系统的测试方法1.业务规则扫描2.离线模拟测试3.在线对比测试4.用户访谈 常用指标1.系统有多好&#xff1f; 假设你已经有了自己的推荐系统&#xff0c;这个系统已经上线。 为什么要关注指标 面对推荐系统这样一个有诸多复杂因素联动起作用的系统&am…

C++入门:类和对象(入门篇)

目录 前言 类的定义 1.类定义格式 2.从结构体到类的跨越 3.访问限定符 4.类域 5.类的实例化 类的默认成员函数 1.默认成员函数的定义和学习方向 2.构造函数 3.析构函数 4.拷贝构造函数 5.重载运算符 总结 疑难解答 1.this指针的用法 2.为什么拷贝构造函数的第一个参数必须…

LeetCode 热题 HOT 100 (024/100)【宇宙最简单版】

【哈希表】No. 0128 最长连续序列【中等】&#x1f449;力扣对应题目指路 希望对你有帮助呀&#xff01;&#xff01;&#x1f49c;&#x1f49c; 如有更好理解的思路&#xff0c;欢迎大家留言补充 ~ 一起加油叭 &#x1f4a6; 欢迎关注、订阅专栏 【力扣详解】谢谢你的支持&am…

WPF中RenderTransform,LayoutTransform区别

RenderTransform RenderTransform 是在渲染阶段应用的变换。它不会影响控件的布局&#xff0c;只会影响控件的外观。常用于动画和视觉效果。 • 应用时机&#xff1a;在控件已经完成布局之后。 • 影响范围&#xff1a;仅影响控件的外观&#xff0c;不影响布局。 • 常见用途&…