2012 Sep 12 4:36 AM
Hello Expert,
In our system, there is on Function which is defined as below:
*--------------------------------------------------------------------------------------------------*
* generator called from SAPMKEA3_NEW *
* by user XXXXXX *
* Date: 20.04.2009 Time: 11:00:48 *
* Release: 600 Version: 029 *
* template program RKEVRK1V *
*--------------------------------------------------------------------------------------------------*
FUNCTION RKE_WRITE_ACT_LINE_ITEM_1000.
*"----------------------------------------------------------------------
*"*"Verbuchungsfunktionsbaustein:
*"
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(I_SCHEDMAN_KEY) LIKE SCHEDMAN_KEY STRUCTURE SCHEDMAN_KEY
*" OPTIONAL
*" TABLES
*" LINE_ITEM_TAB STRUCTURE CE11000
*"----------------------------------------------------------------------
PERFORM WRITE_ACT_LINE_ITEM(RK2A1000_UPDATE)
USING I_SCHEDMAN_KEY
CHANGING LINE_ITEM_TAB[].
ENDFUNCTION.
In dubugging mode, the function is called via dynamic statement
PERFORM (VBFUNC) IN PROGRAM (TFDIR-PNAME) USING VBID.
The value of each parameter is as below:
VBFUNC: RKE_WRITE_ACT_LINE_ITEM_1000
TFDIR-PNAME: SAPLKEV1
VBID-TIMESTAMP: 504F19F060AE29D0E10080000A19031E
VBID-ID: 1
In debugging mode, I find internal table LINE_ITEM_TAB has two records. My question is, since the calling program doesn't pass the parameter to LINE_ITEM_TAB, why the internal table has two records? Where they come from?
Debug screenshot is also attached.
Can any expert explain to me?
Thanks in advance,
Best Regards,
Johnny.
2012 Sep 12 9:44 AM
No the perform doesn't call the FM it call a FORM which itself call the FM, check source code of the form RKE_WRITE_ACT_LINE_ITEM_1000 in program SAPLKEV1 (function group), it should "recover" data from the VBID structure. (As it is a generated function group I cannot check on my system)
Regards,
Raymond