Ansicht
Dokumentation

/ISDFPS/MATPLN_C_SEL - BAdI: Kundenerweiterung der Disponenten-Workbench

/ISDFPS/MATPLN_C_SEL - BAdI: Kundenerweiterung der Disponenten-Workbench

RFUMSV00 - Advance Return for Tax on Sales/Purchases   CL_GUI_FRONTEND_SERVICES - Frontend Services  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

In der Defense-Solution kann es notwendig sein, Reports zur Anforderung und Planung von Material (NVG Bewirtschaftung, z.B. Materiallage TA /ISDFPS/DISP_MAT_SIT oder Disponentenworkbench TA /ISDFPS/DSP1) zu erweitern.

Es können kundeneigene Felder auf dem Selektionsbild als auch Felder im ALV-Grid wie z.B. "Anzeigen des Postionstexts zu einer Banf" nötig sein.

Hierzu wird der zusammengesetzte Erweiterungsspot /ISDFPS/ESC_MATPLN_CUST_SEL mit der BAdI Definition /ISDFPS/BADI_MATPLN_CUST_SEL (Erweiterungsspot /ISDFPS/ES_MATPLN_CUST_SEL )und den jeweiligen Enhancement-Points für die Reports angeboten.

  1. Enhancement-Points

Soll ein Report um Selektionsfelder erweitert werden ist jeweils der Enhancement-Point

  • /ISDFPS/SEL_#Reportname# für die Selektionsfelder und
  • /ISDFPS/SSO_#Reportname# für Texte zu den Selektionsfeldern

zu implementieren.

Um das Selektionsbild zu erweitern, können im Rahmen des Erweiterungskonzepts die jeweilige explizite Erweiterungsoption mit den gewünschten Paramtern, z.B. PARAMETER text TYPE xfeld, implementiert werden.

(Erweiterungsimplementierungen werden mit dem in die ABAP Workbench integrierten Werkzeug Enhancement Builder bearbeitet.)

  1. BAdI-Definition /ISDFPS/BADI_MATPLN_CUST_SEL

Zum Füllen der Felder muss eine BAdI-Implementierung für die BAdI Definition /ISDFPS/BADI_MATPLN_CUST_SEL angelegt und die entsprechende Logik implementiert werden.

  • BAdI - Methode EXPAND_SCREEN - Verarbeitung der Seletionsfelder

Übergabeparameter:

  • IT_PARAMS enthält alle Parameter des Selektionsbildes

  • IT_DATA und IT_DATA_SER enthalten alle notwendigen Daten

  • BAdI - Methode CHANGE_FCAT - Feldkatalog erweitern.

Übergabeparameter:

  • IV_DETAIL_MODE Kennzeichen ob Material- oder Serialsicht

  • IV_PLACEMENT enthält eine Verwendungsinfo

  • CT_FCAT enthält den Feldkatalog für die Materialsicht

  • CT_FCAT_SER enthält den Feldkatalog für die Serialsicht

Alternativ kann zur Erweiterung des Feldkatalogs ein APPEND mit den gewünschten Feldern in der Struktur /ISDFPS/FDPMAT_STOCKLIST angelegt werden (z.B. ZZ_MEMO_TEXT TYPE TEXT128).

Die Felder müssen mit den für Kunden reservierten Buchstaben ZZ oder YY beginnen, da sie sonst nicht im ALV angezeigt werden können.

Beispiel 1- Positionstext zur Position einer BANF lesen:

Die Struktur /ISDFPS/FDPMAT_STOCKLIST wird um das Feld ZZ_MEMO_TEXT TYPE TEXT128 erweitert. Die Methode zur Datenselektion wird wie folgt erweitert:

method /ISDFPS/IF_MATPLN_CUST_SEL~EXPAND_SCREEN.

* DATA: lt_reqitem_old TYPE TABLE OF bapieban,

* lt_reqtexts TYPE TABLE OF bapiebantx.

*

* DATA: lr_banfn TYPE RANGE OF eban-banfn,

* ls_banfn LIKE LINE OF lr_banfn VALUE 'IEQ'.

*

* FIELD-SYMBOLS: LIKE LINE OF it_data,

* LIKE LINE OF lr_banfn,

* TYPE bapiebantx,

* LIKE LINE OF it_params.

*

