Application Development 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: 

pass by value in BAPI

Former Member
0 Kudos

Hi frnds,

I am new to BAPI. I have a doubt why we hav to give... both import as well as export parameter as PASS BY VALUE....

I M ALSO IN DOUBT REGARDING FORMAL PARAMETER AND ACTUAL PARAMETERS.... If i can get a simple example in that i can clear my doubt.

Thnaks to u all for helpful contribution.

regards,

suraj

1 ACCEPTED SOLUTION

Former Member
0 Kudos

www.sapdevelopment.co.uk/java/jco/bapi_jco.pdf

Go through the attached link.It might be of some help .

3 REPLIES 3

gopi_narendra
Active Contributor
0 Kudos

go thru the code below

* calling the BAPI to update the Asset Master AS02
  loop at it_final into is_final.

* If updating of floor area only
    if p_farea = 'X'.
* passing new area value to the BAPI
      is_realestate-area     = is_final-grufl.
      is_realestatex-area    = 'X'.

      call function 'BAPI_FIXEDASSET_CHANGE'
           exporting
                companycode = is_final-bukrs
                asset       = is_final-anln1
                subnumber   = is_final-anln2
                realestate  = is_realestate
                realestatex = is_realestatex
           importing
                return      = it_return.

* If Asset Master is changed with out any errors
      read table it_return with key type = 'E'.
      if sy-subrc = 0.
        flag = ' '.
      else.
        flag = 'X'.
* Call the COMMIT BAPI
        call function 'BAPI_TRANSACTION_COMMIT'
             exporting
                  wait = 'X'.
        wait up to 2 seconds.
      endif.
* If the Asset Master is changed with out any errors
      if flag = 'X'.
        read table it_output into is_output with key
                                  bukrs = is_final-bukrs
                                  anln1 = is_final-anln1
                                  anln2 = is_final-anln2
                                  binary search.
        if sy-subrc = 0.
*          is_output-c_icon  = c_green.
          is_output-grufl_n = is_final-grufl.
          is_output-message = it_return-message.
* Modify the output internal table with the changed new values
          modify it_output from is_output
                           transporting grufl_n message
                           where bukrs = is_output-bukrs
                             and anln1 = is_output-anln1
                             and anln2 = is_output-anln2.
        endif.
      elseif flag = ' '.
        read table it_output into is_output with key
                                  bukrs = is_final-bukrs
                                  anln1 = is_final-anln1
                                  anln2 = is_final-anln2
                                  binary search.
        if sy-subrc = 0.
*          is_output-c_icon  = c_red.
          is_output-grufl_n = is_realestate-area.
          is_output-message = it_return-message.
* Modify the output internal table with the changed new values
          modify it_output from is_output
                           transporting grufl_n message
                           where bukrs = is_output-bukrs
                             and anln1 = is_output-anln1
                             and anln2 = is_output-anln2.
        endif.
      endif.

    endif.

* If updating of lease commencement date only
    if p_ldate = 'X'.
* Passing new lease start date value to the BAPI
      is_leasing-start_date  = is_final-leabg.
      is_leasingx-start_date = 'X'.

* Call the BAPI to change the Asset Master
      call function 'BAPI_FIXEDASSET_CHANGE'
           exporting
                companycode = is_final-bukrs
                asset       = is_final-anln1
                subnumber   = is_final-anln2
                leasing     = is_leasing
                leasingx    = is_leasingx
           importing
                return      = it_return.
* If Asset Master is changed with out any errors
      read table it_return with key type = 'E'.
      if sy-subrc = 0.
        flag = ' '.
      else.
        flag = 'X'.
* Call the COMMIT BAPI
        call function 'BAPI_TRANSACTION_COMMIT'
             exporting
                  wait = 'X'.
        wait up to 2 seconds.
      endif.

* If the Asset Master is changed with out any errors
      if flag = 'X'.
        read table it_output into is_output with key
                                  bukrs = is_final-bukrs
                                  anln1 = is_final-anln1
                                  anln2 = is_final-anln2
                                  binary search.
        if sy-subrc = 0.
*          is_output-c_icon  = c_green.
          is_output-leabg_n = is_final-leabg.
          is_output-message = it_return-message.
* Modify the output internal table with the changed new values
          modify it_output from is_output
                           transporting leabg_n message
                           where bukrs = is_output-bukrs
                             and anln1 = is_output-anln1
                             and anln2 = is_output-anln2.
        endif.
      elseif flag = ' '.
        read table it_output into is_output with key
                                  bukrs = is_final-bukrs
                                  anln1 = is_final-anln1
                                  anln2 = is_final-anln2
                                  binary search.
        if sy-subrc = 0.
*          is_output-c_icon  = c_red.
          is_output-leabg_n = is_leasing-start_date.
          is_output-message = it_return-message.
* Modify the output internal table with the changed new values
          modify it_output from is_output
                           transporting leabg_n message
                           where bukrs = is_output-bukrs
                             and anln1 = is_output-anln1
                             and anln2 = is_output-anln2.
        endif.
      endif.
    endif.

    clear : is_final, is_realestate, is_leasing,
            it_return, flag , is_output.
  endloop.

Regards

Gopi

Former Member
0 Kudos

www.sapdevelopment.co.uk/java/jco/bapi_jco.pdf

Go through the attached link.It might be of some help .

sivapuram_phanikumar
Active Participant
0 Kudos

Hi Suraj,

BAPI's are generally RFC (Remote Function Calls) enabled function modules. In this type of FM's, we can not pass a parameter by reference. So, U see only Pass by Value option selected in both import and export parameters.

Actual parameters: Lets suppose that u r calling a subroutine where u have different kind of parameters like TABLES, USING and CHANGING... these parameters are called as Actual Parameters...

For Example: PERFORM F_GET_DATA TABLES G_ITAB

USING LV_VAR1

CHANGING LV_VAR2.

Here G_ITAB, LV_VAR1 and LV_VAR2 are actual parameters...

Formal Parameters: Names given to the actual parameters in subroutine definition are called as formal paramaters or formal names given to actual parameters...

For Example: FORM F_GET_DATA TABLES P_G_ITAB

USING P_LV_VAR1

CHANGING P_LV_VAR2.

ENDFORM.

Here P_G_ITAB, P_LV_VAR1 and P_LV_VAR2 are formal parameters...

Hope it clears your doubt...

Regards,

Phani.

Message was edited by:

Sivapuram Phani Kumar