Cerca nel blog

lunedì 13 febbraio 2017

ABAP: Sostituzioni e Validazioni

Sostituzioni e Validazioni SAP ABAP

Le sostituzioni e le validazioni, sono strumenti SAP per ampliare un flusso standard con controlli custom nel caso delle validazioni , e sostituzioni di variabili in quel flusso nel caso di sostituzioni.

Ogni tipologia ha una transazione associata, per creare o modificare. Nel caso delle validazioni abbiamo la GGB0 ,  mentre nel caso delle sostituzioni abbiamo GGB1.

In ambito FI, le validazioni e sostituzioni applicate ad un documento contabile, permettono di effettuare delle verifiche e delle modifiche in testata del documento (tabella BKPF) o sull'item di un documento (tabella BSEG).

NOTA: La validazione è utilizzata SOLO per effettuare dei CHECK. La sostituzione è utilizzata SOLO per effettuare delle MODIFICHE.

La creazione delle sostituzioni o delle validazioni possono essere fatte in modo semplice dalla transazione implementando controlli e sostituzioni dall’interfaccia grafica di SAP.

Le validazioni e le sostituzioni offrono iterazione attraverso 3 eventi:
1.     Document Header à permette di effettuare le validation sulla testata del documento (BKPF)
2.    Line Item à permette di effettuare la validation sugli item e sulla testata (BKPF, BSEG)
3. Complete Document à permette di effettuare la validation al salvataggio del documento.

Ogni evento è costituito da 3 step come mostrato in figura:


Per creare validazioni o sostituzioni più elaborate, utilizziamo due report custom copiati da due programmi standard rispettivamente per le validazioni “ZRGGBR000” (copiato da RGGBR000) e per le sostituzioni “ZRGGBS000” (copiato da RGGBS000).

Richiamare la transazione GCX2 per verificare se sono stati creati dei programmi custom per le validazioni o sostituzioni.
 
Questa scelta del report è dovuta al fatto che dalle transazioni GGB0/GGB1 non è possibile inserire SELECT nei controlli , o gestire per esempio più messaggi di errori.

Nel report vengono create delle FORM con una nomenclatura di solito incrementale, ad esempio se l’ultimo form si chiama come in foto u957 il prossimo form verrà chiamato u958.


Ogni form viene associata ad una FASE che identifica una parte standard ben precisa di una transazione.
Un esempio di fase come in foto sopra la "FASE 007", è della transazione FB01/FB02 in modifica della testata documento.
Come si legge nel TAB Controllo, è stata associata una form che si chiama U901.
Unica accortenza è l'implementazione di queste istruzioni, nel report "ZRGGBR000" o nel report "ZRGGBS000"

exits-name  'U957'.
exits-param c_exit_param_class.        
exits-title 'U957'.      
APPEND exits. 
Server per far capire al report RGUGBR00 per modulo FI di rigenerazione oppure RV80HGEN, quali form deve aggiornare o creare da zero.

VALIDAZIONE

Per effettuare una validazione richiamare la transazione GGB0, che offre un'iterazione a 3 eventi:
  • Document Header permette di effettuare le validation sulla testata del documento (BKPF)
  • Line Item permette di effettuare la validation sugli item e sulla testata (BKPF, BSEG)
  • Complete Document permette di effettuare la validation al salvataggio del documento.
Ogni evento è costituito da 3 step come mostrato in figura:

  • Prerequisiti filtro su cui effettuare la Validazione
  • Check Controllo se mostrare o meno il messaggio
  • Message mostra il messaggio a video.

Nei Prerequisiti e Check SAP ci offre la possibilità di creare la propria condizione per far sì che il check venga effettuato, come mostrato in figura precedente. La condizione può essere manipolata utilizzando varie opzioni standard: 
  • Constant costante
  • FldComp range
  • Comment stringa da utilizzare come confronto.
  • Set Directory Possibilità di utilizzare un SET come confronto.
