从透明表中获取数据

时间:2009-10-21 09:57:23

标签: sap abap

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

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

案例

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

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

2 个答案:

答案 0 :(得分:1)

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

有效。

答案 1 :(得分:0)

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

例如,在下面的代码中,由RFC调用,表STATES永远不会为空,即使你注释'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.

问候