在我们的 sap 环境中开发了一个新的 bapi,它从池表和透明表中获取数据。
当从非 sap 环境调用此 bapi 时,只有池表返回数据。透明表返回空白值。
案子
当我们在透明表(如 A931 表)的“Where 子句”中传递硬编码值时,透明表也在非 sap 环境中从 bapi 返回数据。
但是,当我们通过在 bapi 中声明的变量传递透明表的“Where 子句”中的值时,透明表在非 SAP 环境中不会返回任何值(而是返回空白)。
在我们的 sap 环境中开发了一个新的 bapi,它从池表和透明表中获取数据。
当从非 sap 环境调用此 bapi 时,只有池表返回数据。透明表返回空白值。
案子
当我们在透明表(如 A931 表)的“Where 子句”中传递硬编码值时,透明表也在非 sap 环境中从 bapi 返回数据。
但是,当我们通过在 bapi 中声明的变量传递透明表的“Where 子句”中的值时,透明表在非 SAP 环境中不会返回任何值(而是返回空白)。
我的变量的长度不是所需的 SAP 长度,所以我附加了零。
有效。
你能发布一些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.
问候