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

help with BDC, user exits and BAPI

Former Member
0 Likes
2,104

Hello all:

1) I posted a question before about BDC documentation and people sent me lot of helpful material. Thanks to all of them. I am very new to ABAP coming from VB background and wondering if someone can tell me how to practice one simple BDC program starting from scratch. What do I first need to do to get started? I have Mini WAS 6.20 test version and like to practice BDC programming.

2) What are user exits and BADI and can anyone provide some documentation and sample code if possible.

Thanks everyone in advance.

--Mithun.

Hello all:

1) I posted a question before about BDC documentation and people sent me lot of helpful material. Thanks to all of them. I am very new to ABAP coming from VB background and wondering if someone can tell me how to practice one simple BDC program starting from scratch. What do I first need to do to get started? I have Mini WAS 6.20 test version and like to practice BDC programming.

2) What are user exits and BADI and can anyone provide some documentation and sample code if possible.

Thanks everyone in advance.

--Mithun.

11 REPLIES 11
Read only

Former Member
0 Likes
1,551

First thing is to have all the data in the legacy system to be converted into flat files, so that you can use BDC logic to transfer that data into SAP system once you install it.

Once you have the legacy data in the form of Flat files, you can upload the files using GUI_UPLOAD function module and transfer that data into internal tables first.

Then you can do a Call Transaction or a BDC Session method to upload the data into the wanted transaction.

You can use a BAPI insteda of a BDC also.

In this case you need to fill the BAPI interface structures and tables and pass them to the BAPIs

Go through the below links.

http://www.sappoint.com/abap/bdcconcept.pdf

http://www.sappoint.com/abap/bdcrec.pdf

<b>

for user exit</b>

Please check the following link:

http://www.sappoint.com/abap/userexit.pdf

http://help.sap.com/saphelp_nw04/helpdata/en/e6/d54d3c596f0b26e10000000a11402f/content.htm

http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCCIOFFI/BCCIOFFI.pdf

http://www.sapgenie.com/abap/ole.htm

http://help.sap.com/saphelp_46c/helpdata/en/59/ae3f2e488f11d189490000e829fbbd/frameset.htm

http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCCIOFFI/BCCIOFFI.pdf

<b>for badi</b>

check these links

http://www.allsaplinks.com/badi.html

http://help.sap.com/saphelp_erp2005/helpdata/en/73/7e7941601b1d09e10000000a155106/frameset.htm

http://support.sas.com/rnd/papers/sugi30/SAP.ppt

http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm

http://members.aol.com/_ht_a/skarkada/sap/

http://www.ct-software.com/reportpool_frame.htm

http://www.saphelp.com/SAP_Technical.htm

http://www.kabai.com/abaps/q.htm

http://www.guidancetech.com/people/holland/sap/abap/

http://www.planetsap.com/download_abap_programs.htm

http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm

Read only

0 Likes
1,551

Thanks for the information Kishan. I rewarded you for this.

Regards,

Mithun.

Read only

Former Member
0 Likes
1,551

Hi Mithun,

Gimme your email ID, will send you a good document on this.

Regs,

Venkat Ramanan N

Read only

0 Likes
1,551

Thanks for the quick reply. My email is [email protected]

Regards,

Mithun

Read only

Former Member
0 Likes
1,551

Hi Mithun,

Try this Sample BDC code.

Use a .CSV file to upload the data from the presentation server.In the CSV file enter any of your program name. This bdc will process that program.You can select any of the two BDC methods call transaction or session method on the selection screen.

REPORT Z34331_BDC.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETERS: p_ifile TYPE dxfile-filename.

SELECTION-SCREEN END OF BLOCK B1.

SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-002.

PARAMETERS: P_SESS RADIOBUTTON GROUP G3 "create session

DEFAULT 'X' USER-COMMAND BDC,

P_CTU RADIOBUTTON GROUP G3. "call transaction

SELECTION-SCREEN END OF BLOCK B3.

DATA : BEGIN OF itab OCCURS 0,

str TYPE string,

END OF itab.

DATA : L_FILE TYPE STRING,

