您的位置:首页 > 其它

user exit程序中使用import参数之外的字段的办法

2010-11-16 22:26 274 查看
写一个出口程序,找到了出口之后,发现import进来的参数不够用,我需要的一个字段没有办法在import、tables中获取,看样子有些麻烦。

使用了以下方法解决了这个问题,方法不算好,但目前分析来看没有什么问题,指的记录一下。

思路:使用字段符号,将程序中的字段读取过来,需要说明的是得在标准程序中找到要去的字段才行。以下是代码:
data fname type string.
field-symbols <FS> type any.”定义字段符号
fname = '(SAPMIEQ0)RM63E-STTXU'. ”SAPMIEQ0标准程序名称,RM63E-STTXU我所需的字段
assign (fname) to <FS>.”程序运行时分配SAPMIEQ0程序的RM63E-STTXU字段内容到字段符号<FS>
MOVE <FS> TO E1BP_ITOB-SALES_OFF.”对取出的值做处理

这样,我就可以在出口程序中使用RM63E-STTXU字段,虽然程序没有传进来这个参数。同样如果fname = '(SAPMIEQ0)RM63E’,我就可以在此出口中使用结构RM63E的所有字段了。

以下说一下字段符号field-symbols 和assign的使用。(源自SAP程序开发-黄佳)

字段符号field-symbols 本身只是一个已存在数据对象的占位符,系统不直接为field-symbols 本身保留内存,而是通过分配数据对象给它,使其
指向一个数据对象。
程序运行时可将数据对象分配给field-symbols ,有静态分配和动态分配之分。
定义:field-symbols <fs> [Like dobj|Type type],如果不指定类型,系统默认为一般性类型any。

分配数据对象,在程序运行之前将数据对象分配是静态分配,静态分配可以指定偏移量和长度,需要注意类型的对应
assign f to <fs>.

在程序运行中将数据对象分配是动态分配,assign <f> to <fs>. 动态分配不是将字段f分配给字段符号,而是先找到字段f的内容,然后将其内容做
为一个新的数据对象分配给<fs>.不能指定偏移量和长度。

字段符号field-symbols 和assign具体使用方法还有很多,可以通过F1来学习学习。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  import user 程序开发 sap
相关文章推荐