These BAdIs are located in the Enhancement Sport Spot /EDGE/EI_IT_ENH_SPOT_POSTING:
To enhance a block with new fields, there are three steps that need to be done.
- Enhance structure of the block
- Enhance BAdI /EDGE/BADI_EI_IT_GEN_SEL
- Enhance BAdI /EDGE/BADI_EI_IT_SAVE_BUTTON
- Enhance BAdI /EDGE/BADI_EI_IT_SCREEN
Enhance structure of the block
Block | Structure |
---|---|
General Fields | /EDGE/EI_IT_GENERAL_DATA |
FI Fields | /EDGE/EI_IT_FI_FIELDS |
MM Fields | /EDGE/EI_IT_MM_FIELDS |
The structure has to be enhance enhanced with an append that contains all the fields that want to be added.
...
Enhance BAdI /EDGE/BADI_EI_IT_GEN_SEL
This BAdI has three methods, one for each block, to implement the values of the new fields.
- GET_DATA_GEN
- GET_DATA_FI
- GET_DATA_MM
It also has the three enhancement screens:
This BAdI does not have an implementation so that, one implementation has to be done to be able to enhance a block.
...
Create implementation of BAdI:
Create a implementation class:
Create screen enhancements:
To be able to give value to the program and subscreen implementation and to the method in the class we need to create a function module with functions modules for the different blocks and the screens with the fields we want to add:
In each screen we need to add the new fields:
Moreover, a PBO module needs to be added in the PBO logic:
This logic, retrieve the data of these fields in case of the invoice had been save in data base before, using the save button in the posting screen()
For the FI dynpro we need to retrieve the data for the FI fields:
...
In each function module we need to add the lines to ct_campos_pantalla with the required values from the dynpro that has been created:
The dynpros need to be type subscreen:
Enhance BAdI /EDGE/BADI_EI_IT_SAVE_BUTTON
This BadI is necessary to save the data of an invoice in database through the save button of the posting screen and to be able to retrieve it
The interface has three methods:
- FI_SAVE_BUTTON: Enhancement for SAVE button in posting screen FI.
- MM_SAVE_BUTTON: Enhancement for SAVE button in posting screen MM.
- GEN_SAVE_BUTTON: Enhancement for SAVE button in posting screen General Fields.
In these methods we need to enhance the changing parameter CS_STRUCTURE_GEN adding the new fields data to it, to be able to save it in data base and retrieve further on:
Enhance BAdI /EDGE/BADI_EI_IT_SCREEN
This BAdI is necessary to add new fields to the posting screen.
The interface has six methods:
- SET_HEADER_GENERAL
- SET_POSTING_FI_VENDOR
- SET_POSTING_FI_PAYMENT
- SET_POSTING_PO_VENDOR
- SET_POSTING_PO_PAYMENT
- GET_SCREEN_VALUES
If the ALVs for Document items, Tax positions or Logistic positions want to be enhancement, please check the indications for it in the next link: 2.2.2.5 ALV enhancements.