Cerca nel blog

venerdì 2 settembre 2016

ABAP: Creazione di una Field Exit

Creazione di una Field Exit per il campo RM06E-KNTTP (Categoria di contabilizzazione) della transazione ME31K

La field-exit è una funzione utile a modificare l'input in un campo di una determinata dynpro (attenzione solo schermate di module pool, no quindi quelle delle selection-screen dei report).
OBIETTIVO: Per settare un valore nel campo (Categoria di contabilizzazione) della transazione ME31K (creazione Contratto) bisogna creare la field exit su questo campo. Richiamiamo la transazione ME31K, mettiamo il cursore sul campo che si interessa (Categoria di contabilizzazione) e premiamo F1, e prendiamo le seguenti informazioni: “Nome progr”, “Numero Videata”,  “Elemento Dati”, “Campo dynpro”


SOLUZIONE: Richiamare la transazione CMOD e subito dopo (sempre dove si scrivono le transazioni) richiamare la transazione PRFB, e viene visualizzata la seguente schermata:


Se  nella schermata non è presente il nostro elemento dato (in questo esempio KNTTP), lo dobbiamo creare, quindi dal menu selezionare “Uscita Campo” -> “Creare”



Nella schermata successiva inserire il nostro elemento dato KNTTP e premere OK

 
Successivamente verrà richiesto di creare il Function Module “FIELD_EXIT_KNTTP” quindi premere il pulsante create

 
Nella funzione inserire il codice per settare il valore di input, nel nostro caso deve essere settato in base al valore letto dal campo “Tipo di contratto”. Salvare e attivare il FM.


FUNCTION field_exit_knttp.
*"----------------------------------------------------------------------
*"*"Interfaccia locale:
*"  IMPORTING
*"     REFERENCE(INPUT)
*"  EXPORTING
*"     REFERENCE(OUTPUT)
*"----------------------------------------------------------------------

  
FIELD-SYMBOLS<fs_evart>,
                 <fs_epstp>
.

  
IF sy-tcode EQ 'ME31K' .
    
ASSIGN ('(SAPMM06E)RM06E-EVART'TO <fs_evart>.
    
IF <fs_evart> IS ASSIGNED AND
       
<fs_evart> EQ 'ZQXX' OR <fs_evart> EQ 'ZQYY' and
       
input NE 'U'.

      
output 'U'.
    
ENDIF.
  
ENDIF.

ENDFUNCTION.


Ritorniamo nella schermata della transazione PRFB, e cerchiamo il nostro elemento dati, lo selezioniamo e premiamo il pulsante “Attrib. Prog./dynpro”



Nella schermata successiva inserire l’elemento dati, il programma e la dynpro dove vogliamo settare il valore del campo KNTTP, e premere il pulsante  “SALVARE”


Dal Menu “Uscita campo” selezionare ATTIVARE.


Nessun commento:

Posta un commento