EDI 学习开发(一)

  最近有个需求,关于EDI 的开发,效果烂成一坨屎,写个总结,记录这坨屎。

  配置文件:01.EDI.Export.Config(在EDI 服务器SystemConfig目录下)

       02.EDI.TypeConfig(三个地方使用:客户端SystemConfig,AppServer/Systemconfig,EDI 服务/SystemConfig)

       03.校验文件:IFTMBF.validator.Xml(三个地方:客户端SystemConfig/EDI,Server/Systemconfig/EDI,EDI 服务/SystemConfig/EDI)

             (修改时将Mapping中的Name属性值改为当前新增的EDI名称)

         04.IFTMBF.XSLT(Mapping时,对应节点与XML文件进行匹配,将报文转换成对应的txt格式。)

  客户端配置:三个中心:

         01.系统工具:->基础数据->状态类型->委托单列表->海运单证(HBL界面->新增(对应配置EDI.TYPE.CONFIG)

              状态定义->委托单列表

       02.基础数据 :交换配置->交换控制长度(只修该值)为6

         03.EDI 中心:EDI类型->委托单列表->新增->(描述即为在界面显示的下联菜单)

              代码转换->客户代码->代码转换类型->代码转换列表

  EDI配置中的表(用于升级抓取脚本):

       EDI_CODE_CONVERT_CONFIG

       SB_STATUS_TYPE

       EDI_MESSAGE_TYPE

        EDI_INTERCHANGE_CONFIGURATION

       EDI_PARTNER_CODE

         edi_message_reference

       edi_message_reference_detail

  存储过程:

        取数存储过程:SP_EDI_SEARCH_IFTMBF

       校验存储过程:SP_EDI_CHECK_XXX

  注:在校验文件中,搜索“true”,值为true的执行校验,为空的字段不进行校验。

    MappingFiles->xslt文件的字段相应增删。

    ***每次有新文件覆盖或者新增,必须重启相应的EDI 服务***

  关于升级:

      01.备份文件(之所以能够苟活至今,全靠备份功夫还行):

        APP Server SystemConfig(EDI.Type.Config,EDI.Export.config)/edi(IFTMBT.Validetor.Xml)

        APP Server  Download/(Update.Xml,EDI.Type.Config.Zip,EDI.Export.config.Zip)(好像EDI.Export.Config文件只在EDI Server中)

        EDI Server SystemConfig(EDI.Type.Config,EDI.Export.config)/edi(IFTMBT.Validetor.Xml)

        EDI Server SystemConfig /MappingFiles/IFTMBF.XSLT

      02.升级文件:

        只需打包一个文件SystemConfig(客户端:SystemConfig/EDI.Type.Config,EDI.Export.config)

        其余为EDI Server 和 APP Server 中对应路径的文件(参照备份)

  常犯的错误及解决方法:

      01.删除时没有提示某个字段的校验(EDI.Server中没有获取对应的MSG_ID,导致执行对应存储过程是没有返回校验结果的数据)

      02.测试库报文生成ok,但是正式库日志说明报文生成ok,但找不到对应报文(覆盖了新的EDI.Export.Config文件,没有重启EDI服务,导致生成的报文被FTP抓走)

      03.生成的报文数据缺少或者末尾段的统计报文数目错误(XSLT与生成的XML格式报文元素节点调试,是否Mapping时,没有找到相应的节点,没有生成对应的报文。统计数目:在XSLT文件中有个Select:count="/*/*XXXXX" 的统计表达式,其实这个表达式 我一点也没看懂。)

心得:

  两个调试:

      01.抓取对应委托单的LOG_ID,找到对应存储过程检查返回的报文数量以及各式;

      02.调试XSLT(用VS打开,添加生成XML格式的报文),看Mapping节点是否一一对应,生成的报文格式与数量是否一致。

EDI 学习开发(一)

时间: 2024-11-10 07:27:42

EDI 学习开发(一)的相关文章

OPC学习开发记录(C#):OPC客户端【开篇】

OPC客户端 1.前言 思前想后,还是写下来实在一点,一来可以对自己的学习开发结果进行总结,二来可以锻炼自己表达能力,如何能够将意思表达清楚.博客园真的没有认真做做记录,也不会排版,丑的一比.关于OPC开发的,从零慢慢开始学习(谁不是呢),从简单的开始,OPC客户端是怎么使用的问题,站在用户(相对)的角度,也是比较简单的一部分,易从这一部分入手.根据网上的源码,我很快就自己开发了一个将就能用的OPC客户端,主要目的还是掌握OPC的结构和用法,为以后OPC服务器开发做铺垫.本篇为记录开篇,新手上路

Delphi 7学习开发控件(继承TGraphicControl只画一条线)

我们知道使用Delphi快速开发,很大的一方面就是其强大的VCL控件,另外丰富的第三方控件也使得Delphi程序员更加快速的开发出所需要的程序.在此不特别介绍一些概念,只记录自己学习开发控件的步骤.假设我们要开发一个画直线的控件,那么我们从下面开始做:1.菜单栏→Component→New Component,在弹出的对话框中按照提示添加: Ancestor type 父类:TGraphicControl  [Controls]Class Name 类名:TLineToPalette Page

WPF学习开发客户端软件-任务助手(下)

时光如梭,距离第一次写的 WPF学习开发客户端软件-任务助手(已上传源码)  已有三个多月,期间我断断续续地对该项目做了优化.完善等等工作,现在重新向大家介绍一下,希望各位可以使用,本软件以实用性为主,采用MVVM模式(有小部分没有修改过来),小巧.使用方便. 具体功能与更新如下: 计划助手:本软件由[email protected]开发与维护,免费使用,如有好的意见或建议,可发送邮件到[email protected],谢谢使用!注(功能与特色):1.本软件使用方便.操作简便:2.本软件可设置

WPF学习开发客户端软件-任务助手

本人纯属WPF新手,布局和WPF的开发水平相当欠缺,从个人来说,还是比较喜欢WPF的,有人说WPF是界面加上WINFORM,我不这样认为,WPF与WINFORM主要的不同在于数据绑定. 这个软件虽然功能比较简单,没有做分层设计,也没有使用MVVM的开发模式,但也确实花了我不少的时间,算是这段时间学习WPF的结果吧,在此给大家展示一下,也给同行的新手门一个参考的例子(喜欢不会是误导). 软件具体功能如下: 1.本软件可以设置计划任务运行的周期:一次.每月.每天.每小时.间隔分钟等不种不同的运行模式

Delphi 7学习开发控件

我们知道使用Delphi快速开发,很大的一方面就是其强大的VCL控件,另外丰富的第三方控件也使得Delphi程序员更加快速的开发出所需要的程序.在此不特别介绍一些概念,只记录自己学习开发控件的步骤.假设我们要开发一个画直线的控件,那么我们从下面开始做:1.菜单栏→Component→New Component,在弹出的对话框中按照提示添加: Ancestor type 父类:TGraphicControl  [Controls]Class Name 类名:TLineToPalette Page

深度学习开发环境搭建

深度学习开发环境搭建 https://www.cnblogs.com/ai-developer/p/10022115.html 工欲善其事,必先利其器.首先我们需要花费一些时间来搭建开发环境. 1.安装python.python是人工智能开发首选语言. 2.安装virtualenv.virtualenv可以为一个python应用创建一套隔离的运行环境,避免不同版本的python或第三方库互相影响.类似的虚拟环境还有anaconda,anaconda自带常用库,因此安装包有几百兆,与anacond

Python 学习开发的两年后的反思

背景介绍 pyqt 客户端方案 C 和python 混合编程方案 纯python服务器解决方案 由于对服务器开发熟悉程度不高暂时未想到应用程序服务器的开发应用求指点 网络快速测试方案 学术研究 技术规划 反思 问题 背景介绍 三年的C++ windows 客户端的开发经验, 接触python也快有两年了. 记得最开始会选择接触python的原因是因为李开复老师的强烈推荐. 接触以后一直对python简洁的编程风格所倾倒.自己的C++ 编程风格和设计思路上受到python 的影响很大,因为这个原因

预警信息-各工序预警学习开发

1 /* 各工序预警开发学习 */ 2 --查询数据库:KBLIVE 中 用户自定义 数据表 主要看建表时间 3 select * from sysobjects where xtype='U' ORDER BY CRDATE DESC 4 5 --预警: 6 select * from WN_DATA0001 order by ENT_DATE 7 8 --预警:解决方案 9 /*37 条数据*/ 10 select * from WN_DATA0002 11 12 /*方便直观查看具体预警信

学习开发

我们做软件需要了解到什么是敏捷流程.在软件工程的环境里,“敏捷流程”是一系列价值观和方法论的集合.现有的做法和敏捷的做法对比起来就是个人和交流.可用的软件.与客户合作.响应变化.第一步需要找出完成产品需要做的事情.我们小组希望通过微信平台实现课程资料管理,线上师生互动的功能等.第二步决定当前的冲刺需要决定的事情,各成员分好自己的任务.第三步,冲刺,集中在一起写代码.在解决问题的过程中需要考虑相互依赖的关系,希望这个软件能实现学生及老师之间的互动,我们需要完成这个软件需要多长时间.在软件项目中学会