如何读取自动创建的变体

  • 本文关键字:创建 何读取 读取 abap
  • 更新时间 :
  • 英文 :


我需要读取自动创建的变体,以获取选择屏幕参数和其他选择标准。此类变体的名称以符号&开头(例如,&0000000000425)。一旦您安排了se80/se38或任何交易的任何背景作业,而无需选择任何现有变体(从选择屏幕,菜单程序 ->在后台执行)。

,就可以创建此类变体。

函数模块RS_VARIANT_CONTENTS可用于普通变体(可以通过se80/se38看到),但不能自动创建的变体(以&开头)。我查看了FM,发现VARI表是通过下一个代码读取的:

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.

然而,该导入对&变体没有任何返回。看来&变体的值以与FM RS_VARIANT_CONTENTS使用的格式不同的格式中存储。

是否有任何方法可以找到适合&的正确格式/数据结构。变体值?

更新:我创建了ZBC_TEST程序并将其作为作业计划。我在VARI表中看到了记录:

MANDT    RELID   REPORT     VARIANT         SRTF2
200      VB      ZBC_TEST   &0000000000425  0

因此,&0000000000425变体存在于VARI表中。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.

FM已执行,没有任何例外,sy-subrc=0,但是lt_valtab表是空的...

函数模块正常工作:由于您的程序没有任何参数,因此返回的值集为空。

相关内容

  • 没有找到相关文章

最新更新