T_BDCDATA TYPE STANDARD TABLE OF BDCDATA,

WA_BDCDATA LIKE LINE OF T_BDCDATA.

*----


  • AT SELECTION SCREEN ON VALUE REQUEST

*----


  • Value request for the filename.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_IFILE.

PERFORM HELP_INPUT_FILE.

START-OF-SELECTION.

CLEAR L_FILE.

l_file = p_ifile.

*for csv and txt file

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = l_file

filetype = 'ASC'

TABLES

data_tab = itab

EXCEPTIONS

file_open_error = 1

file_read_error = 2

no_batch = 3

gui_refuse_filetransfer = 4

invalid_type = 5

no_authority = 6

unknown_error = 7

bad_data_format = 8

header_not_allowed = 9

separator_not_allowed = 10

header_too_long = 11

unknown_dp_error = 12

access_denied = 13

dp_out_of_memory = 14

disk_full = 15

dp_timeout = 16

OTHERS = 17.

*Start new session

IF P_SESS = 'X'.

PERFORM BDC_OPEN.

ENDIF.

LOOP AT ITAB.

PERFORM CREAT_BATCH_INPUT.

PERFORM BDC_INSERT.

IF P_CTU = 'X'.

CALL TRANSACTION 'SE38' USING T_BDCDATA MODE 'A'.

ENDIF.

ENDLOOP.

IF P_SESS = 'X'.

PERFORM BDC_CLOSE .

IF SY-SUBRC EQ 0.

MESSAGE I001(ZM) WITH 'Session created check in transaction SM35'.

ENDIF.

ENDIF.

&----


*& Form bdc_open

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BDC_OPEN .

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = SY-MANDT

GROUP = 'ZMUK'

USER = SY-UNAME

EXCEPTIONS

CLIENT_INVALID = 1

DESTINATION_INVALID = 2

GROUP_INVALID = 3

GROUP_IS_LOCKED = 4

HOLDDATE_INVALID = 5

INTERNAL_ERROR = 6

QUEUE_ERROR = 7

RUNNING = 8

SYSTEM_LOCK_ERROR = 9

USER_INVALID = 10

OTHERS = 11.

ENDFORM. " bdc_open

&----


*& Form creat_batch_input

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM CREAT_BATCH_INPUT .

PERFORM BDC_DYNPRO USING 'SAPLWBABAP' '0100'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=STRT'.

PERFORM bdc_field USING 'RS38M-PROGRAMM'

itab-str.

PERFORM BDC_FIELD USING 'RS38M-FUNC_EDIT'

'X'.

PERFORM BDC_DYNPRO USING 'SAPLSLVC_FULLSCREEN' '0500'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=&F03'.

PERFORM BDC_DYNPRO USING 'SAPLWBABAP' '0100'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=BACK'.

PERFORM bdc_field USING 'RS38M-PROGRAMM'

itab-str.

PERFORM BDC_FIELD USING 'RS38M-FUNC_EDIT'

'X'.

ENDFORM. " creat_batch_input

&----


*& Form bdc_insert

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BDC_INSERT .

CALL FUNCTION 'BDC_INSERT'

EXPORTING

TCODE = 'SE38'

TABLES

DYNPROTAB = T_BDCDATA

EXCEPTIONS

INTERNAL_ERROR = 1

NOT_OPEN = 2

QUEUE_ERROR = 3

TCODE_INVALID = 4

PRINTING_INVALID = 5

POSTING_INVALID = 6

OTHERS = 7.

ENDFORM. " bdc_insert

&----


*& Form bdc_dynpro

&----


  • text

----


  • -->P_0168 text

  • -->P_0169 text

----


FORM BDC_DYNPRO USING P_PROGRAM TYPE ANY

P_DYNPRO TYPE ANY.

CLEAR WA_BDCDATA.

WA_BDCDATA-PROGRAM = P_PROGRAM.

WA_BDCDATA-DYNPRO = P_DYNPRO.

WA_BDCDATA-DYNBEGIN = 'X'.

APPEND WA_BDCDATA TO T_BDCDATA.

