Esistono molti modi fantasiosi in aggiunta a quello standard SAP di gestire le autorizzazioni.
Iniziamo con il dire qual è l’unico modo consigliato. Quello dei controlli autorizzativi utilizzando lo statement ABAP AUTHORITY-CHECK.
Quali sono altri modi di gestire i controlli autorizzativi in SAP? Ma soprattutto per quale motivo non dovresti usarli?
Tra le bad practice il metodo sicuramente più utilizzato è quello di creare una tabella custom dove andare ad inserire utenti.
Tecnicamente, viene inserito nel codice del programma (collegato alla transazione SAP) un controllo di presenza di un certo utente (spesso in aggiunta a determinati altre condizioni) nella tabella custom definita, affinché sia possibile proseguire.
Ma perché non è corretto e quali rischi comporta?
Quali sono quindi i vantaggi di utilizzare delle tabelle custom per il controllo autorizzativo?
Purtroppo non c'è una risposta univoca, dipende da quanto sono presenti nei processi queste situazioni.
Per pochi casi può essere relativamente semplice, per molti addirittura improponibile.
Non così frequente ma ancora possibile oggi. L’inserimento nel codice ABAP dei nomi tecnici di oggetti.
Ad esempio: se l’utente ha assegnato in quel momento (magari senza controllare nemmeno la validità dell’attribuzione) un certo ruolo (nome tecnico) allora esegui una certa operazione.
Simile al precedente ma questa volta direttamente sulla utenza tecnica. Ovvero se sto usando una certa utenza allora potrò svolgere una certa operazione.
Cosa significa in questo caso? Ecco uno scenario reale.
L'utente deve eseguire una certa funzionalità in modalità background. Durante la sottomissione dell'attività il programma sostituisce l'utenza con una tecnica.
Il risultato è che viene utilizzata una utenza tecnica per svolgere una certa attività anziché l'utenza di chi ha realmente svolto l'operazione.
Nel caso in cui siano registrazioni contabili ad esempio?
Come puoi discriminare se si tratta di una azione effettuata realmente da utenze tecniche o da fatta da utenti reali tramite utenza tecnica? Durante un audit potrebbe essere un aspetto molto rilevante.
Uno specifico audit a livello di programmi ABAP sviluppati può fare emergere le casistiche sopra.