Sie sind auf Seite 1von 9

Picking material description from custom table in the SAP Sales Order

(VA01 and VA02) using enhancement framework

By Shaik Sajid, Selligence Technologies

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.

Then click on Continue button (Green tick).

In the below Screen, Select the Enhancement Implementation which we have created now and click
on Continue button.
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 T
ype '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 E
Q 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 E
Q 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_T
ENDERID.
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

Das könnte Ihnen auch gefallen