ENDFORM. " bdc_dynpro

&----


*& Form bdc_field

&----


  • text

----


  • -->P_0179 text

  • -->P_0180 text

----


FORM BDC_FIELD USING P_FNAM TYPE ANY

P_FVAL TYPE ANY.

CLEAR WA_BDCDATA.

WA_BDCDATA-FNAM = P_FNAM.

WA_BDCDATA-FVAL = P_FVAL.

CONDENSE WA_BDCDATA-FVAL.

APPEND WA_BDCDATA TO T_BDCDATA.

ENDFORM. " bdc_field

&----


*& Form bdc_close

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BDC_CLOSE .

CALL FUNCTION 'BDC_CLOSE_GROUP'

EXCEPTIONS

NOT_OPEN = 1

QUEUE_ERROR = 2

OTHERS = 3.

ENDFORM. " bdc_close

*&----


**& Form help_input_file

*&----


    • text

*----


    • --> p1 text

    • <-- p2 text

*----


FORM HELP_INPUT_FILE .

DATA: LT_FILE_TABLE TYPE FILETABLE,

LA_FILE_TABLE LIKE LINE OF LT_FILE_TABLE,

L_RC TYPE I,

L_PCDSN TYPE CFFILE-FILENAME.

REFRESH LT_FILE_TABLE.

CLEAR LA_FILE_TABLE.

CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG

CHANGING

FILE_TABLE = LT_FILE_TABLE

RC = L_RC.

READ TABLE LT_FILE_TABLE INTO LA_FILE_TABLE INDEX 1.

L_PCDSN = LA_FILE_TABLE-FILENAME.

MOVE L_PCDSN TO P_IFILE.

ENDFORM. " help_input_file

Read only

0 Likes
1,551

Thanks a lot Mukesh.

Regards,

Mithun

Read only

Former Member
0 Likes
1,551

Hi,

Please check your mail.

Regs,

Venkat Ramanan

Read only

Former Member
0 Likes
1,551

Hai Mithun Dha

Go through the following Documentation & Example Code

Just check these links.

BDC SESSION

CALL TRANSACTION

CALL DIALOG

What is BDC or batch input

The Batch Input is a SAP technic that allows automating the input in transactions. It lies on a BDC (Batch Data Commands) scenario.

BDC functions:

E BDC_OPEN_GROUP : Opens a session group

E BDC_CLOSE_GROUP : Closes a session

E BDC_INSERT : Insert a BDC scenario in the session

E The ABAP statement "CALL TRANSACTION" is also called to run directly a transaction from its BDC table.

It runs the program RSBDCSUB in order to launch automatically the session. The session management is done through the transaction code SM35.

The object itself is maintanable through the transaction SE24.

BDC methods:

Method

Description

Parameters

OPEN_SESSION

Opens a session

SUBRC (Return Code ? 0 OK)

SESSIONNAME (Session to be created)

CLOSE_SESSION

Closes a session

None

RESET_BDCDATA

Resets the BDC Internal Table...

None. Normally, for internal purposec

BDC_DYNPRO

Handles a new screen

PROGNAME (Name of the program)

DYNPRONR (Screen Number)

BDC_FIELD

Puts a value on the screen

FIELDNAME (Name of the field)

FIELDVALUE (Value to be passed)

CONSTRUCTOR

Constructor - Initializes NO_DATA

NODATA (No data character). The constructor is called automatically when the object is created.

RUN_SESSION

Launches a session with RSBDCBTC

None

CALL_TRANSACTION

Calls a transaction with the current BDC Data

MODE (Display Mode)

UPDATE (Update Mode)

TCODE (Transaction to be called)

BDC_INSERT

Inserts the BDC scenario in the session

TCODE (Transaction to be called)

BDC techniques used in programs:

1) Building a BDC table and calling a transaction,

2) Building a session and a set of BDC scenarios and keeping the session available in SM35,

3) Building a session and lauching the transaction right after closing the session.

-


BDC using Call Transaction

BDC using Call transaction involves calling an SAP transaction in back ground from within the ABAP