Oltre alle opzioni standard per creare la condizione, SAP mette a disposizione delle routine di exit che permettono di definire codice custom che potrà essere utilizzato sia nello step di prerequisito che nello step di check. Per poter definire una exit custom seguire i seguenti passaggi:
  • Per le validazioni il programma di riferimento ZRGGBR000. All'interno del programma creare una nuova form con parametro "Changing" che conterrà il valore restituito dalla form. 
  • Per rendere la nuova routine di exit disponibile nella lista di routine all’interno della TCODE GGB0, deve essere inserito del codice all’interno della form get_exit_titles presente nel programma indicato al punto precedente.

    exits-name  'U957'.
    exits-param c_exit_param_none.        
    exits-title 'U957'.      
    APPEND exits.  

    Punto fondamentale per la visibilità della nuova routine è la rigenerazione del programma, cosa che sarà descritta successivamente.
Una volta effettuate le modifiche è il momento di rigenerare il tutto e legare ad una TR SAP.

SOSTITUZIONE

La Sostituzione è simile alla Validazione.
Per effettuare una Sostituzione richiamare la transazione GGB1, che offre un'iterazione a 5 eventi:
  • Document Header permette di effettuare le sostituzioni sulla testata del documento (BKPF)
  • Line Item permette di effettuare la sostituzione sugli item e sulla testata (BKPF, BSEG)
  • Complete Document  permette di effettuare la sostituzione al salvataggio del documento.
  • Cost of Sales Accounting.
  • Cost of Sales Accounting (new). 
Ogni evento è costituito da 2 step:
  • Prerequisiti filtro su cui effettuare la Sostituzione
  • Sostituzioni  Effettui la sostituzione del campo.
Nei Prerequisiti SAP ci offre la possibilità di creare la propria condizione per far sì che il filtro venga effettuato. La condizione può essere manipolata utilizzando varie opzioni standard: 
  • Constant  costante
  • FldComp  range
  • Comment  stringa da utilizzare come confronto.
  • Set Directory  Possibilità di utilizzare un SET come confronto.
Oltre alle opzioni standard per creare la condizione, SAP mette a disposizione delle routine di exit che permettono di definire codice custom che potrà essere utilizzato in entrambi gli step.
 

Per le routine di exit valgono le stesse nozioni specificate per le Validation. L’unica cosa che cambia è  il nome del programma che conterrà la form. Il programma è ZRGGBS00.

Una volta effettuate le modifiche è il momento di rigenerare il tutto e legare ad una TR SAP.
   
RIGENERAZIONE

Per effettuare la rigenerazione richiamare la transazione SE38, ed inserite il nome del report RGUGBR00. Esso è usato per la validazione e sostituzione.
Le rigenerazioni devono essere effettuate in tutti gli ambienti quando vengono trasportate le CR.

In Application Area inseriremo l’ambito (FI).   In callup point inseriremo il tipo di evento (Document Header, Item Line, Complete document) che vogliamo rigenerare.

Selezionare i checkbox in base a cosa si vuole rigenerare. Se si vuole rigenerare Validation (Generare Validazione) o Substitution (Generare Sostituzione) checkare tutto eccetto l’ultimo.
Questa operazione rigenererà anche i programmi custom legati rispettivamente a Validation e Substitution.


CREARE Transport Request (CR)

Prima di creare la TR SAP assicurarsi di aver rigenerato il tutto.
Da una delle 2 transazioni GBB0 o GBB1, selezionare lo step da trasportare e andare nel menu a tendina e selezionare la TR. Ci chiederà una TR di workbench.


TRACE VALIDAZIONI e SOSTITUZIONI

Per capire quali Validazioni o Sostituzioni sono scattate durante una transazione, bisogna abilitare la TRACE e per farlo richiamare la transazione GGB1 per le sostituzioni oppure GGB0 per le validazioni, selezionare l’area di interesse,  dal menu Opzioni->Attivare Trace (tutti) su una cartella , in questo caso seleziono la cartella AA-01 ed attivo in automatico il trace su tutte le cartelle AA-01, AA-03, AA-04, AA-05, AA-09:

 
Quando si lancia la transazione interessata ,viene visualizzata una popup con tutte le validazioni o sostituzioni richiamate ed a fianco di ognuna di loro viene visualizzato il risultato della validazione/sostituzione (se andata a buon fine o meno)  premendo il pulsante viene visualizzato il dettaglio.
 

Nessun commento:

Posta un commento