 上传我的文档
 下载
 收藏
粉丝量:33
该文档贡献者很忙,什么也没留下。
 下载此文档
上海亿通国际股份有限公司上海美华系统有限公司
下载积分:400
内容提示:上海亿通国际股份有限公司上海美华系统有限公司
文档格式:PDF|
浏览次数:156|
上传日期: 22:30:12|
文档星级:
全文阅读已结束,如果下载本文需要使用
 400 积分
下载此文档
该用户还上传了这些文档
上海亿通国际股份有限公司上海美华系统有限公司
关注微信公众号豆丁微信公众号
君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
EDI子系统开发流程.doc
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口easipass.com. All Rights Reserved
版权所有 亿通国际股份有限公司 亿通网赞助商链接
当前位置: >>
EDI子系统开发流程
EDI 子系统开发流程1. EDI 架构介绍1.1. 在 FOCUS 系统中的位置划分EDI 子系统是 FOCUS 系统和外部系统进行数据交换的接口,负责生成/接收符合一定格 式要求的数据文件(报文) 。在生成报文的时候,出于 FOCUS 系统业务流程的末尾;在接收 报文的时候,处于 FOCUS 系统业务流程的开始。1.2. EDI 子系统模块划分EDI 子系统可以分为: Command、YakInterface(接口) 、WPG、YakFront(前置机)及 部分。其中 Command 是按照 FOCUS 系统的 Command 接口要求完成的,用来与客户端进行 交互的部分;YakInterface 为 EDI 子系统的核心部分,完成接收业务数据、业务规则校验、 代码翻译、日志管理;WPG 为第三方中间件,主要用来完成报文格式的转换工作;YakFront 为 EDI 子系统的前置机,完成报文中字符的特殊处理和报文的发送、接收。1.2.1. EDI 子系统的物理架构船公司AppServer EDI Server GUIClient Browser DB 前置机船代系统其他外部系统其中 EDI Server 既是 EDI 子系统。11.2.2. EDI 子系统发送 EDI 报文业务流程EDI文件传递方向代码翻译程序 EDI打包程序客户①客户EDIXML客户端应用程序服务器XMLEDI客户EDI④ ④ ④业务人员②。 。 。EDI③EDI④前置机EDI服务器客户文件生成&分发程序其中各步骤的过程为: ① 业务员将要生成 EDI 文件的 XML 格式的数据上传到应用程序服务器; ②(业务处理 YakInterface) 应用程序服务器通过“EDI 打包程序”和“代码翻 译程序”,将收到的 XML 格式的数据转换为 XML 格式的 EDI 报文,发送到 EDI 服 务器; ③(映射、WPG 格式转换) EDI 服务器将收到的 XML 格式的报文转换为 EDI 文件, 并附上说明信息,通过数据流发送到前置机上或应用程序服务器上,应用程序服 务器再将 EDI 数据流发送到客户端; ④ (前置机业务处理 YakFront)前置机上的“文件生成&分发程序”将接收到的 EDI 数据流转换为 EDI 文件,并根据附加信息分发给不同的客户,或客户端的“文 件生成程序”将接收到的 EDI 数据流转换为 EDI 文件,并通过 E-Mail 或其它方式 发送。21.2.3. EDI 子系统接收 EDI 报文业务流程报文传递方向 代码翻译程序 EDI解包程序客户Email或其他方式⑤EDI查询 查询结果④DataEDI客户EDI客户端① 业务人员⑥应用程序服务器XML数据库服务器EDI客户EDI① ① ① ①EDI③。 。 。②EDI前置机EDI服务器客户 监视&发送程序 EDI校验程序其中各步骤的过程如下: ① 客户将 EDI 文件上传到前置机或通过 E-Mail 等方式发送给业务人员,再由业务 人员上传到前置机; ② 前置机上的“监视&发送程序”将接收到的 EDI 文件直接传送到 EDI 服务器进 行解包; (前置机处理) ③ EDI 服务器上的“格式自动识别程序”和“EDI 校验程序”对 EDI 文件进行预处 理,经过预处理的 EDI 文件通过格式转换,生成 XML 格式的报文,发送到应用程 序服务器; (WPG 映射处理) ④ 应用程序服务器通过“EDI 解包程序”和“代码翻译程序” ,将收到的 XML 格 式的报文转换为 XML 格式的数据包,发送到客户端或存入数据库; (YakInterface)1.3. Command主要与 客户端进行交 互, 完成 与业务操作相 关的发送 EDI 的准备, 并生成符合 YakInterface 要求的数据,在该 Command 中调用 Agent 来完成相应的生成、发送报文的操 作。包括 EDICommand 和商务相关的 Command。 EDICommand 主要完成发送订舱单、提单确认、装箱单三种类型报文的发送工作。根据 不同的报文类型,EDICommand 对业务数据(主要是委托以及相关的数据)进行重新整理, 生成符合 EDI 子系统(YakInterface)要求的报文(MessageObject) 。商务相关的 Command3在商务子系统中完成,用来生成 SAP 和用友的财务接口文件。 在 FOCUS 系统中,启动时会自动加载 EDI 子系统的入口程序 Controller,需要使用 EDI 子系统的 Command 根据各自的业务需要,通过该 Controller 来获得 EDI 子系统提供的不同 类型的 EDI 功能模块实例来完成其要求。具体的调用方式如下:EDIAgent ediAgent = try { ediAgent = (EDIAgent) Controller.getInstance().getService(&EDIAgent.Instance&); } catch (Exception e){ }其中 EDIAgent.Instance 表示提供发送与订舱业务相关 EDI 报文的功能模块,系统目前 支持下列不同的功能模块: 功能模块名称 EDIAgent.Instance SAPAgent.Instance UFAgent.Instance 功能描述 发送与订舱业务相关 EDI 报文的 根据 SAP 财务系统的格式要求,把 FOCUS 系 统的相关商务数据生成 SA 报文 根据 SAP 财务系统的格式要求,把 FOCUS 系 统的相关商务数据生成 SA 报文获得所需要的功能模块的实例以后,按照下面方式来调用:MessageObject responseMO = MessageObject requestMO = new MessageObject(); responseMO = ediAgent.getResult(requestMO);其中 requestMO 是业务 Command 根据发送 EDI 的要求, 经过对特定业务数据处理后生 成的,这里用 new 操作来代替。1.4. YakInterfaceYakInterface 是 EDI 子系统的核心部分,完成了 EDI 收、发的主要业务功能。 发送报文时,从 Command 接收业务数据,根据报文格式和接收方调用不同的 Policy, 完成业务规则校验、代码翻译、日志处理,并将其转换成统一的 YakInterface 内部 EDI 格式, 再发送到 WPG 进行格式转换。 接收报文时,从 WPG 接收转换后的统一的 YakInterface 内部格式,根据“壳”信息中 的数据,来调用不同的 Policy 完成业务规则校验、数据保存、日志处理。 其设计结构上的核心为以下两点: ? 数据耦合 在 YakInterface 内部各组件之间,使用共享的数据缓冲区来完成数据的交换,以适 应未来可能会发生变化的业务处理方式。4?Policy 模式 在发送和接收报文的过程中,对于具体的业务处理,采取多级 Policy 的设计模式, 能够灵活应对不同报文格式和接收方的要求。1.4.1. YakInterface 逻辑架构Interface Sub-System(接口子系统)子系统控制器Application ServerEDI ServergetService() Controller控制器Agent Instanceregister()register()register()register()register()P2&UP4. 准备数据Biz Command 业务功能 组件getResult(MO)Formatter 格式转换 器transfer()Transfer 代码翻 译器get()|put() put()|get() Return MO Agent 任务代理 DataBuffer数据交换区get()|put()register()Cache 缓存 器Message Target Delegate 目标代理 MQClientQueue EDI Server QueueQueueQueueMessageq如果调用方式为同步调用, 返回MO中包含实际转换后数据 (目前不使用同步模式) q如果调用方式为异步调用, 返回MO中仅包含操作状态C1. 接收 数据P3&UP3. 转发数据P4&UP2. 生成数据C1:表示统一入口。 P2-P4:表示打包的流程。 UP2-UP4:表示解包的流程。51.4.2. YakInterface 组件架构Application Server EDI Server Front 前置机LogEDI Formatter 格式转化器Code MappingSAP_Accounting FormatterBiz Components 业务功能模 块Agent 任务代理UF_Accounting FormatterTransfer Component 代码翻译器Controller 控制器TargetDelegate 目标代理IBM WPGCommunication AgentPostProcessor & PreProcessor[PolicyEngine] Validate BizRule & Log2DB & Save2DBCacheManager 缓存管理Hibernate Component其中各组件的说明如下: ① EDI 处理模块与其他处理模块之间的交互都通过代理完成,其中 Agent 负责服务器 端业务功能组件与 EDI 处理模块之间的交互;TargetDelegate 负责 EDI 处理模块与 EDI Server 之间的交互。 ② EDI Formatter:负责对 EDI 进行打包和解包 ③ SAP_Accounting Formatter: 负责对 SAP 格式报文进行打包 ④ UF_Accounting Formatter:负责对用友格式报文进行打包 ⑤ Transfer: 代码转换,即将系统定义的代码转换为目标格式代码 ⑥ PolicyEngine: 业务策略引擎 (根据定义的策略进行业务规则校验、 记录数据库日志, 回填业务数据) ⑦ Controller: 负责控制 Agent 之间的交互 ⑧ log: 操作日志组件 ⑨ CacheManager:缓存组件 ⑩ Hibernate Component:数据映射组件,使用框架公用组件完成数据持久化 11 ○ PostProcessor&PreProcessor:前置机对打包后处理和解包预处理的组件,主要完成 对 EDI 报 文的特殊字符的处理和还原以及脱壳和加壳处理1.5. WPGWPG 为第三方中间件,用来完成报文格式的转换。 发送报文时,接收 YakInterface 发送的标准格式的报文,再根据不同的报文格式和接收 方,生成具体的基本符合接收方要求的报文,并加上与报文处理相关的“壳”信息,再将 生成的报文发送到前置机进行最后的处理。6接收报文时,接收前置机发送的不同格式的报文,转换成统一的接口内部格式,发送 给 YakInterface。 WPG 主要使用与之配合客户端工具 DISClient 进行报文格式的定义和报文格是的转换。1.6. YakFront发送报文时,收到 WPG 发送的报文,再根据配置信息和报文中的“壳”信息,对报文 进行字符的校验和特殊处理,并去掉“壳”信息,最后通过指定的方式把报文发送出去。 在接收报文时, 根据配置信息和不同的发送方, 对报文进行特殊字符处理, 并加上 “壳” 信息,再发送到 WPG。2. EDI 开发步骤2.1. 报文格式分析发送报文时,系统支持交通部和 UN/EDIFACT 两种标准,另外有些船公司的报文为其自 定义格式。交通部标准的报文,以上海亿通的报文格式为标准和基础,UN/EDIFACT 标准的 报文,以 WPG 提供的报文格式为标准和基础。下面以亿通格式的订舱报文(IFTMBF)为例 进行说明,UN/EDIFACT 标准和自定义格式的报文处理方式类似。 例如:收到船公司 A 的订舱报文,检查其格式说明文件,发现其报文内容组成形式基 本符合亿通订舱报文,但是修改了某些段(记录、Segment)和字段(Item) ,将不同的部 分进行记录,记录的内容包括:增加/删除/修改、循环次数、数据类型、数据长度。如果船 公司同时提供了代码表,则表示在生成报文时需要进行代码映射;如果没有提供代码表, 并不表示不需要进行代码映射,有可能会在后期用户测试阶段提出代码映射的要求。 根 据 记 录 的 报 文 格 式 中 发 生 变 化 的 数 据 , 检 查 FOCUS 系 统 的 “ 订 舱 委 托 表 ” (T_CO_OCEANORDER) ,以及相关的“预配信息表” (T_CO_OCEANPRELOAD) “货物表” 、 (T_CO_CARGO)“参与方表” 、 (T_CO_OCEANORDER,存放收货人、发货人、通知人信息) , 如果发现这些表不能提供生成报文所需的信息,则检查报文格式说明,该信息是否为生成 报文的必须信息,如果不是则忽略该信息;如果是必须信息,则与业务组协商,如何补充 该信息。 处理完报文以后,还需要获得的信息为:报文发送方式、发送方代码、接收方代码, 这些信息可以先使用虚拟数据代替,在客户测试阶段更新为真实数据。2.2. 增加 PolicyYakInterface 里面的 Policy 分为两级,第一级处理不同的报文格式,第二级处理不同的 报 文 接 收 方 。 每 一 个 Policy 对 应 系 统 中 的 一 个 实 现 类 , 第 一 级 的 类 放 在 yak.sysinterface.edi.policy 包中,第二级的类放在 yak.sysinterface.edi.rule 报中。报文格式与 实现类、 接收方与实现类的对应关系放在 FOCUS 系统的配置文件 PolicyEngine.properties 中。 文件的内容如下:7######################################################################## ## POLICY ENGINE CONFIGURE SECTION ## THE RULE IS: ## BUSINESS CODE = POLICY IMPLEMENT CLASS OF PROCESSING THAT BUSINESS ######################################################################## ## BIZ RULE RELATED POLICY ########################################### IFTMBF=yak.sysinterface.edi.policy.IftmbfPolicy IFTMBC=yak.sysinterface.edi.policy.IftmbcPolicy IFTMIN=yak.sysinterface.edi.policy.IftminPolicy SAP=yak.sysinterface.sap.policy.SapPolicy … ## FILENAME RELATED POLICY ############################################# VALIDATE RULE POLICY ############################################## EASIPASS.RulePolicy=yak.sysinterface.edi.rule.EasiPassPolicy COSFRE.RulePolicy=yak.sysinterface.edi.rule.CosfrePolicy … 上半段内容是报文格式与实现类的配置信息,下半段内容是接收方与实现类的配置信 息。 例如新增加一种报文格式,格式名称为“TESTFORMAT” ,则需要实现下面几项内容: ? 完成该格式的实现类: yak.sysinterface.edi.rule.TestFormatPolicy.java ? 在上面的配置文件中增加一行配置信息: TESTFORMAT =yak.sysinterface.edi.policy.IftminPolicy如果新增加一个报文接收方,名称为“TESTRECEIVER” ,则需要实现下面几项内容: ? 完成该接收方的实现类: yak.sysinterface.edi.rule.TestReceiverPolicy.java ? 在上面的配置文件中增加移行配置信息: TESTRECEIVER.RulePolicy=yak.sysinterface.edi.rule.TestReceiverPolicy第一级Policy(报文格式)在完成实现类时,要实现Policy接口,接口定义如下: public interface Policy { public final static String ERROR_HANDLE_POLICY = &IFPE10&; public final static String ERROR_SAVE_LOG_TO_DB = &IFPE11&; public PolicyResult validateBizRule(String operation,Object o) throws InterfaceE public PolicyResult log2DB(String operation,Object o,String errorCode,String errorDesc) throws InterfaceE8public PolicyResult save2DB(String operation,Object o) throws InterfaceE } 其中: validateBizRule是业务规则校验的处理方法方法;可 log2DB是保存处理日志的方法; save2DB是接收报文时,保存数据的方法; 这三个方法由FormatterTask(yak.sysinterface.edi.FormatterTask.java),根据当前 处理的不同报文报文格式和处理阶段,自动调用。例如:在处理接收EDI订舱单(IFTMBF)时, FormatterTask会依次调用IFTMBFPolicy的validateBizRule、save2DB、log2DB。 如果某一种报文格式没有定义其对应的Policy,则系统在处理该报文格式时,会抛出 InterfaceException。 第二级 Policy(接收方)在完成实现类时,要实现 RulePolicy 接口,接口定义如下: public interface RulePolicy { public static final String RULE_POLICY_SUFFIX = &.RulePolicy&; public boolean validateIFTMBF(String ope ration,Object o); public boolean validateIFTMIN(String operation,Object o); public boolean validateCOSTCO(String operation,Object o); }其中: validateIFTMBF 是处理订舱单报文的处理规则; validateIFTMIN 是处理提单确认报文的处理规则; validateCOSTCO 是处理装箱单报文的处理规则; 这三个方法由第一级 Policy(报文格式 Policy)来自动调用,例如:IFTMBFPolicy 在处 理发送到 “TESTRECEIVER” 订舱单的过程中会自动调用 TestReceiverPolicy 的 validateIFTMBF。如果某一接收方没有定义其对应的Policy,则系统在处理该报文格式时,在第一级Policy 中查找是否有缺省的处理方式,如果找到则执行默认的处理方式,否则会抛出 InterfaceException。2.3. 增加数据库配置信息在数据库中需要根据报文接收/发送方的不同要求,在下面的这些表中配置相应的信息。2.3.1. EDI 参与方(EDI_PARTNER)用来记录 FOCUS 系统中目前所支持的报文接收方的主要信息,结构如下:中文名称 EDI 参与方主键 EDI 参与方名称字段名称 EDI_PATN_ID EDI_PATN_NAME字段类型 NUMBER(12) VARCHAR2(40)备注9EDI 参与方代码 非 EDI 中心报文名称代码 非 EDI 中心接收方代码 系统合作伙伴 ID 是否支持直接发送 是否支持 EDI 中心 是否 EDI 中心 删除标志 修改日期EDI_PATN_CODE DR_MSG_CODE DR_RCV_CODE SYS_PATN_ID SPRT_DR SPRT_EDI_CNTR IS_EDI_CNTR IS_DELETED UPD_DATEVARCHAR2(40) VARCHAR2(40) VARCHAR2(40) NUMBER(12) VARCHAR2(20) VARCHAR2(20) CHAR(1) CHAR(1) TIMESTAMP例如,上海中集的配置记录如下:1009 主键 COSCO 客户端显示的名称 COSFRE EDI 合作伙伴代码 直接发送时,报文类型代码, 需要与 WPG 中定义的报文类 型名称相匹配。例如,在 WPG DR_MSG_CODE COSFRE 中上海中集的订舱报文的名 称定义为“IFTMBF_COSFRE”, 则该字段的取值必须是 “COSFRE” 直接发送时, 报文中的接收方 DR_RCV_CODE
代码 SPRT_DR Y 允许直接发送报文给中集 SPRT_EDI_CNTR N 不支持通过 EDI 中心发送 在系统合作伙伴基础信息表 SYS_PATN_ID 7000 中对应的 ID IS_EDI_CNTR N 不是 EDI 中心 IS_DELETED N 没有被删除 12-12 月-06 11.31.29.626025 上 数据最后一次修改时间 UPD_DATE 午 上海亿通的配置记录如下: 字段名称 字段值 说明 EDI_PATN_ID 1010 主键 EDI_PATN_NAME 亿通 客户端显示的名称 EDI_PATN_CODE EASIPASS EDI 合作伙伴代码 因为是 EDI 中心, 不是具体的 DR_MSG_CODE 业务合作伙伴,只是转发报 文,不需要配置该数据 因为是 EDI 中心, 不是具体的 DR_RCV_CODE 业务合作伙伴,只是转发报 文,不需要配置该数据字段名称 EDI_PATN_ID EDI_PATN_NAME EDI_PATN_CODE字段值说明10支持直接发送 支持通过 EDI 中心发送 在系统合作伙伴基础信息表 SYS_PATN_ID 1000 中对应的 ID IS_EDI_CNTR Y 是 EDI 中心 IS_DELETED N 没有被删除 12-12 月-06 11.31.29.626025 上 数据最后一次修改时间 UPD_DATE 午 上海 APL(美国总统)的配置记录如下: 字段名称 字段值 说明 EDI_PATN_ID 1000 主键 EDI_PATN_NAME APL 客户端显示的名称 EDI_PATN_CODE APL EDI 合作伙伴代码 如果没有配置该项数据, 则表 DR_MSG_CODE 示不支持直接发送 如果没有配置该项数据, 则表 DR_RCV_CODE 示不支持直接发送 支持直接发送, 但是还需要检 查 DR_MSG_CODE 和 SPRT_DR Y DR_RCV_CODE 的值,都有才表 示支持直接发送 SPRT_EDI_CNTR Y 支持通过 EDI 中心发送 在系统合作伙伴基础信息表 SYS_PATN_ID 4616 中对应的 ID IS_EDI_CNTR N 不是 EDI 中心 IS_DELETED N 没有被删除 12-12 月-06 11.31.29.626025 上 数据最后一次修改时间 UPD_DATE 午SPRT_DR SPRT_EDI_CNTRY Y2.3.2. EDI 连接方式(EDI_CONN_TYPE)用来记录通过 EDI 中心发送报文的配置信息,表结构如下:中文名称 字段名称 连接方式主键 CONN_TYPE_ID 经 EDI 中心报文名称代码 EDI_CNTR_MSG_CODE EDI 中心参与方主键 EDI_CNTR_PATN_ID 经 EDI 中心接收方代码 EDI_CNTR_RCV_CODE EDI 参与方主键 EDI_PATN_ID 删除标志 IS_DELETED 修改日期 UPD_DATE 例如,上海 APL(美国总统)的配置数据记录如下: 字段名称 字段值字段类型 NUMBER(12) VARCHAR2(40) NUMBER(12) VARCHAR2(40) NUMBER(12) CHAR(1) TIMESTAMP备注说明11CONN_TYPE_ID1 主键 经过 EDI 中心发送时,报 文类型代码,需要与 WPG 中定义的报文类型名称相 匹配。例如,在 WPG 中上 EDI_CNTR_MSG_CODE EASIPASS 海亿通的订舱报文的名称 定义为 “IFTMBF_EASIPASS”,则 亿通的本字段必须取 “EASIPASS” EDI 中心在 EDI 合作伙伴 EDI_CNTR_PATN_ID 1010 表中的 ID 经过 EDI 中心发送时,EDI EDI_CNTR_RCV_CODE APLMBF 合作伙伴在 EDI 中心的接 收方代码 通过 EDI 中心发送报文的 EDI_PATN_ID 1000 EDI 合作伙伴, EDI 合作 在 伙伴表中的 ID IS_DELETED N 没有被删除 23-6 月 -06 11.48.14.907085 上 数据最后一次修改时间 UPD_DATE 午2.3.3. EDI 合作伙伴字段翻译(EDI_PATN_FIELD_TRANS)用来保存每个 EDI 合作伙伴哪些类型的代码需要进行代码翻译,表结构如下:中文名称 字段翻译主键 EDI 合作伙伴主键 报文字段类型主键 是否需要翻译字段名称 MSG_TRANS_ID EDI_PATN_ID MSG_FIELD_TYPE_ID NEED_TRANS字段类型 NUMBER(12,0) NUMBER(12,0) NUMBER(12,0) CHAR(1)备注错误级别ERROR_LEVELNUMBER(3)错误替代代码ERROR_REPLACE_CODE VARCHAR2(50)0: 用来表示翻译 该类代码发生错 误时,不允许报 文的发送/接收 1: 用来表示翻译 该类代码发生错 误时,允许报文 的发送/接收 在发生代码翻译 错误的时候,如 果错误级别 ERROR_LEVEL 是121, 则用该代码作 为代码翻译的结 果 修改日期 UPD_DATE 例如,上海亿通港口代码的配置数据如下: 字段名称 字段值 MSG_TRANS_ID EDI_PATN_ID MSG_FIELD_TYPE_ID NEED_TRANS Y TIMESTAMP 说明 1007 主键 亿通在系统合作伙伴基础信 1000 息表中对应的 ID 代码类型在 EDI 代码类型表 1 中的 ID 需要翻译,如果为“N”,则 表示该代码类型不需要翻译 允许代码翻译错误, 如果发生 1 错误,则使用“ZZZZZ”作为 代码翻译的结果ERROR_LEVEL ERROR_REPLACE_CODE ZZZZZ 上海亿通箱形尺寸的配置数据如下: 字段名称 字段值 MSG_TRANS_ID EDI_PATN_ID MSG_FIELD_TYPE_ID NEED_TRANS ERROR_LEVEL ERROR_REPLACE_CODE Y说明 1001 主键 亿通在系统合作伙伴基础信 1000 息表中对应的 ID 代码类型在 EDI 代码类型表 2 中的 ID 需要翻译,如果为“N”,则 表示该代码类型不需要翻译 不允许翻译错误, 如果发生错 0 误,则不能生成 EDI2.3.4. EDI 合作伙伴报文格式(PATN_MSG_TYPE)用来保存每个合作伙伴支持哪些类型的报文,以及对应的报文功能,表结构如下:中文名称 合作伙伴报文格式主键 EDI 合作伙伴主键 报文格式代码 报文格式操作方式字段名称 字段类型 EDI_PATN_MSG_TYPE_ID NUMBER(12) SYS_PATN_ID NUMBER(12) MSG_TYPE_CODE VARCHAR2(17) CHAR(1) SUPPORT_TYPE IS_DELETED ALLOW_MULTI_MSG CHAR(1) CHAR(1)备注1:发送 2:接收 3: 发送/接收删除标志 是否允许多票发送13是否支持原始报文功能 SUPPORT_ORIG 是否支持修改报文功能 SUPPORT_CHANGE 是否支持增加报文功能 SUPPORT_ADD 是否支持删除报文功能 SUPPORT_DELETE 例如,上海亿通订舱报文的配置数据如下: 字段名称 字段值 EDI_PATN_MSG_TYPE_ID SYS_PATN_IDCHAR(1) CHAR(1) CHAR(1) CHAR(1) 说明MSG_TYPE_CODE SUPPORT_TYPE IS_DELETEDALLOW_MULTI_MSGUPD_OPER_CD UPD_OPER_NM UPD_DATESUPPORT_ORIGSUPPORT_CHANGESUPPORT_ADD SUPPORT_DELETE1 主键 亿通在系统合作伙 1000 伴基础信息表中对 应的 ID 支持的报文类型代 IFTMBF 码 支持发送和接收订 3 舱报文 N 没有被删除 一个报文中不允许 包含多票委托。如果 N 为“Y”,则在一个 报文中可以包含多 票委托 最后一次数据更新 ADMIN 人代码 最后一次数据更新 系统管理员 人名称 最后一次数据更新 02-11 月-06 07.27.56.000000 下午 时间 支持“原始”报文功 Y 能。如果为“N” 或 空,则不支持 支持“修改”报文功 Y 能。如果为“N”或 空,则不支持。 不支“增加”报文功 能 不支持“删除”报文 功能2.4. 增加 WPG 配置信息参考 WPG 相关手册。142.5. 增加前置机配置信息各配置项信息需要严格区分大小写,路径信息要按照报文接收方提供的标准格式填写(与 具体的操作系统有关) 。每一个配置项目的各项之间必须使用“.”进行分割。2.5.1. 发送方式配置信息 (向 EDI 中心询问 FTP 和 MAIL 的参 数配置!! !)该信息存放在前置机的配置文件 FileTransport.properties 中,包含了用来直接发送 EDI 报文 的详细配置信息。目前系统支持 FTP、Email 两种自动发送方式。2.5.1.1.FTP 方式的配置信息对于 FTP 发送方式, EDI 报文直接上传到指定的 FTP 服务器上。 将 每一个配置项目的组成方 式如下: BU 代码.报文直接接收方代码.FTP 参数项名称=FTP 参数项值 其中各项含义为: ? BU 代码:为各 BU 在前置机中定义的代码,在 config.properties 文件中配置,例如 上海的在 FOCUS 中的 BU 代码为“501” ,则在 config.properties 中的配置信息为: 501=CSHWL 表示在前置机中, “CSHWL”代表的是与上海 BU 相关的信息。 ? 报文直接接收方代码:在数据库中配置的直接接收方代码 ? FTP 参数项名称:FTP 必须配置的项目为: FtpServer:FTP 服务器的 IP 地址 UserId:登陆给定 IP 地址的 FTP 服务器的用户名 Password:登陆密码 WorkingDirectory:登陆以后,上传 EDI 报文的存放路径 另外,根据具体的要求,还需要配置下面的 FTP 项目: DownloadDirectory:如果需要从该 FTP 服务器下载 EDI 报文,则需要指定被下 载的报文在服务器上的存放位置 TESTMODE:是否打开测试方式。在进行 EDI 报文 FTP 测试阶段,如果发生报文 不明原因丢失的情况,可以打开此选项,只有唯一的值 “UPLOAD_VALIDATE” 。打开此选项后,还必须配置 BAK_DIR 项。此时, 系统会先把报文上传到 BAK_DIR 所制定的目录,在移动到前面配置的 WorkingDirectory BAK_DIR:在测试方式下,报文的上传目录 LEAVE_BAK:在测试方式下,是否保留上传到 BAK_DIR 目录的报文。取值为 YES 和 NO,YES 则保留 BAK_DIR 中的报文,NO 则不保留 ? FTP 参数项值:与具体参数项匹配的值 例如,上海的中集(中远集装箱)的配置信息为: CSHWL.COSFRE.FtpServer=192.168.129.3015CSHWL.COSFRE.UserId= CSHWL.COSFRE.Password= CSHWL.COSFRE.WorkingDirectory= 前四行是发送报文需要添加的 CSHWL.COSFRE.DownloadDirectory= /usr/IBM/frontTest/out CSHWL.COSFRE.TESTMODE=UPLOAD_VALIDATE CSHWL.COSFRE.BAK_DIR=/ CSHWL.COSFRE.LEAVE_BAK=YES 后四行是接收报文时需要添加的如果是新追加报文接收方,在前置机的 config.property 中 加上 BU 代码 503=CSHNT2.5.1.2.Email 方式的配置信息对于 Email 发送方式,将 EDI 报文最为附件发送到指定的 Email 地址。每一个配置项目的组 成方式如下: BU 代码.报文直接接收方代码.Email.Email 参数项名称=Email 参数项值 其中“Email”项必须包含,各项含义为: ? BU 代码:为各 BU 在前置机中定义的代码,在 config.properties 文件中配置,例如 上海的在 FOCUS 中的 BU 代码为“501” ,则在 config.properties 中的配置信息为: 501=CSHWL 表示在前置机中, “CSHWL”代表的是与上海 BU 相关的信息。 ? 报文直接接收方代码:在数据库中配置的直接接收方代码 ? Email:保留标签 ? Email 参数项名称:Email 必须配置的项目为: ToAddress:对方接收 EDI 报文的 Email 地址 ToName:与给定的接收 Email 地址相匹配的用户名 FromAddress:FOCUS 系统发送 EDI 邮件的 Email 地址 FromName:与给定的发送 Email 地址相匹配的用户名 Subject:邮件主题 Content:邮件内容 ? Email 参数项值:与具体参数项匹配的值 例如,上海的 OOCL(东方海外)的配置信息为: CSHWL.OOCL.Email.ToAddress=exch@edi.cargosmart.com CSHWL.OOCL.Email.ToName=annie.fang CSHWL.OOCL.Email.FromAddress=Caowei@coscologistics.sh.cn CSHWL.OOCL.Email.FromName=Cao Wei CSHWL.OOCL.Email.Subject=Cosco Shanghai EDI Booking.16CSHWL.OOCL.Email.Content=Dear partner, \n\n This EDI message from COSCO.Please check the attachements and thank you.\n\n Best regards, \n\n2.5.2. 工作目录配置信息该信息保存在前置机的配置文件 Pkg_postprocess.properties 中, 包含了每一个 EDI 合作伙伴 的工作目录、中文/全角字符检查、发送方式信息。 ? 工作目录:如果用户在生成报文的时候,不选择自动发送,则生成的报文会保存 在该目录中。配置项目的组成方式如下: BU 代码.报文直接接收方代码=参数项值 例如,上海中集的配置信息为: CSHWL.COSFRE=/usr/IBM/front/Production/SHANGHAI/CSHWL/Target/cosfre ? 中文/全角字符检查:是否允许生成的 EDI 报文中含有中文/全角字符。配置项目的 组成方式如下: BU 代码.报文直接接收方代码.NeedCheckSBC=参数项值 例如,上海中集的配置信息为: CSHWL.COSFRE.NeedCheckSBC=false 表示发送到上海中集的报文中允许包含中文/全角字符。 如果不允许包含中文/全角 字符,则可以不配置该配置项或将配置项值设为“true” 。 发送方式:用来确定发送到该 EDI 合作伙伴的 EDI 报文的发送方式。如果该合作伙 伴部能够直接接收 EDI 报文,则不需要配置该配置项。目前系统支持 FTP 和 Email 两种方式,对应的值分别为“FTP”和“SMTP” 。配置项目的组成方式如下: BU 代码.报文直接接收方代码. Connection =参数项值 例如,上海中集的发送方式为 FTP,则其配置信息如下: CSHWL.COSFRE.Connection=FTP 上海 OOCL(东方海外)的发送方式为 Email,其配置信息如下: CSHWL.OOCL.Connection=SMTP?2.5.3. 特殊处理配置信息该信息保存在前置机的配置文件 PolicyEngine.properties 中,包含了针对每一个 EDI 合作伙 伴的特殊字符处理和接收报文配置信息。 ? 特殊字符处理:是否在接收/发送报文的时候,对转译符、回车换行符、中文字符 进行处理。可取得值为“true” “false” 。如果该 EDI 合作伙伴不直接接收 EDI 报文, 则不需要侧配置向。如果某个 EDI 合作伙伴此处的配置值为“ false” ,则在 Pkg_postprocess.properties 中配置的是否检查中文/全角字符的配置项就不再起作 用。配置项目的组成方式如下: BU 代码.报文直接接收方代码. SpecialProcess =参数项值 例如,上海中集不需要进行特殊字符、中文/全角字符的检查,其配置项为: CSHWL.COSFRE.SpecialProcess=false 上海 APL(美国总统轮船)需要进行特殊字符的处理,其配置项为: CSHWL.APL.SpecialProcess=true17?接收报文: 用来配置能够接收的某一个 EDI 合作伙伴的报文类型和处理方式。 由以 下几项配置项目: 1) 接收报文后的处理类:与 YakInterface 中的第二级 Policy 的开发、配置方 式相同。配置项目的组成方式如下: BU 代码.报文直接接收方代码=参数项值 处理类放在 yak.sysinterface.front.unpkg.policy 包中,实现 Policy 接口, 接口的定义如下:public interface Policy { public static final String ERROR_READ_EDI_HEAD = &FTPE11&; public abstract String parseEdiType(BufferedReader bufferedreader) throws FrontE public abstract String genShell(YakEdiShell shell) throws FrontE }其中: ParseEdiType:根据报文内容判断报文格式的方法 genShell:生成“壳”信息的方法 这 两 个 方 法 被 yak.sysinterface.front.unpkg.preprocess 包 里 的 PreProcessor.java 调用。 例如,接收上海亿通(EASIPASS)的报文的配置如下: CSHWL.EASIPASS=yak.sysinterface.front.unpkg.policy.EasiPassPolicy 2) 报文接收途径: 是通过 EDI 中心还是直接从合作伙伴接收报文。 配置项目 的组成方式如下: BU 代码.报文直接接收方代码. RouteEdiCenter =参数项值 可取值为“Y”和“N”“Y”表示通过 EDI 中心接收某个合作伙伴的报文, 。 “N”表示直接从某个合作伙伴接收报文。例如,接收上海中集的配置项 如下: CSHWL.COSFRE.RouteEdiCenter=N 表示直接从中集接收报文。 报文接收、处理后发送途径:用来指示在接收报文并经过初步处理后, 将处理的结果发送到哪一个 QUEUE 上,以便 WPG 来接收和处理。配置 项目的组成方式如下: BU 代码.报文直接接收方代码.报文类型. SendQueue =参数项值 “报文类型”是通过对应接收方的 Policy 的 parseEdiType 方法,分析收 到的报文得到的; “参数项值”的取值则根据在 WPG 中定义的 QUEUE 的 名称来取。例如,接收上海中集的订舱回执报文,其配置项如下: CSHWL.COSFRE.UIFRET.SendQueue=COSFRE_UIFRET_IN “UIFRET”为报文格式,在这里表示订舱回执; “COSFRE_UIFRET_IN”为 WPG 中定义的用来接收上海中集订舱回执的 QUEUE 的名称。 如何在 WPG 中定义 QUEUE,参考 WPG 相关手册。183)2.5.4. 报文接收目录配置信息该信息保存在前置机的配置文件 scanner.properties 中, 包含了接收合作伙伴的报文的目录, 配置项的组成方式如下: BU 代码.报文直接接收方代码.参数项名称=参数项值 参数项包括下面三项: Dir:要接收的报文存放目录 Priority:处理目录中报文的比例,取值为小于等于 1 的正的两位小数。例如,1 表示每 次对该目录中所有报文都处理,0.54 表示每次只对该目录中 54%的报文进行处理 DownMode: 报文的下载方式, 只有需要我们自己去合作伙伴的 FTP 服务器上下载需要 接收的报文时,才配置此项,而且目前只接受唯一值“INITIATIVE” 。FTP 服务器的地址从配 置文件 FileTransport.properties 中获得。例如,上海中集的配置项如下: CSHWL.COSFRE.Dir=/usr/IBM/front/Production/SHANGHAI/CSHWL/cosfre CSHWL.COSFRE.Priority=1 CSHWL.COSFRE.DownMode=INITIATIVE 表示中集的报文都放在/usr/IBM/front/Production/SHANGHAI/CSHWL/cosfre 目录下, 每次对 该目录下所有的报文都进行处理。要接收的报文从中集的 FTP 服务器上自行下载,下载后 放到/usr/IBM/front/Production/SHANGHAI/CSHWL/cosfre 目录下。 上海东方海外的配置项如下: CSHWL.OOCL.Dir=/usr/IBM/front/Production/SHANGHAI/CSHWL/oocl CSHWL.OOCL.Priority=1 表示 OOCL 的报文都放在/usr/IBM/front/Production/SHANGHAI/CSHWL/oocl 目录下, 每次对 该目录下所有的报文都进行处理。要接收的报文不需要去 OOCL 的 FTP 服务器下载。2.6. 代码映射导入代码映射导入主要是在增加一个新的 EDI 合作伙伴时, 把用户提供的需要进行处理的代码一 次性、大批量导入系统,减少客户的工作量。分为以下几个步骤:2.6.1. 确认代码类型拿到 EDI 合作伙伴提供的代码表后, 要确认其代码类型, 目前 EDI 子系统支持的代码类型有:代码类型中文名称 承运人代码 箱经营人代码 SAP 客户供应商代码 海运费条款代码 港口代码 箱型尺寸代码 付款方式代码 提单类型代码 货物类型代码 代码类型英文名称 carrier ctn_owner sap_patn freight_clause port ctn_type_size pay_type bl_type cargo_type 代码类型对应系统表 T_Sa_Patnbainfo T_Sa_Patnbainfo T_Sa_Patnbainfo T_Cd_Freightclause T_Cd_Port T_Cd_Ctnsizetype T_Cd_Colligate T_Cd_Colligate T_Cd_Colligate 代码类型对应合作伙伴表 T_Sa_CarrierEx T_Sa_CtnOwnerEx T_Sa_pPatnEx T_Cd_FreightclauseEx T_Cd_PortEx T_Cd_CtnsizetypeEx T_Cd_ColligateEx T_Cd_ColligateEx T_Cd_ColligateEx 19船名代码vesselT_Cd_VesselT_Cd_VesselEx如果 EDI 合作伙伴提供的代码类型不在此列表中,需要与客户和业务组讨论如何处理。2.6.2. 初步确认与系统代码的映射关系确认了代码类型以后,根据具体的 EDI 合作伙伴代码数据,在系统相应类型的代码表中,找 到相对应的代码,然后记录在代码映射文档中。每一种代码类型生成一份代码映射文档。 代码映射文档要包含下面几项内容: ? 合作伙伴代码名称 ? 合作伙伴代码 ? 系统对应代码 ? 系统对应代码名称 ? 系统对应代码助记码 ? 系统对应代码 ID 在建立映射关系时,除了 SAP 客户供应商类型,其他类型都允许“多对多”的映射。SAP 客户供应商类型的代码,从系统内代码到 SAP 代码映射时,只允许“一对一”映射;从 SAP 代码到系统内代码映射时,允许“一对多”映射。2.6.3. 客户的业务人员确认映射关系将生成的代码映射文档,提交业务人员进行确认。根据业务人员确认的结果,修改代码映 射文档。与业务人员的确认过程,可能需要进行多次,直至业务人员确认无误后,再导入 系统。2.6.4. 代码和映射关系导入系统将业务人员最终确认后的代码映射文档,提交数据组,并协助数据组导入对应表。导入以 后,要及时通知客户业务人员进行检查确认。3. EDI 测试在前期代码开发和配置项完成以后,进入测试阶段,测试阶段主要是补充和完善业务 规则校验以及代码翻译。3.1. 开发测试首先进行开发测试,这一步骤主要是检查下面几项内容: ? 业务规则是否有错误,主要是代码错误; ? 各个配置项是否有缺失、错误; ? 其他代码是否有错误;20? 生成的报文格式是否符合要求; 经过测试,以上几项都没有问题后,可以发布生产环境,提供给客户进行测试。3.2. 用户测试其次进行客户测试,客户测试阶段周期比较长,会重复进行多次。主要是配合客户测 试的结果对业务校验规则、代码映射、发送方式进行修改、补充。每一次修改,都要在测 试环境测试通过以后,再提交生产环境进行下一轮用户测试。 用户测试阶段要注意下面几项内容: ? 收集、保存客户提供的代码表,并配合客户、数据组完成代码表的数据导入工作; ? 对于业务规则的调整,要在代码中作详细记录;21
赞助商链接
EDI流程_建筑/土木_工程科技_专业资料。EDI 基本工作流程 EDI 的工作流程: 1 ...EDI子系统开发流程 21页 2下载券 EDI导入配置流程 暂无评价 3页 免费 ...” 简单的说,符合以下标准的都可以称为 EDI :组织机构间通过计算机系统到另外...支持多用户小组开发。实时部署流程模型。流程模型自动创建运行环境和 监控 Java ...EDI设计步骤。慢慢理会!设计步骤 一 测水质全分析 二 根据水质选用预处理系统 三 确定反渗透系统的出水量 四 选择哪个公司的膜 五 使用膜公司计算软件计算出最合...管理信息系统的框架与开发步骤_企业管理_经管营销_...(EDI)技术 功能:将商业或行政事务处理按照一个公认...可分为各应用子系统过程和功能的集成,包括人 技术...说明在该操作手册中, 我们将搭建一个 ECC 系统和 JAVA 系统的 EDI 信息交互...(1)维护输入关联 IDOC 基础 开发 消息/应用程序对象 输入相关信息 点击保存 (...EDI 简介 EDI 即 Electrodeionization 的缩写, 它是一种将电渗析技术和离 子...?长期维护定期检查螺拴扭矩,必要时作调整 系统清洗清洗系统流程: FI PI RM ...在运行过程中,虽然树脂不断进行离 子交换,但电流连续不断的使树脂再生,从而...图 4,5 为 EDI 系统典型的流程图 图 4 带浓水循环的 EDI 系统 图 4 中...2、EDI 系统的投资合理性:优化前处理整体工艺流程 优化前处理整体工艺流程,每种...明显少于宽流道,即:平均膜表面离子密度低,从而,可以保证淡水室的离 子快速迁移...EDI技术介绍、设计参数及运行_环境科学/食品科学_...它利用阴、阳离 子交换树脂上的活性基团对水中阴、...PLC 程序已经输入; 4、电路系统检查已完成,机泵...(3)EDI 是计算机应用程序之间的连接 一般的电子通信...在电子单证符合标准且内容完整的情况下,EDI 系统不...(ASC)X12 为行业间电 子交换商业交易开发统一的...
All rights reserved Powered by
www.tceic.com
copyright ©right 。文档资料库内容来自网络,如有侵犯请联系客服。}