program. The process involves building an Internal BDC table containing the screen information needed to

execute the required transaction and then passing this to the Call transaction command (See code example).

The full procedure for creating a BDC program is as follows:

-


What is the difference between batch input and call transaction in BDC?

Session method.

1) synchronous processing.

2) can tranfer large amount of data.

3) processing is slower.

4) error log is created

5) data is not updated until session is processed.

Call transaction.

1) asynchronous processing

2) can transfer small amount of data

3) processing is faster.

4) errors need to be handled explicitly

5) data is updated automatically

-


BATINPUT/DIRECT INPUT

-


A: Batch-inputs can not be used to fill the "delivery due list" screen because it is not a dynpro. This is a standard SAP report. A SAP report (check with "System -> Status") may be called using SUBMIT sentence with the appropriate options . It is preferred to call a report than create a Batch-input program.

GO THROUGH THIS LINK

http://www.guidancetech.com/people/holland/sap/abap/zzsni001.htm

check with this code

include bdcrecx1.

tables : mara.

data : begin of it_mara occurs 0,

matnr like mara-matnr,

mbrsh like mara-mbrsh,

mtart like mara-mtart,

maktx like makt-maktx,

meins like mara-meins,

end of it_mara.

start-of-selection.

perform upload_data.

perform open_group.

loop at it_mara.

perform bdc_dynpro using 'SAPLMGMM' '0060'.

perform bdc_field using 'BDC_CURSOR'

'RMMG1-MATNR'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'RMMG1-MATNR'

it_mara-matnr.

perform bdc_field using 'RMMG1-MBRSH'

it_mara-mbrsh.

perform bdc_field using 'RMMG1-MTART'

it_mara-mtart.

perform bdc_dynpro using 'SAPLMGMM' '0070'.

perform bdc_field using 'BDC_CURSOR'

'MSICHTAUSW-DYTXT(02)'.

perform bdc_field using 'BDC_OKCODE'

'=ENTR'.

perform bdc_field using 'MSICHTAUSW-KZSEL(01)'

'X'.

perform bdc_field using 'MSICHTAUSW-KZSEL(02)'

'X'.

perform bdc_dynpro using 'SAPLMGMM' '4004'.

perform bdc_field using 'BDC_OKCODE'

'=BU'.

perform bdc_field using 'MAKT-MAKTX'

it_mara-maktx.

perform bdc_field using 'BDC_CURSOR'

'MARA-MEINS'.

perform bdc_field using 'MARA-MEINS'

it_mara-meins.

perform bdc_field using 'MARA-MTPOS_MARA'

'NORM'.

perform bdc_transaction using 'MM01'.

endloop.

perform close_group.

&----


*& Form upload_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM upload_data .

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = 'c:\mat_bdc.txt'

FILETYPE = 'ASC'

TABLES

DATA_TAB = it_mara.

IF SY-SUBRC = 0.

SORT IT_MARA BY MATNR.

ENDIF.

ENDFORM. " upload_data

flat file structure is

PRANIT_011 CCOUP This is Testing material kg

PRANIT_012 CCOUP This is Testing material kg

PRANIT_013 CCOUP This is Testing material kg

PRANIT_014 CCOUP This is Testing material kg

PRANIT_015 CCOUP This is Testing material kg

when your selecting views

this particular material will belongs to Po/Sales or some other areas .

when you select basic 1 --it gives description

select basic 2 -- it gives tax ,amount, base unit of measurement

BDC TO BAPI

The steps to be followed are :

1. Find out the relevant BAPI (BAPI_SALESORDER_CHANGE for VA02).

[for VA01 use BAPI_SALESORDER_CREATEFROMDAT2]

2. Create a Z program and call the BAPi (same as a Funtion module call).

2. Now, if you see this BAPi, it has

-> Importing structures.

eg: SALESDOCUMENT: this will take the Sales order header data as input.

-> Tables parameters:

eg: ORDER_ITEM_IN: this will take the line item data as input.

Note :

Only specify fields that should be changed

Select these fields by entering an X in the checkboxes

Enter a U in the UPDATEFLAG field

