POWL跟FPM一样,是基于ABAP Webdynpro的一种技术,一般在SRM系统中比较常用。SAP提供了一个标准的POWL的Webdynpro组件,在开发的时候,只需要创建一个class去实现对应的预留接口,再将这个class配置到系统中,所有的界面定义和逻辑都在这个class中实现。页面上再做相应的配置即可。对应的事务代码有powl_typer和powl_type
type group是一种程序类型,即类型池类型的程序,在创建一个Program时,导航会d出窗口让你选择程序类型,默认是可执行程序,下拉列表中许多类型,类型池就是其中之一,但是创建类型池类型的程序并不是在se80 或者 se38中的,而是在se11的TYPE GROUP中创建的,就是你上面提到的数据字典type group
在该类型的程序中,可以定义一些自定义的类型(结构等),比如数据字典中并没有创建的结构,在程序中就无法引用,你可以将该结构声明在类型池程序中上,该程序以 TYPE-POOL 引导
然后在程序中引用该类型池程序,然后程序中就可以使用类型池程序中定义的结构了
在程序中TYPE-POOLS来引用已经存在的类型池程序
type group是一种统一管理类型的程序,有很多便利之处,SAP的标准程序中很多地方都用到的
1 你写的代码是怎样的?有可能是没注意DATA和TYPES的区别。types c1(30) type cdata itab1 type table of c1data c2(30) type cdata itab2 like table of c22 char30是一个Data element,相当于Data typeCHAR, Length 303 char是数据字典中的一种数据类型(同类的有ACCP、DATS、QUAN等), c是ABAP中的数据类型(同类的有C、N、D、T、X、I、P、F、STRING、XSTRING)。数据字典中的数据类型是user interface层对数据的分类,用这种分类定义的table field 、structure field或data element用在ABAP程序时,ABAP处理器会把它转换成C,N,D这样的类型。在数据库中创建表时,数据字典的数据类型就会转换成数据库系统所用的类型。
ABAP的动态数据对象包括字段符号(filed symbols)和数据引用(data reference)两种形式。
普通数据对象的寻址静态地通过该对象名称进行;而上述两种数据对象则只有在运行时,系统才知道该数据对象的名称和属性,并进行寻址。
在程序运行期内可将数据对象分配给字段符号。成功分配后,使用字段符号或其所代表数据对象本身,是没有任何区别的。换句话说,如果用赋值语句修改字段符号的值,字段符号所代表的数据对象本身的值也随之改变。
声明字段符号需使用 FIELD-SYMBOLS 语句,基本语法格式如下
FIELD-SYMBOLS <fs> [ TYPE type | LIKE dobj ]
声明字段符号时可以指定类型,该类型决定了运行时何种数据对象可以被分配给一个字段符号,此处可以指定一般性类型和完全限定类型,如果不指定类型,则系统默认该字段符号为一般性类型ANY。
字段符号声明之后,可以进行字段分配,所分配的数据对象应符合字段符号定义时的类型说明。字段符号可以反复进行分配,且分配方式有静态和动态之区分。
在将数据对象分配给字段符号的过程中,可以进行类型的强制转换,即所有数据对象都可以被视为一个特定类型。强制类型转换通过ASSIGN语句中的CASTING附加项指定,该选项的出现意味着可以将一个与字段符号指定类型不兼容的数据对象赋给字段符号。强制类型转换分为显式和隐式两种情况。
如果一个字段符号的类型是完全指定的,或者是ABAP内置类型C,N,P,X之一,可以使用下列格式实现隐式强制类型转换 ASSGIN f TO <fs> CASTING 当字段分配后,无论其原始数据对象类型如何,系统内表都按照字段符号定义类型对分配的数据对象进行处理。
程序中使用的所有数据对象均存储在运行时分配的内存中,每一个对象均对应有其起始的内存地址,该地址是由编译器分配的,一般不能被随意 *** 作。数据对象的内存地址也常常被称作引用。通常情况下,声明数据后,程序通过数据对象的名称对其进行 *** 作,然而有时也通过字段符号或者引用通过其他地址进行 *** 作。
在ABAP中,引用以数据引用和对象引用两种形式存在。
引用变量中包含地址引用,是指向其它数据对象的指针,其实际内容代表某数据对象的内存地址,在ABAP程序中是不可见的。引用类型定义和引用变量声明的语法格式如下:
TYPES t_dref TYPE REF TO DATA
DATA dref TYPE REF TO DATA
引用变量在ABAP作为结构类型的组件时可以被视为时普通基本类型,即引用变量可以作为复杂类型的结构组件或者独立出现。
引用变量声明时没有指向任何数据对象,因而也不能进行解除引用 *** 作。下述 *** 作可以使该引用对象指向实际的数据对象。
数据引用变量之间可以相互赋值,目标对象和源引用变量指向相同的数据对象,但不能将对象引用或非引用对象的值传递给引用变量。
所有通过DATA语句创建的数据对象都属于静态创建的数据对象,当程序开始运行时,这些变量已经存在。要在程序运行期间动态的创建对象,可通过数据引用变量进行。
CREATE DATA dref TYPE type | LIKE obj
该语句在运行期间内动态创建一个数据对象,同时引用变量dref指向这一对象。该对象没有名称,只能通过数据引用变量进行寻址,但在 *** 作该数据对象之前,需要通过字段符号解除引用。当没有任何数据引用变量指向该对象时,他将被sap中的垃圾收集装置从系统内存中删除。
在该语句中,必须指定数据类型。也可以通过变量动态的指定所创建的数据对象类型,这种指定类型的方式在所有ABAP语句中是唯一的。
CREATE DATA dref TYPE (name) 此处的变量name中包含具体的类型名称(如“C”)。
使用GET语句可以使一个引用变量获得已经存在的数据对象的地址引用。
GET REFERENCE OF obj INTO dref
其中obj可以是一个通过DATA语句定义的静态变量,也可以是指向某数据对象的字段符号。如果将引用变量指向一个过程内部的局域变量,则该变量在离开过程后将不能再使用,也不能进行解引用 *** 作。
解除引用是访问引用所指向的数据对象的前提,ABAP数据引用变量的解引用语法格式如下 ASSGIN dref-> TO <fs> [CASTING ]
该语句将数据引用变量dref指向的数据对象赋给字段符号,如果 *** 作成功,系统字段SY-SUBRC将返回0。系统将检查数据对象类型是否与字段符号声明类型相匹配,且该过程中可能出现强制类型转换。如果数据引用变量的值为初始值或者不正确,则无法进行解引用 *** 作,字段符号将保持原值不变,而系统字段SY-SUBRC将返回。对于动态创建的数据对象,解引用是获取其内容的唯一方式。
ABAP的数据类型是自动转换的,想学ABAP只能进顾问公司参加项目了。据我所知目前国内介绍ABAP语言开发的书只有《SAP程序设计》了,是个新加坡人写的,还不错。根据我的经验,只有结合业务才能把ABAP真正学好。
以上就是关于abap powl 叫什么程序全部的内容,包括:abap powl 叫什么程序、abap SE11中数据字典中type group是做什么用的,怎么使用、abap c和string的区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)