在ABAP开发中,经常需要定义一些常量或者变量,而且可能存在多个程序中需要用到类似的变量或者结构体,如果在每个程序中都需要重复定义这些变量或者结构体的话,势必存在重复的代码编写,而且也容易出错,当需要变动时可以同时修改多个程序,造成一些冗余的工作。
SAP提供了类型组,允许用户建立一些公用的对象,允许在不同的程序中调用,这样不但实现了代码维护的简化,而且能够方便开发人员更好的管理程序。
类型组也称为类型池,通过数据字典对象进行维护,所创建的对象能被ABAP程序及RFC使用。
新建类型组:
SE11->type group->描述->保存->进入类型组的代码维护界面->可以在该页面定义类型及常量,且类型和常量的命名都必须以该类型组的名称加一个下划线作为首字符串->维护完代码后点击保存激活方可。
在程序中引用的时候语法为TYPE-POOLS ZT001. "ZT001是类型组,就可以直接在程序中使用类型组里面的结构或者常量。
RFC创建时候必须制定一个函数组,在创建函数组时系统会自动创建一个FunctionPools程序,该程序的命名存在一定的规则,名称前四位固定为'SAPL',后面为该程序管理的函数组名。系统自动创建的FunctionPools程序可以在abap中编辑器中直接维护,需要注意的是FunctionPools程序中只能存放INCLUDE程序,若需要在程序中定义全局变量,可以在FunctionPools程序中所包含的首个INCLUDE程序 LZF_TABLE_GPTOP中增加类型组的声明。所声明的对象能够在函数组关联的RFC中直接调用,接下来可以在RFC中直接饮用自定义的类型组中的任何类型,但是此处需要注意,类型组中的对象不能直接被TABLES参数引用,可以先在函数组所对应的FunctionPools中参照该类型对象建立一个内表,再在TABLES中以内表作为参考对象。(这边说的是,RFC定义传输参数时候参照的类型)