Abap 从透明表获取数据

Abap 从透明表获取数据,abap,Abap,在我们的sap环境中开发了一个新的bapi,它从池表和透明表中获取数据 当从非sap环境调用此bapi时,只有池表返回数据。透明表返回空值 案例 当我们在透明表(如A931表)的“Where子句”中传递硬编码值时,透明表也从非sap环境中的bapi返回数据 但是,当我们通过bapi中声明的变量传递透明表的“Where子句”中的值时,在非SAP环境中,透明表不会返回任何值(而是返回空值)。您能发布一些ABAP代码吗? 如果在模块函数中声明表,则它们的内容应该是可访问的,并且可以作为表参数返回 例如

在我们的sap环境中开发了一个新的bapi,它从池表和透明表中获取数据

当从非sap环境调用此bapi时,只有池表返回数据。透明表返回空值

案例

当我们在透明表(如A931表)的“Where子句”中传递硬编码值时,透明表也从非sap环境中的bapi返回数据


但是,当我们通过bapi中声明的变量传递透明表的“Where子句”中的值时,在非SAP环境中,透明表不会返回任何值(而是返回空值)。

您能发布一些ABAP代码吗? 如果在模块函数中声明表,则它们的内容应该是可访问的,并且可以作为表参数返回

例如,在以下由RFC调用的代码中,表状态永远不会为空,即使您对“select”语句进行注释,因为两条insert语句将填充它

FUNCTION z_prt_dns_status_get.
*"----------------------------------------------------------------------
*"*"Interface locale :
*"  IMPORTING
*"     VALUE(LANGU) TYPE  LANGU DEFAULT 'F'
*"  EXPORTING
*"     VALUE(RETURN) TYPE  BAPIRETURN1
*"  TABLES
*"      STATES STRUCTURE  ZPRT_ATN_STATEST
*"----------------------------------------------------------------------


  SELECT t~atn t~state t~langu t~text s~seqnr
   INTO CORRESPONDING FIELDS OF TABLE states
     FROM zprt_atn_statest AS t
     INNER JOIN zprt_atn_states AS s
        ON s~atn = t~atn AND s~state = t~state
        WHERE t~atn = 'DNS'
        ORDER BY s~seqnr.

  states-text = 'A traiter'.
  states-state = 'OPEN'.
  INSERT states INDEX 1.

  states-text = 'Tous'.
  states-state = '****'.
  INSERT states INDEX 1.

ENDFUNCTION.

关于

你能发布一些ABAP代码吗? 如果在模块函数中声明表,则它们的内容应该是可访问的,并且可以作为表参数返回

例如,在以下由RFC调用的代码中,表状态永远不会为空,即使您对“select”语句进行注释,因为两条insert语句将填充它

FUNCTION z_prt_dns_status_get.
*"----------------------------------------------------------------------
*"*"Interface locale :
*"  IMPORTING
*"     VALUE(LANGU) TYPE  LANGU DEFAULT 'F'
*"  EXPORTING
*"     VALUE(RETURN) TYPE  BAPIRETURN1
*"  TABLES
*"      STATES STRUCTURE  ZPRT_ATN_STATEST
*"----------------------------------------------------------------------


  SELECT t~atn t~state t~langu t~text s~seqnr
   INTO CORRESPONDING FIELDS OF TABLE states
     FROM zprt_atn_statest AS t
     INNER JOIN zprt_atn_states AS s
        ON s~atn = t~atn AND s~state = t~state
        WHERE t~atn = 'DNS'
        ORDER BY s~seqnr.

  states-text = 'A traiter'.
  states-state = 'OPEN'.
  INSERT states INDEX 1.

  states-text = 'Tous'.
  states-state = '****'.
  INSERT states INDEX 1.

ENDFUNCTION.

关于

我的变量的长度不是所需的SAP长度,因此我添加了零


它起作用了。

我的变量的长度不是所需的SAP长度,所以我添加了零

成功了