Always specify key fields when changing the data, including in the checkboxes

The configuration is an exception here. If this needs to be changed, you need to complete it again fully.

Maintain quantities and dates in the schedule line data

Possible UPDATEFLAGS:

U = change

D = delete

I = add

Example

1. Delete the whole order

2. Delete order items

3. Change the order

4. Change the configuration

Notes

1. Minimum entry:

You must enter the order number in the SALESDOCUMENT structure.

You must always enter key fields for changes.

You must always specify the update indicator in the ORDER_HEADER_INX.

2. Commit control:

The BAPI does not run a database Commit, which means that the application must trigger the Commit so that the changes are read to the database. To do this, use the BAPI_TRANSACTION_COMMIT BAPI.

For further details... refer to the Function Module documentation for the BAPi.

For User Exits

User Exits

Screen exits are exits that allow you to use a reserved part of the screen (A subscreen) to display or input data.

It is determined be SAP where the sub screen will be displayed.

The syntax is: CALL CUSTOMER-SUBSCREEN

The screen exit is not processed untill the corresponding subscreen has been created in an enhancement project,

and the project has been activated.

Note:

Function codes are only processed in the main screens flow logic

You are not allowed to enter a name for the subscreens command field

You are not allowed to define GUI stauses

You are not allowed to enter a value for Next screen

The global data of the program is not available for the subscreen. Data for the subscreen is provided by function modules.

These function modules belongs to the same function group as the subscreen Subscreens are edited with transaction CMOD.

When you activate a project containg subscreens, the calling screen is regenerated and the subscreen is displayed next

time you display the calling screen

The developer must create the subscreen and the corresponding PBO and PAI modules

How to identify screen exits

Look after CALL CUSTOMER-SUBSCREEN in the screenprogram of the screen you want to modify.

Use transaction CMOD menu Utillities -> SAP enhancements to search for screen exits

MENU EXITS

Menu exits allow you to add your own functionallity to menus. Menu exits are implemented by SAP, and are reserved menu

entries in the GUI interface. The developer can add his/her own text and logic for the menu.

Function codes for menu exits all start with "+"

Example

We want to create a new menu item in the Office menu. The text for the menu should be "Run ZTEST", and the menu will

run report ZTEST.

Goto transaction SE43 Area Menu Maintenance

In Area Menu Paramenter type 'S000' (S triple Zero)

Select Change and ignore all the warning screens

Expand the office menu. In the buttom of the office tree you will find a menu named "Customer function"

Double click on the text. In the pop-up screen change the text to "Run ZTEST". Note that the trsnaction code is +C01

Goto transaction SE93 and create transaction +C01 that calls report ZTEST.

Now you will se the menu displayed in the office tree. If you delete transaction +C01 again, the new menu will dissapear.

USER EXITS

User exits (Function module exits) are exits developed by SAP. The exit is implementerd as a call to a functionmodule.

The code for the function module is writeen by the developer. You are not writing the code directly in the function module,

but in the include that is implemented in the function module.

The naming standard of function modules for functionmodule exits is: EXIT_<program name><3 digit suffix>

The call to a functionmodule exit is implemented as: CALL CUSTOMER.-FUNCTION ❤️ digit suffix>

Example:

The program for transaction VA01 Create salesorder is SAPMV45A

If you search for CALL CUSTOMER-FUNCTION i program SAPMV45A you will find ( Among other user exits):

CALL CUSTOMER-FUNCTION '003'

exporting

xvbak = vbak

xvbuk = vbuk

xkomk = tkomk

importing

lvf_subrc = lvf_subrc

tables

xvbfa = xvbfa

xvbap = xvbap

xvbup = xvbup.

The exit calls function module EXIT_SAPMV45A_003

2. How to find user exits

Display the program where you are searching for and exit and search for CALL CUSTOMER-EXIT

If you know the Exit name, go to transaction CMOD. Choose menu Utillities->SAP Enhancements.

Enter the exit name and press enter.

You will now come to a screen that shows the function module exits for the exit.

3. Using Project management of SAP Enhancements

