如何读取自动创建的变体
How to read automatically-created variants
我需要读取自动创建的变体,以获取选择屏幕参数和其他选择标准。此类变体的名称以符号 &
开头(例如,&0000000000425
)。一旦您从 se80
/se38
安排任何后台作业或任何交易而不选择任何现有变体(从选择屏幕,菜单程序 -> 在后台执行),就会创建此类变体。
函数模块 RS_VARIANT_CONTENTS
适用于普通变体(可以通过 se80
/se38
查看),但不适用于自动创建的变体(以 &
).我查看了 FM,发现 VARI
table 被下一个代码读取:
IMPORT %_VARI40C TO P_VARI
%_VARI40 TO L_VARI_40
%_VARI TO L_VARI
%_VARIVDAT TO P_VARIVDAT
* %_VARIDYN40 TO P_VARIDYN
%_VARIVDAT_DYN40 TO P_VDATDYN
DYNS_FIELDS TO OLD_DYNSFIELDS
DYNS_TEXPRI TO OLD_TEXPRI
DYNS_EXPR TO OLD_EXPR
DYNS_FIELD_TAB TO DYNS_FIELDS
DYNS_TEXPR TO DYN_SEL-TEXPR
FROM DATABASE VARI(VB) CLIENT L_CLIENT ID P_RKEY
ignoring structure boundaries
IGNORING CONVERSION ERRORS.
但是 returns 对 &
变体没有任何影响。看起来 &
变体的值存储在与 FM RS_VARIANT_CONTENTS
使用的格式不同的格式中。
有什么方法可以为 & 变体值找到合适的 format/data 结构吗?
更新:我创建了 ZBC_TEST
程序并将其安排为工作。我在 VARI
table 中看到一条记录:
MANDT RELID REPORT VARIANT SRTF2
200 VB ZBC_TEST &0000000000425 0
因此,&0000000000425
变体存在于 VARI
table 中。 VARI-CLUSTD
记录字段不为空。我使用此代码:
CALL FUNCTION 'RS_VARIANT_CONTENTS'
EXPORTING
REPORT = 'ZBC_TEST'
VARIANT = '&0000000000425'
MOVE_OR_WRITE = 'W'
IMPORTING
SP = lv_sp
TABLES
VALUTAB = lt_valtab.
调频已经执行,无一例外sy-subrc=0
,但是lt_valtab
table为空...
功能模块运行正常:由于您的程序没有任何参数,返回值集合为空。
我需要读取自动创建的变体,以获取选择屏幕参数和其他选择标准。此类变体的名称以符号 &
开头(例如,&0000000000425
)。一旦您从 se80
/se38
安排任何后台作业或任何交易而不选择任何现有变体(从选择屏幕,菜单程序 -> 在后台执行),就会创建此类变体。
函数模块 RS_VARIANT_CONTENTS
适用于普通变体(可以通过 se80
/se38
查看),但不适用于自动创建的变体(以 &
).我查看了 FM,发现 VARI
table 被下一个代码读取:
IMPORT %_VARI40C TO P_VARI
%_VARI40 TO L_VARI_40
%_VARI TO L_VARI
%_VARIVDAT TO P_VARIVDAT
* %_VARIDYN40 TO P_VARIDYN
%_VARIVDAT_DYN40 TO P_VDATDYN
DYNS_FIELDS TO OLD_DYNSFIELDS
DYNS_TEXPRI TO OLD_TEXPRI
DYNS_EXPR TO OLD_EXPR
DYNS_FIELD_TAB TO DYNS_FIELDS
DYNS_TEXPR TO DYN_SEL-TEXPR
FROM DATABASE VARI(VB) CLIENT L_CLIENT ID P_RKEY
ignoring structure boundaries
IGNORING CONVERSION ERRORS.
但是 returns 对 &
变体没有任何影响。看起来 &
变体的值存储在与 FM RS_VARIANT_CONTENTS
使用的格式不同的格式中。
有什么方法可以为 & 变体值找到合适的 format/data 结构吗?
更新:我创建了 ZBC_TEST
程序并将其安排为工作。我在 VARI
table 中看到一条记录:
MANDT RELID REPORT VARIANT SRTF2
200 VB ZBC_TEST &0000000000425 0
因此,&0000000000425
变体存在于 VARI
table 中。 VARI-CLUSTD
记录字段不为空。我使用此代码:
CALL FUNCTION 'RS_VARIANT_CONTENTS'
EXPORTING
REPORT = 'ZBC_TEST'
VARIANT = '&0000000000425'
MOVE_OR_WRITE = 'W'
IMPORTING
SP = lv_sp
TABLES
VALUTAB = lt_valtab.
调频已经执行,无一例外sy-subrc=0
,但是lt_valtab
table为空...
功能模块运行正常:由于您的程序没有任何参数,返回值集合为空。