** field of include z_customer_sel_screen

* READ TABLE it_params ASSIGNING

* WITH KEY selname = 'TEXT'

* low = 'X'.

* CHECK sy-subrc = 0.

*

*

* CHECK it_data IS NOT INITIAL.

* LOOP AT it_data ASSIGNING .

* ls_banfn-low = -preq_no.

* COLLECT ls_banfn INTO lr_banfn.

* ENDLOOP.

*

* LOOP AT lr_banfn ASSIGNING .

*

** read PR item text

* CALL FUNCTION 'BAPI_REQUISITION_GETDETAIL'

* EXPORTING

* number = -low

* item_texts = 'X'

* TABLES

* requisition_items = lt_reqitem_old

* requisition_text = lt_reqtexts.

*

* IF lt_reqtexts IS NOT INITIAL.

* LOOP AT lt_reqtexts ASSIGNING

* WHERE text_id = 'B01' " B01 = Customizing (text options)

* AND text_form = '*'.

* READ TABLE it_data ASSIGNING

* WITH KEY preq_no = -preq_no

* preq_item = -preq_item.

* IF sy-subrc = 0.

** at first: create field 'zz_memo_text' in structur /ISDFPS/FDPMAT_STOCKLIST_T

* -zz_memo_text = -text_line.

* ENDIF.

* ENDLOOP.

* ENDIF.

* ENDLOOP.

endmethod.

Beispiel 2 - Neues Selektionsfeld Materiart in Transaktion /ISDFPS/DISP_MAT_SIT

  1. Enh-Point /ISDFPS/SEL_DISPLAY_MAT_OR_EQU implementieren

SELECTION-SCREEN BEGIN OF BLOCK zcustomer WITH FRAME TITLE ztitle.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT (20) z_mtart MODIF ID CUS. "FOR FIELD P_MTART.

PARAMETERS: P_MTART type MARA-MTART MODIF ID CUS.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK zcustomer.

  1. Enh-Point /ISDFPS/SEL_DISPLAY_MAT_OR_EQU implementieren

DATA: para TYPE tpara-paramid VALUE 'Z_BADI_CUS_SEL',

para_v TYPE char1.

* test

ztitle = '!!! Test - Kundeneigene Erweiterungen !!!'.

z_mtart = 'Materialart'.

" user para Z_BADI_CUS_SEL

GET PARAMETER ID para FIELD para_v.

* nicht für Transaktion /ISDFPS/DISP_EQUI_SIT - Kennzeichen x_equi

IF x_equi IS NOT INITIAL or

para_v IS INITIAL.

LOOP AT SCREEN.

IF screen-group1 = 'CUS'.

screen-invisible = '1'.

screen-active = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

  1. method /ISDFPS/IF_MATPLN_CUST_SEL~EXPAND_SCREEN.

FIELD-SYMBOLS: TYPE rsparams.

IF it_params IS NOT INITIAL.

READ TABLE it_params ASSIGNING

WITH KEY selname = 'P_MTART'.

IF sy-subrc = 0.

IF -low IS NOT INITIAL.

DELETE it_data WHERE mtart <> -low.

DELETE it_data_ser WHERE mtart <> -low.

ENDIF.

ENDIF.

ENDIF.

* fill range lr_matkl from select-option S_MATKL

DATA: lr_matkl TYPE RANGE OF mara-matkl,

ls_matkl LIKE LINE OF lr_matkl.

LOOP AT it_params ASSIGNING

WHERE selname = 'S_MATKL'.

MOVE-CORRESPONDING TO ls_matkl.

APPEND ls_matkl TO lr_matkl.

ENDLOOP.

IF lr_matkl[] IS NOT INITIAL.

DELETE it_data WHERE matkl NOT IN lr_matkl.

DELETE it_data_ser WHERE matkl NOT IN lr_matkl.

ENDIF.

  1. method /ISDFPS/IF_MATPLN_CUST_SEL~CHANGE_FCAT

LOOP AT ct_fcat ASSIGNING .

IF -fieldname = 'MTART'.

CONCATENATE 'BADI:' -scrtext_l

INTO -scrtext_l SEPARATED BY space.

ENDIF.

ENDLOOP.






PERFORM Short Reference   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 9014 Date: 20240328 Time: 132253     sap01-206 ( 92 ms )