EDI子系统开发流程

2019-05-24 13:02

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子系统的物理架构

船公司AppServerEDI ServerGUIClientBrowserDB前置机船代系统其他外部系统其中EDI Server既是EDI子系统。

1

1.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或其它方式发送。

2

1.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)。商务相关的Command

3

在商务子系统中完成,用来生成SAP和用友的财务接口文件。

在FOCUS系统中,启动时会自动加载EDI子系统的入口程序Controller,需要使用EDI子系统的Command根据各自的业务需要,通过该Controller来获得EDI子系统提供的不同类型的EDI功能模块实例来完成其要求。具体的调用方式如下:

EDIAgent ediAgent = null; try { }

ediAgent = (EDIAgent) Controller.getInstance().getService(\} catch (Exception e){

其中EDIAgent.Instance表示提供发送与订舱业务相关EDI报文的功能模块,系统目前支持下列不同的功能模块: 功能模块名称 EDIAgent.Instance SAPAgent.Instance UFAgent.Instance 功能描述 发送与订舱业务相关EDI报文的 根据SAP财务系统的格式要求,把FOCUS系统的相关商务数据生成SA报文 根据SAP财务系统的格式要求,把FOCUS系统的相关商务数据生成SA报文 获得所需要的功能模块的实例以后,按照下面方式来调用:

MessageObject responseMO = null;

MessageObject requestMO = new MessageObject(); responseMO = ediAgent.getResult(requestMO);

其中requestMO是业务Command根据发送EDI的要求,经过对特定业务数据处理后生成的,这里用new操作来代替。

1.4. YakInterface

YakInterface是EDI子系统的核心部分,完成了EDI收、发的主要业务功能。

发送报文时,从Command接收业务数据,根据报文格式和接收方调用不同的Policy,完成业务规则校验、代码翻译、日志处理,并将其转换成统一的YakInterface内部EDI格式,再发送到WPG进行格式转换。

接收报文时,从WPG接收转换后的统一的YakInterface内部格式,根据“壳”信息中的数据,来调用不同的Policy完成业务规则校验、数据保存、日志处理。

其设计结构上的核心为以下两点: ? 数据耦合

在YakInterface内部各组件之间,使用共享的数据缓冲区来完成数据的交换,以适应未来可能会发生变化的业务处理方式。

4

? Policy模式

在发送和接收报文的过程中,对于具体的业务处理,采取多级Policy的设计模式,能够灵活应对不同报文格式和接收方的要求。

1.4.1. YakInterface逻辑架构

Interface Sub-System(接口子系统)子系统控制器Application ServerEDI ServergetService()Agent InstanceController控制器)()r(et)r)s)(e(i(rtrresegetitetsgsrsieiCacheigrggeeerr缓存r器)(retsFormattertransfer()TransferigP2&UP4. erBizgetResult(MO)格式转换代码翻Command器译器业务功能组件准备数据get()|put()put()|get()Return MOAgent任务代理DataBuffer数据交换区get()|put()MessageTargetQueueQueueDelegateMQClientEDI Server目标代理QueueMessageQueue﹒如果调用方式为同步调用,返回MO中包含实际转换后数据(目前不使用同步模式)﹒如果调用方式为异步调用,C1. 接收返回MO中仅包含操作状态数据P3&UP3. 转发数据P4&UP2. 生成数据C1:表示统一入口。 P2-P4:表示打包的流程。 UP2-UP4:表示解包的流程。

5


EDI子系统开发流程.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2013年四川语文高考试卷及答案(word版)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: