Show TOC

Example for Filling the ExtensionIn ParameterLocate this document in the navigation structure

Use
REPORT REPORT_TRAVELAGENCY.

************************************************************************
*
*
* Example to show how to fill the EXTENSION_IN Structure in a BAPI *
* which uses table extension as possibility for a customer to extend *
* SAP functionality without modification. *
*
*
* In this example we use the BAPI *
* BAPI_TRAVELAGENCY_CREATE
*
*
*
************************************************************************

data x_agencynumber type bapisadeta-agencynum.
data x_agencydata_in type bapisadtin.
data x_cus_data_in type travelag.
data begin of x_extensionin occurs 0.
        include structure bapiparex.
data end of x_extensionin.
data begin of x_return occurs 0.
        include structure bapiret2.
data end of x_return.
data x_bapi_te_sa type bapi_te_sa.

* only for this example we hardcode the data, normaly you would
* write an own transaction to fill this fields.
x_agencydata_in-name            = 'Galactical Travel Agency'.
x_agencydata_in-street          = 'Lunatic'.
x_agencydata_in-postbox         = '123456'.
x_agencydata_in-postcode        = '984735'.
x_agencydata_in-city            = 'Luna 1'.
x_agencydata_in-country         = 'Moon'.
x_agencydata_in-region          = 'Moon'.
x_agencydata_in-telephone       = '30457584375374957'.
x_agencydata_in-url             = 'http://lunatic.com'.
x_agencydata_in-langu           = 'E'.

x_cus_data_in-planetype         = 'Space Shuttle'.
x_cus_data_in-company           = 'Moon Shuttle Service'.
x_cus_data_in-seatsmax          = 24.

* now fill the key of the extension parameter
move 'BAPI_TE_SA' to x_extensionin-structure.
* now normally you fill the object key into the BAPI_TE_SA structure
* but in this case the create will give internal the key for the new
* travel agency, so here only a clear
clear x_bapi_te_sa-agencynum.
* but the other fields we have, so fill
move-corresponding x_cus_data_in to x_bapi_te_sa.
* fill the fields in the data part of x_extension in, take care that
* you have 960 bytes in pieces of 240 byte. Luckily we have less than
* 240 byte so we need only one move.
move x_bapi_te_sa to x_extensionin-valuepart1.
append x_extensionin.

CALL FUNCTION 'BAPI_TRAVELAGENCY_CREATE'
        EXPORTING
                AGENCYDATA_IN   = x_agencydata_in
        IMPORTING
                AGENCYNUMBER    = x_agencynumber
        TABLES
                EXTENSIONIN     = x_extensionin
                RETURN          = x_return.
                .
*
write : / 'Return messages in handling the bapi.'.
loop at x_return.
        write : / 'return..:', x_return.
endloop.
write : / 'The new travel agency has the number...:', x_agencynumber.