1.
Append the structure qals_d02 in se11 with the field you want to display..
2. Append the same field in QALS table in se11. (to save you from dump on running QA32)
(e.g. you want to add Functional Criticality in the alv of QA32. go to se11, append 'ZATWRT' in the qals_d02 structure, then goto se11 again and append 'ZATWRT' in QALS table. activate both. )
3. in subroutine CALL_LISTVIEWER_F14 ,
implement an implicit enhancement with the code at the beginning to modify
object_tab internal table which displays data. Activate the enhancement.
ENHANCEMENT 1 ZMATERIAL_CRITICALITY. "active version
*----------------------------------------------------------------------*
*New logic for retrieving the Functional Criticality of the Material in QA32/QA33.
DATA: LT_VALUENUM TYPE STANDARD TABLE OF BAPI1003_ALLOC_VALUES_NUM WITH EMPTY KEY,
LT_VALUECHAR TYPE STANDARD TABLE OF BAPI1003_ALLOC_VALUES_CHAR WITH EMPTY KEY,
LT_VALUECURR TYPE STANDARD TABLE OF BAPI1003_ALLOC_VALUES_CURR WITH EMPTY KEY,
LT_RETURN TYPE STANDARD TABLE OF BAPIRET2.
DATA: LV_OBJKEY TYPE BAPI1003_KEY-OBJECT,
LV_OBJKEY1 TYPE BAPI1003_KEY-OBJECT,
LV_PRUEFLOS TYPE BAPI1003_KEY-OBJECT,
LV_OBJTABLE TYPE BAPI1003_KEY-OBJECTTABLE VALUE 'MARA',
LV_CLASSNUM TYPE BAPI1003_KEY-CLASSNUM VALUE 'TABLE_FILES',
LV_CLASSNUM1 TYPE BAPI1003_KEY-CLASSNUM VALUE 'MPN_CLASS',
LV_CLASSTYPE TYPE BAPI1003_KEY-CLASSTYPE VALUE '001',
LV_ZZCRTFN TYPE ZMM_CRTFN,
LV_MATNR TYPE CHAR18,
lv_src_value TYPE string.
DATA: LV_TABIX TYPE SY-TABIX.
CONSTANTS: LC_001(3) TYPE C VALUE '001',
LC_FUNC TYPE BAPICHARACTKEY-CHARACTNAME VALUE 'FN-CRITICALITY',
LC_FUNC1 TYPE BAPICHARACTKEY-CHARACTNAME VALUE 'SOURCING-APRCH'.
* GET ALL CLASSIFICATION DETAILS
FIELD-SYMBOLS : <WA> TYPE ANY,
<F_LINE> TYPE ANY,
<F_FIELD> TYPE ANY,
<F_FIELD1> TYPE ANY,
<LV_OBJKEY> TYPE ANY,
<LV_OBJKEY1> TYPE ANY,
<LV_PRUEFLOS> TYPE ANY.
LOOP AT P_OBJECT_TAB ASSIGNING <WA>.
ASSIGN COMPONENT 'ATWRT' OF STRUCTURE <WA> TO <F_FIELD>.
ASSIGN COMPONENT 'ZPURSOURCE' OF STRUCTURE <WA> TO <F_FIELD1>.
ASSIGN COMPONENT 'MATNR' OF STRUCTURE <WA> TO <LV_OBJKEY>.
ASSIGN COMPONENT 'EMATNR' OF STRUCTURE <WA> TO <LV_OBJKEY1>.
ASSIGN COMPONENT 'PRUEFLOS' OF STRUCTURE <WA> TO <LV_PRUEFLOS>.
LV_OBJKEY = <LV_OBJKEY>.
LV_OBJKEY1 = <LV_OBJKEY1>.
LV_PRUEFLOS = <LV_PRUEFLOS>.
CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
EXPORTING
OBJECTKEY = LV_OBJKEY
OBJECTTABLE = LV_OBJTABLE
CLASSNUM = LV_CLASSNUM
CLASSTYPE = LV_CLASSTYPE
KEYDATE = SY-DATUM
TABLES
ALLOCVALUESNUM = LT_VALUENUM
ALLOCVALUESCHAR = LT_VALUECHAR
ALLOCVALUESCURR = LT_VALUECURR
RETURN = LT_RETURN.
ASSIGN LT_VALUECHAR[ CHARACT = LC_FUNC ] TO FIELD-SYMBOL(<LFS_CHAR>).
* GET THE FUNCTIONAL CRITICALITY
IF SY-SUBRC EQ 0.
<F_FIELD> = <LFS_CHAR>-VALUE_CHAR.
IF <F_FIELD> NE SPACE.
UPDATE QALS SET ATWRT = <F_FIELD> WHERE PRUEFLOS = LV_PRUEFLOS AND ATWRT EQ SPACE.
IF SY-SUBRC EQ 0.
COMMIT WORK.
WAIT UP TO 2 SECONDS.
ENDIF.
ENDIF.
ENDIF.
* To get the Sourcing Approach for MPN material
IF LV_OBJKEY NE LV_OBJKEY1 AND LV_OBJKEY1 NE SPACE.
*IF LV_OBJKEY1 NE SPACE.
CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
EXPORTING
OBJECTKEY = LV_OBJKEY1
OBJECTTABLE = LV_OBJTABLE
CLASSNUM = LV_CLASSNUM1
CLASSTYPE = LV_CLASSTYPE
KEYDATE = SY-DATUM
TABLES
ALLOCVALUESNUM = LT_VALUENUM
ALLOCVALUESCHAR = LT_VALUECHAR
ALLOCVALUESCURR = LT_VALUECURR
RETURN = LT_RETURN.
ASSIGN LT_VALUECHAR[ CHARACT = LC_FUNC1 ] TO FIELD-SYMBOL(<LFS_CHAR1>).
* GET THE PURCHASING SOURCE
IF SY-SUBRC EQ 0.
<F_FIELD1> = <LFS_CHAR1>-VALUE_CHAR.
IF <F_FIELD1> NE SPACE.
UPDATE QALS SET ZPURSOURCE = <F_FIELD1> WHERE PRUEFLOS = LV_PRUEFLOS AND ZPURSOURCE EQ SPACE.
IF SY-SUBRC EQ 0.
COMMIT WORK.
WAIT UP TO 2 SECONDS.
ENDIF.
ENDIF.
ENDIF.
CLEAR LV_OBJKEY.
CLEAR LV_OBJKEY1.
ENDIF.
ENDLOOP.