1

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

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

案子

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

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

4

2 回答 2

1

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

有效。

于 2009-10-26T09:41:42.543 回答
0

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

例如,在以下由 RFC 调用的代码中,表 STATES 永远不会为空,即使您注释了“select”语句,因为两个插入语句填充它。

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.

问候

于 2009-10-21T12:32:58.030 回答