This scenario would work from ECC6.0 onwards.
In Enhancement Framework, we can add our own Code at particular points.
While debugging the standard SAP program, we have to decide at which place we would need to write our own code. There we need to check whether enhancement can be implemented.
Requirement: In Sales Order (VA01 & VA02), we have to pick the Material Description from Custom Table.
While debugging it is found that the code needs to be written in the FORM USEREXIT_MOVE_FIELD_TO_VBAP. Now click on Enhance button as shown below.
It shows the screen as below :
Then it shows the Screen as below:
""" indicates we can write our code here.
Now Right click on """"""""""""" and select Enhancement Implementation -> Create.
Select Code.
Now click on Create button in the above screen. Another Screen appears as shown below:
In the above screen, click on Create Composite Implementation and the following Screen appears.
Now here we can write our own code as shown below:
Code:
ENHANCEMENT 315 ZSD_EI_BOQDESC. "active version
* Modification Done By : Sajid Shaik.
* Date : 08.06.2009
* Requirement Given by : Avinash Gyale
* Requirement : Material Description should be fetched from BOQ based on the Plant and Boq Type 'Erection or Civil'.
* : This should work only for Order type ZCO1 - Civil & Order type ZER1 - Erection
DATA : VAR_ARKTX TYPE VBAP-ARKTX,
VAR_MAKTX TYPE ZBOQ_ITEM-MAKTX,
VAR_TENDERID TYPE ZBOQ_ITEM-TENDERID,
VAR_LENGTH TYPE INT4.
IF ( SY-TCODE EQ 'VA01' OR SY-TCODE EQ 'VA02' ) AND ( VBAK-AUART EQ 'ZCO1' OR VBAK-AUART EQ 'ZER1' ) AND VBAP-WERKS IS NOT INITIAL.
CLEAR : VAR_ARKTX,VAR_MAKTX,VAR_TENDERID .
IF VBAK-AUART EQ 'ZCO1'.
SELECT SINGLE TENDERID FROM ZBOQ_HEADER INTO VAR_TENDERID WHERE WERKS EQ VBAP-WERKS AND TYPE EQ '3'.
IF SY-SUBRC NE 0.
ENDIF.
ELSEIF VBAK-AUART EQ 'ZER1'.
SELECT SINGLE TENDERID FROM ZBOQ_HEADER INTO VAR_TENDERID WHERE WERKS EQ VBAP-WERKS AND TYPE EQ '2'.
IF SY-SUBRC NE 0.
ENDIF.
ENDIF.
SELECT SINGLE MAKTX FROM ZBOQ_ITEM INTO VAR_MAKTX WHERE TENDERID EQ VAR_TENDERID.
IF SY-SUBRC NE 0.
ENDIF.
VAR_LENGTH = STRLEN( VAR_MAKTX ).
IF VAR_LENGTH LE 40.
VAR_ARKTX = VAR_MAKTX(VAR_LENGTH).
ELSE.
VAR_ARKTX = VAR_MAKTX(40).
ENDIF.
IF VAR_ARKTX IS NOT INITIAL.
VBAP-ARKTX = VAR_ARKTX.
ENDIF.
ENDIF.
ENDENHANCEMENT.
Then Save and Activate it.
OUTPUT :
Before Enhancement Implementation
After Enhancement Implementation