Thursday, February 3, 2011

Picking material description from custom table in the SAP Sales Order (VA01 and VA02) using enhancement framework

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 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

No comments:

Tutorials on SAP-ABAP

Adobe Interactive Forms Tutorials

Business Server Pages (BSP)

Userexits/BADIs

Web Dynpro for ABAP (Step by step procedure for web dynpro,Tutorials on Web Dynpro,)

ALV Tutorials

Blog Archive

goodsites