Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

A question about parameter passing in Function Call

Former Member
0 Likes
746

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.

1 REPLY 1
Read only

RaymondGiuseppi
Active Contributor
0 Likes
535

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