We want to create a project to enahance trasnaction VA01

Go to transaction CMOD

Create a project called ZVA01

Choose the Enhancement assign radio button and press the Change button

In the first column enter V45A0002 Predefine sold-to party in sales document . Note that an enhancement can only

be used i 1 project. If the enhancement is allready in use, and error message will be displayed

Press Save

Press Components. You can now see that enhancement uses user exit EXIT_SAPMV45A_002. Double click on the exit.

Now the function module is displayed. Double click on include ZXVVAU04 in the function module

Insert the following code into the include: E_KUNNR = '2155'.

Activate the include program. Go back to CMOD and activate the project.

Goto transaction VA01 and craete a salesorder. Note that Sold-to-party now automatically is "2155"

Have look at this links

http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCCIOFFI/BCCIOFFI.pdf

http://www.sapgenie.com/abap/ole.htm

http://help.sap.com/saphelp_46c/helpdata/en/59/ae3f2e488f11d189490000e829fbbd/frameset.htm

http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCCIOFFI/BCCIOFFI.pdf

Creation of Field Exits

Step by step procedure for creating Field Exits

There are eight steps to creating a field exit:

Step 1: Determine Data Element

Step 2: Go To Field Exit Transaction

Step 3: Create Field Exit

Step 4: Create Function Module

Step 5: Code Function Module

Step 6: Activate Function Module

Step 7: Assign Program/Screen

Step 8: Activate Field Exit

Step 1: Determine Data Element

- Before you can begin adding the functionality for a field exit, you must know the corresponding data element.

- An easy way to determine the data element associated to a particular screen field is to:

Go the appropriate screen.

Position the cursor in the appropriate field.

Press eF1f for field-level help.

Click on the eTechnical infof pushbutton (or press eF9f) on the help dialog box.

On this Technical Information dialog box, the data element will be specified if the field is 'painted' from the ABAP/4 Dictionary.

Step 2: Go To Field Exit Transaction

- The transaction to create field exits is CMOD.

- You can use the menu path Tools -> ABAP/4 Workbench -> Utilities -> Enhancements -> Project management.

- From the initial screen of transaction CMOD, choose the Text enhancements -> Field exits menu path.

- After choosing this menu path, you will be taken to the field exits screen. From here, you can create a field exit.

NOTE : Even though you use transaction CMOD to maintain field exits, you do not need to create a project to activate field exits.

Step 3: Create Field Exit

- From the field exit screen of transaction CMOD, choose the Field exit -> Create menu path.

- After choosing this menu path, a dialog box will prompt you for the appropriate data element .

- Enter the data element name and click the eContinuef pushbutton.

- Now, you will be able to create the function module associated to the data elementfs field exit.

Step 4: Create Function Module

- You will automatically be taken to the Function Library (SE37) after entering a data element name and clicking the eContinuef pushbutton.

- In the eFunction modulef field, a function module name will be defaulted by the system based on the data element specified. This name will have the following convention:

FIELD_EXIT_<data element>

- You can add an identifier (an underscore followed by a single character ).

- The first function module for a data elementfs field exit must be created without an identifier.

- To create the function module, click on the eCreatef pushbutton, choose menu path Function module -> Create, or press eF5f.

- After choosing to create the function module, you will get the warning: "Function module name is reserved for SAP". This message is just a warning so a developer does not accidentally create a function module in the field exit name range. By pressing eEnterf, you will be able to go ahead and create the function module.

- Before coding the function module, you will have to specify the function modules attributes -- function group, application, and short text.

Step 5: Code Function Module

- From the function modulefs attributes screen, click on the eSource codef pushbutton or choose the Goto -> Function module menu path to the code of the function module.

- Here you will add your desired functionality for the field exit.

- Remember that field exitfs function module will have two parameters -- one importing parameter called "INPUT" and one exporting parameter called "OUTPUT". These parameters will be set up automatically by the system.

- You must remember to assign a value to the OUTPUT field. Even if the value does not change, it must be moved from the INPUT field to the OUTPUT field.

Step 6: Activate Function Module

- After coding the function module, you must remember to activate it.

