SAP非结构化文件交互的研究与实现

2014-03-07 01:16常玉慧
江苏理工学院学报 2014年2期
关键词:接口技术架构服务器

常玉慧

(江苏理工学院计算机工程学院,江苏 常州 213001)

0 引言

随着企业信息化水平的不断提高,成熟的ERP管理系统在企业的信息化进程中扮演越来越重要的角色。SAP作为全球ERP管理软件和业务解决方案的领导者,通过其自身应用软件,服务支持和开放性平台,为全球各个行业的企业用户提供全面先进的企业管理软件解决方案。SAP系统完美的实现企业生产管理,仓库管理,物流管理,销售管理和财务成本的无缝集成,方便得出具各种分析报表,快速准确地为企业的管理层提供全面的决策信息。SAP系统提供了各种接口技术,使得企业用户在实施SAP的过程中能够和原有的信息管理系统通过SAP接口技术进行数据的交互,在SAP实施的过程中,打破企业在管理中存在的信息孤岛。

1 SAP系统应用文件接口的目的

SAP的接口技术主要有:RFC,BAPI,ALE/IDOC,EDI,WEB SERVICE等,这些接口技术采用 SAP的标准技术进行开发,可以方便的从SAP系统存取各种业务数据,和其他信息系统进行交互,这样就可以保持原有系统的稳定运行,节省企业的开发实施成本,企业在实施过程中可以根据自己的实际情况,选择相应的接口实现企业各个信息系统的全面集成。

而对于超大数据量的数据交互,企业在实施SAP的过程中,采用非结构化的文件交互方式来实现。笔者针对利用SAP系统的文件传输技术,实现SAP系统和其他信息系统的非结构化文件传输交互。

2 SAP文件接口常用技术

2.1 SAP系统整体架构

SAP系统从业务上来讲,包含资产会计(AM)、财务会计(FI)、管理会计(CO)、物料管理(MM)、生产计划控制(PP)、销售分销(SD)、人力资源(HR)等企业在生产管理经营各个业务模块的管理,这些不同的模块在SAP系统中实现了全面的集成,各个模块的在SAP系统上共同运行,实现企业经营的全面管理,如图 1 所示:[1]

图1 SAP系统业务模块

在技术架构上,SAP系统是一个三层架构的系统,分为表示服务器、应用服务器和数据库服务器(有点类似于在用JAVA等其他语言开发基于WEB的系统时候的MVC模式)。SAP的三层架构不但能实现系统逻辑上的分离,也能实现硬件上的分隔。即表示服务器、应用服务器和数据库服务器可以分别安装在不同的硬件服务器上,以实现系统能够实现最大的效能。图2就形象的说明了SAP的三层架构的分布[2]。

图2 SAP系统分层架构

其中SAP的所用标准程序和自定义开发的程序都是在应用服务器上运行的。

2.2 SAP非结构化文件交互的实现

接下来,我们就详细阐述几种SAP系统利用文件和外部系统如何进行交互的方法。

2.2.1 SAP应用服务器生成文件

利用SAP应用服务器,作为文件的存储媒介,来实现SAP系统与其他外部系统的文件数据的交互。利用这种方式,我们可以通过后台作业的方式,定期从SAP的服务器中读取外部系统的生成的文件,并在处理完文件里面的数据后,生成新的文件存储在SAP应用服务器中,供外部非SAP系统读取,接受处理的反馈信息。

在使用这种存储方式实现文件数据交互的时候,可以通过SAP的OPEN DATASET的命令来实现,这个命令可以实现SAP系统把文件数据读入到SAP系统中,也可以把SAP系统中的数据生成数据文件存放在SAP应用服务器中。

当从SAP的应用服务器上读取文件到SAP系统的时候,使用以下的示例步骤来实现:

(1)在服务器上打开文件;

(2)运用READ DATASET把数据读入体统变量;

(3)判断数据是否读取完毕;

(4)读取数据并处理完毕后,关闭文件。

在服务器上打开文件:

读取文件中的数据到SAP系统变量中:

此处省略对数据的处理逻辑:

读取完成后,需要关闭文件:

要把SAP系统里的数据生成文件放到SAP服务器的时候,可以参考如下步骤:

(1)在服务器上打开文件;

(2)把系统的数据写入应用服务器;

(3)写入数据完毕后,关闭文件。

在服务器上打开文件,在此处没有使用默认的编码方式,而是采用的带有BOM的UTF-8的编码方式,主要是考虑到了不同国家的语言的兼容。UTF-8可以很好的兼容各个国家的文字,避免国家间的数据传输乱码:

往文件中写入SAP内表中的数据,在写入文件的时候,使用TAB制表符作为字段间的间隔。

文件写结束以后,需要关毕文件:

这种方式在国际某高端自行车零配件的生产集团得到了很好的应用,由于集团的产品很多,每周都会有一个外部系统要安排每种产品以后三个月的生产计划,然后把排好的生产计划,通过接口技术把数据导入SAP系统中,由于数据量非常庞大,通过常规的接口技术实时的交互,会对系统造成很大的压力。该集团采用了后台作业和SAP文件处理的方案,成功的实现了SAP系统和外部排产系统产品生产计划的交互,如图3所示。

图3 某自行车配件工厂生产计划文件传输流程

2.2.2 FTP 服务器传输文件

此外,利用FTP协议,也是传输文件数据常用的一种方法。FTP协议是一个客户/服务器架构的系统,是TCP/IP协议之一,利用FTP协议,可以完成两台计算机上的文件的上传和下载,从而实现文件数据的交互。通过SAP系统提供的标准的函数也能实现利用FTP服务器实现文件的DownLoad和Up-Load。这样的功能也在某省的国家电网系统中得到了很好的应用。

图4简单的说明了FTP协议在总部和网省的文件交互的具体实现:当总部有文件下达的时候,会首先把文件放到FTP文件服务器上面,然后通过两个系统之间的消息服务,通知网省的SAP ERP系统到FTP文件服务器上去取文件,网省在文件获取成功以后,又会通过系统间的消息服务反馈给总部ERP系统。这样的一个流程,就完成了总部和网省系统的文件交互的整个过程。这个流程可以在有文件传输的时候时候,实时的去通知对方系统,不需要通过后台来实现,是整个传输过程更加清晰易于控制。

下面介绍一下,怎么样在SAP系统里通过FTP协议实现文件的上传和下载的功能,在编写代码实现功能前,要先检查系统是否配置的FTP的客户端,确保系统已经安装SAPFTP.EXE。并且通过RSFTP005命令经行SAPFTP检查。完成相关的检查后,就可以通过代码实现FTP的相关操作了。

首先先看如何SAP如何从FTP服务器中下载文件,需要完成以下几个步骤:

(1)把登陆密码转换为SAP的内部编码;

(2)建立FTP的链接;

(3)从FTP的文件服务器下载数据;

(4)完成下载后关闭文件服务器。

图4 某省电网文件传输结构图

对访问的密码根据SAP的要求做转换:

建立和FTP服务器的链接。SAPFTPA参数表示在服务器端建立和FTP的链接。

从FTP服务器下载文件数据到SAP系统:

关闭SAP和FTP服务器的链接:

同样要实现上传的功能,也要分为以下几个步骤:

(1)把登陆密码转换为SAP的内部编码;

(2)建立FTP的链接;

(3)把系统中的数据上传到FTP服务器;

(4)上传后关闭文件服务器。

对访问的密码根据SAP的要求做转换:

建立和FTP服务器的链接。SAPFTPA参数表示在服务器端建立和FTP的链接:

从SAP系统传输数据到FTP服务器:

关闭FTP连接服务器:

2.2.3 HTTP 服务器传输文件

也可以通过HTTP协议来传输文件,在SAP中创建类似其他语言(例JAVA等)HTTP_CLIENT对象,模拟HTTP协议,利用HTTP Request对象来传输文件。这种方法要在系统里面配置和外部系统的链接,通过SM59命令来实现,链接类型设置为G,即HTTP协议,创建成功以后,在系统中显示如图5所示,利用这个链接,创建CL_HTTP_CLIENT类的对象,模仿HTTP协议实现文件的传输FTP agreement。

图5 Connection Test图

3 结束语

在SAP的系统开发中,提供了多种和外部系统交互的方法,在实施SAP之前,也可以通过接口技术把原来的系统和SAP系统进行集成,以减少SAP实施的风险,降低实施的成本。以上就是在SAP二次开发中常用的几种文件传输的方法,对于实施人员,可以根据自己的需要,选择合适的技术来实现数据的交互。

[1]黄佳.SAP高级应用开发:RFC、BAPI、ALE、Workflow、SAP连接器、WebDynpro及 BSP[M].北京:人民邮电出版社,2008:5-6.

[2]唐骏华.工程师突击——SAP ABAP实用程序开发攻略[M].北京:机械工业出版社,2010:3-5.

猜你喜欢
接口技术架构服务器
基于FPGA的RNN硬件加速架构
功能架构在电子电气架构开发中的应用和实践
高等学校计算机专业课程教学改革实践——以汇编语言与接口技术课程为例
通信控制服务器(CCS)维护终端的设计与实现
电力系统全网一体化暂态仿真接口技术
LSN DCI EVPN VxLAN组网架构研究及实现
中国服务器市场份额出炉
得形忘意的服务器标准
中文GIS自然语言接口技术研究
计算机网络安全服务器入侵与防御