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