SAP软件中的程序对象管理

来源 :中国新通信 | 被引量 : 0次 | 上传用户:cjwxwq
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘要】 SAP系统是一种企业资源管理软件,其由德国SAP公司开发,并成功应用于80%的世界500强企业,而在SAP软件的使用过程中,大部分公司都会使用SAP公司提供的ABAP高级开发语言进行了本地化系统改造, ABAP语言编写的SAP程序一般由多种类型的程序对象组成,这些程序对象类型之间ABAP语言定义了之间的关联关系,但是SAP公司却没有明确说明,本文通过对程序对象类型的分析,得到常用的程序对象类型之间的父子关系。这一点可以帮助我们理解ABAP语言的整体架构,有助于我们进行程序开发及企业对自己定制化开发的程序对象进行有效管理。
  【关键词】 SAP ABAP程序 程序对象
  在SAP系统中,进行本地化开发与配置时,会生成不同类型的开发对象,这些开发对象以数据的形式,存储在系统的数据库表中,其通过PGMID、OBJECT、OBJ_NAME三个字段来唯一标识一个开发对象。
  第一个字段PGMID是指程序标识的一组编码,一般包括: R3TR、LIMU、CORR几个值,其各自的具体含义如下:
  R3TR是表示其內容是程序对象,指SAP中各种类型的开发内容的一种抽象叫法,是程序开发内容的一种载体,如类、可执行程序、接口等。
  LIMU也是指其包含的內容是程序对象,但其与R3TR的区别在于,其标识的是R3TR类型的对象的子对象,举例以“可执行程序”这种程序对象来说,一个“可执行程序”类型的对象,包括多个子类型的对象,如“程序屏幕”,指可给用户看到的主屏幕、子屏幕、选择屏幕等;再如“源代码”对象,指程序中执行的主体ABAP代码语句;可执行程序还可以包括“文本元素”对象,用于在选择屏幕上展示字段的标签,或在程序源代码中作为文本常量进行使用。
  CORR是指备注、注释之类的信息,其不包含具体的程序对象和开发内容。如一批对象所在的传输请求号,对象释放的具体日期、时间,以及开发者信息。
  第二个字段OBJECT是用来表明对象的类型具体是什么的一组编码,如为主程序(PROG)类型、源代码(REPT)类型、文本元素(REPS)类型、程序屏幕(DYNP)等。OBJECT所包含的类型,涵盖了ABAP程序语言所有已定义的程序对象类型,从而将所有的程序对象,进行了明确的分类,用以管理程序对象在软件平台中的存储、分析、以及组织整个系统有效地运行。
  第三个字段OBJ_NAME就是指具体的程序对象名称了,如程序的名称,数据库表的名称,接口的名称等等。
  当一个程序对象激活时,SAP系统会从数据库中读取需要的对象内容,然后根据其类型不同,执行不同的处理机制,形成不同的实际物理对象,如数据库表、编译后的程序文件等。
  SAP中所有基于ABAP开发的程序对象都有一个对象类型,不同的对象类型与对象类型之间,存在着特定架构关系。如某个报表,其对象类型可以是主程序(PROG)类型,其可能包含源代码(REPT)类型、文本元素(REPS)类型、程序屏幕(DYNP)类型,这说明他们之间是父子关系,而文本元素(REPS)类型和程序屏幕(DYNP)类型是相互独立的关系,不存在关联关系。因此可以理解为一个“主程序类型”的父开发对象,包含“源代码类型”、“文本元素类型”、“程序屏幕类型”几个子类型的开发对象,也可以说成“主程序”开发对象由“源代码”、“文本元素”、“程序屏幕”几个子开发对象组成。
  以上只是列举了其中的一个例子,来说明对象类型之间的关系,那么SAP系统中存在很多的开发对象类型,问题来了,如此多的对象类型,SAP是如何进行有组织的管理呢?作为开发者,该如何找到这些关系模型呢?


  实际上SAP在开发ABAP开发平台时已经考虑到这一点,其在ABAP平台中设立了管理这些程序对象类型的方法。这里将SAP开发对象类型定义成两种大的类型集合,用以组织对象类型之间的关系。一种以PGMID为R3TR 的父类型集合,一种是以PGMID为LIMU 的子类型集合,根据这种定义方式,一个父类型可以包含一个或者多个子类型,一个子类型只属于一个父类型。另外根据SAP数据视图EUOBJV,可以查询某个父类型包含哪些子类型,以及一个子类型属于哪个父类型。
  上图1描述了实现流程,从ABAP的代码角度具体的实现方法如下:
  1.设计ABAP程序函数,实现子类型寻找父类型的功能函数。函数输入为子类型OBJECT编码,定义类型为CHAR4,输出为父类型OBJECT编码,定义类型为CHAR4。
  2.函数逻辑参考逻辑流程图“子类型寻找父类型”,首先判断输入的类型是否存在,再使用下列实例SQL语句取出父类型
  SELECT SINGLE tadir INTO ex_object
  FROM euobjv WHERE id = in_object.
  3.上述SQL语句输出的ex_object变量作为返回参数,即为父类型OBJECT编码。
  4.设计ABAP程序函数,实现父类型寻找子类型的功能函数。函数输入为父类型OBJECT编码,定义类型为CHAR4,输出为子类型OBJECT编码列表,定义为内表格式。
  5.函数逻辑参考逻辑流程图“父类型寻找子类型”,首先判断输入的类型是否存在,再使用下列实例SQL语句取出子类型内表
  SELECT e071 INTO CORRESPONDING FIELDS OF TABL E e071_object FROM euobjv WHERE tadir = object.
  6.上述SQL语句输出的e071_object即为子类型内表,但其中包含重复项,使用下面的ABAP语句可以去除重复项,得到父类型的所有子类型内表。
  DELETE ADJACENT DUPLICATES FROM e071_object
  7.返回e071_object内表,作为父类型所有的子类型集合。
  通过这种方式,我们可以方便地得到程序对象类型与程序对象类型之间的关系,从而可以帮助使用SAP软件的企业,或从事SAP软件开发咨询的软件公司,了解SAP源程序的关系,理解系统将各种类型的程序对象组织运行的机制。在国内的企业中,尤其是在中国大型国有企业,如中国石化、国家电网等,这些企业对SAP系统进行大批量本地化开发,本文所阐述的对象与对象之间关系的分析方法,可以帮助企业更加有效地组织自己开发代码,管理自己的开发对象,加强自开发程序对象的版本管理,从而帮助企业在系统分析、系统安全方面取得进一步的提升。