- Use the Function module -> Activate menu path to activate the function module.

- At this point, you can return to the field exit transaction.

- You should be able to 'green arrow' back to this transaction.

- When you return to the field exit transaction, you will see an entry for the newly created field exit.

- At this point, the field exit is global. That is, it applies to all screens that use a particular data element. On any screen that uses the data element, the corresponding field exit function module will be triggered, once it is active.

- Also, the field exit will not be triggered yet because it is inactive.

Step 7: Assign Program/Screen

- This step is only needed if you want to make a field exit local.

- To make a field exit local, select the field exit and click on the eAssign prog./screenf pushbutton.

- In the dialog box , indicate the appropriate program name and screen number.

This information indicates that the field exit is local to the specified screen in the specified program.

- In the dialog box, you determine which function module gets executed for the field exit by specifying the identifier in the eFld. Exitf field.

- If this field is left blank, the function module triggered will be 'FIELD_EXIT_<data element>'.

- If a single-character identifier is entered into the field, the function module triggered will be 'FIELD_EXIT_<data element>_<identifier>'.

Step 8: Activate Field Exit

- The field exit must be active for it to be triggered by the system.

- Activate the field exit by choosing the Field exit -> Activate menu path.

- After assigning the field exit to a change request, its status will change to eActivef and it will be triggered automatically on the appropriate screen(s).

NOTE : In order to activate the field exit the profile parameter abap/fieldexit = YES must be set on all application servers

Thanks & regards

Sreenivasulu P

Read only

Former Member
0 Likes
1,551

Hi Mithun,

Here are some very good links for the topics you've asked for-

<b>BDC</b>

http://www.sap-img.com/bdc.htm

www.sappoint.com/abap/bdcconcept.pdf

www.sap-img.com/abap/learning-bdc-programming.htm

www.sap-img.com/abap/question-about-bdc-program.htm

www.sapdevelopment.co.uk/bdc/bdchome.htm

www.planetsap.com/bdc_main_page.htm

http://www.sapbrain.com/TUTORIALS/TECHNICAL/BDC_tutorial.html

<b>Table control in BDC</b>

http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm

<b>User Exits</b>

http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm

http://www.sapgenie.com/abap/code/abap26.htm

http://www.sap-img.com/abap/what-is-user-exits.htm

http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction

http://www.easymarketplace.de/userexit.php

http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm

<b>BAPI-step by step</b>

http://www.sapgenie.com/abap/bapi/example.htm

http://searchsap.techtarget.com/ateQuestionNResponse/0,289625,sid21_cid558752_tax293481,00.html

http://www.sap-img.com/abap/interview-question-on-bapi-rfc-abap-objects-tables.htm

http://www.sap-img.com/fu033.htm

http://www.sap-img.com/abap/ale-bapi.htm

http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html

http://techrepublic.com.com/5100-6329-1051160.html#

http://www.sap-img.com/bapi.htm

http://www.sap-img.com/abap/bapi-conventions.htm

http://www.sappoint.com/abap/bapiintro.pdf

www.planetsap.com/Bapi_main_page.htm

www.sapgenie.com/abap/bapi/index.htm

<b>BADI Links</b>

http://help.sap.com/saphelp_erp2005/helpdata/en/73/7e7941601b1d09e10000000a155106/frameset.htm

http://support.sas.com/rnd/papers/sugi30/SAP.ppt

http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm

http://members.aol.com/_ht_a/skarkada/sap/

http://www.ct-software.com/reportpool_frame.htm

http://www.saphelp.com/SAP_Technical.htm

http://www.kabai.com/abaps/q.htm

http://www.guidancetech.com/people/holland/sap/abap/

http://www.planetsap.com/download_abap_programs.htm

http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm

/people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series

/people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework

Please mark useful answers.

Regards,

Tanuja.

Message was edited by: Tanuja Sarraju

Message was edited by: Tanuja Sarraju

Read only

Former Member
0 Likes
1,551

Hi guys, I'm in a similar position as Mithun,

Thanks to all the people who posted the links ,

Please keep posting

-ashrut