其他文献
电视栏目的收视率是可以预测的。长期以来,由于收视率的受控因素很多,许多流行的预测方法对于收视率的预测几乎是不可行的。笔者通过多年的对收视率的研究实践,初步设计了一种比
网上有一篇叫做《105个城市必吃的菜》文章中,位列第一的就是台北的鸳鸯火锅。据说很多香港的艺人都为之疯狂.连郭富城天王在离开的时候,都把火锅底料打包回去再过瘾。
前言相当长一段时间里,尤其是对于经济相对发达的珠三角、长三角地区,环境保护在经济社会发展中的“短板效应”逐步凸显出来,时而拨动人们的神经。使人们从GDP直线上升的“功劳
2007年,中国葡萄酒市场在平稳中完成了一个稳健的“葡萄”年度,但是如果我们从2007年中国葡萄酒行业出现的主流事件来看,市场并没有看上去那样平静。本文正在此背景下来回顾本年
品牌全球化是全球经济一体化过程中的重要组成部分,是企业在进行跨国生产经营活动,并占领世界市场的过程。宝洁、微软、IBM,Nokia,美国通用、耐克、麦当劳……这些如雷贯耳的跨国
【摘要】 电梯安全问题,一直是大众最关心的;然而电梯事故还不断出现,通过对这些事故的分析发现,事故电梯缺少一种实时互救的系统;为此本设计提出一种大众实时可视互救系统;此系统以FPGA为核心控制器件;当人员受困于电梯内或受到人身威胁等紧急情况时,电梯外的人能够及时、实时地通过此系统给予电梯内人员提供帮助,减轻受困人员的紧张情绪,同时为展开专业施救赢得时间。  【关键词】 大众实时 可视互救 FPGA
【摘要】 随着科技的进步,铁路客运专线发展势头迅猛,尤其是高铁客运专线通信技术日益完善。建立在高速通信网及宽带基础上的通信技术,作为智能化工具在铁路客运中发挥着重要作用,实现资源、信息的共享和高效传递。本文主要阐述了铁路客运专线对通信技术的需求分析,并对铁路客运专线的通信网络基础平台进行探讨,研究了铁路客运专线通信网络基础平台的通道要求与接口设计,以期加快我国铁路客运专线的通信网络建设。  【关键
【摘要】 随着科学技术的发展,光纤传输设备得到了快速发展。光纤传输的传播方式,相对于其它的信息传播方式,有着非常明显优势,能够低损耗、抗干扰能力强和图像质量稳定,受到了很多广播电视台的青睐。但是,在实际的应用过程中,光传播设备经常出现故障,造成了很多不必要的困扰。因此,做好光传输设备的防护措施,将有效的提高数据传输的质量和效率。  【关键词】 光传输设备 故障类型 防护手段  随着技术的快速发展,
资源型城市是指以当地不可再生资源开发和初级加工为主要产业,通过产业规模不断扩大和人口集中逐渐形成的城市。由于受资源有限性和不可再生性制约,城市规模一般不大,多为中小城
【案例]:因为赶订单安排职工在十一节日期间加班。张某等加班职工提出应当支付300%的加班工资,该公司劳资部经理只同意给加班职工安排补休,不同意支付加班工资。张某为此向当地劳