Blog
Personalizzazione (Customization) di un sistema SAP: rischi ed opportunità
- 16/04/2022
- Scritto da: Grazia Livia Masulli
- Categoria: Introduzione a SAP ERP
Cos’è una personalizzazione (Customization) di un sistema SAP? È importante iniziare con una buona definizione.
Una personalizzazione è qualsiasi cambiamento nel modo in cui SAP opera che va oltre le opzioni definite nel pannello di controllo SAP (la transazione SPRO).
Ad esempio costruire un nuovo tipo di rapporto ABAP è una personalizzazione. Scrivere un programma che inserisce dati in una tabella SAP è una personalizzazione.
A volte questo termine in SAP viene usato anche per la fase in cui SAP viene adattato ad una impresa modificando i valori della IMG con la transazione SPRO. Se non siete familiari con questi termini, la IMG è la IMplementation Guide (la guida di implementazione del sistema). Con la transazione SPRO si può lavorare alla IMG per adattare SAP alle necessità di una azienda specifica – questo è una delle attività tipiche di un consulente funzionale.
In questo caso il cliente sta scegliendo come il sistema deve lavorare partendo da una serie di valori predefiniti (o riempiendo dei campi con valori personalizzati, ma comunque senza modificare la logica del software). Sebbene questa attività venga spesso definita “customization” è più esatto chiamarla Configurazione del sistema (“Configuration”). Infatti la maggior parte dei cambi che verranno fatti nella IMG non si perderanno se ad esempio aggiorniamo il sistema – cosa che invece non è così scontata con una personalizzazione.
I programmi personalizzati in SAP hanno per convenzione un nome che inizia per Z (a volte anche per Y).
Quali sono i diversi tipi di personalizzazioni possibili? Vediamoli assieme.
1. Creazione di rapporti (reports) in sola lettura.
Questo tipo di programmi, se costruiti in modo tale da essere indipendenti dagli altri processi, pone il minor rischio e ha il minor impatto sul sistema. Non creano si record e non si hanno impatti sulle capacità di altri processi di creare o gestire dati. In pratica vogliamo solo che SAP ci faccia vedere dei dati in un certo modo e la versione standard del programma non ha questa funzionalità nel pacchetto standard.
Questo tipo di personalizzazioni sono estremamente frequenti: permettono infatti di automatizzare processi che magari ora vengono fatti con Excel o con qualche altro programma.
Un caso frequente è quello in cui vogliamo estrarre dati da varie tabelle e combinarli. A volte l’alternativa è lavorare in Excel. Altre volte non esiste una vera alternativa, in quanto Excel ha una dimensione massima di circa un milione di file – che sembra un numero enorme, ma se siete un’impresa di dimensioni medio grandi potrebbero non essere sufficienti.
In generale questo tipo di personalizzazioni sono economiche, sicure e possono migliorare il modo in cui vengono svolti determinati processi.
2. Creazione di programmi che creano record e li scrivono in delle tabelle personalizzate.
Questi tipi di personalizzazioni sono più complesse dei programmi pensati solo per leggere dati. La loro capacità di generare nuovi record richiede un po’ più di progettazione e di pianificazione prima di iniziare a scrivere il codice ABAP.
Rispetto all’esempio precedente questi programmi personalizzati sono più complessi poiché il modello di dati deve essere attentamente progettato per assicurare che i record siano generati e scritti nel modo voluto nelle loro tabelle personalizzate.
Tuttavia, queste personalizzazioni sono meno rischiose di programmi che modificano tabelle standard di SAP perché, in generale, non ci dovrebbe essere il rischio di “dipendenza a valle” (o sia in teoria i dati che vengono scritti in queste tabelle personalizzate non dovrebbero essere usati da altri processi). Nello scenario peggiore – quello in cui i dati sono incompleti od erronei – dovrebbe essere possibile modificarli senza compromettere altri processi standard del sistema.
3. Utilizzo delle User Exits.
Le User Exits (letteralmente, “uscite per l’utente”) sono dei punti predefiniti nel codice standard di SAP dove i clienti possono modificare i processi standard per adattarli alle loro esigenze. Gli elementi del codice con una User Exit sono predefiniti da SAP. È possibile aggiungere del codice ABAP personalizzato a degli input o a degli output di alcuni processi.
Si tratta di uno strumento molto potente e versatile. Tuttavia un sistema SAP che è stato personalizzato usando molte User Exist può diventare molto complesso da mantenere ed aggiornare. Inoltre potrebbero andare in conflitto tra di loro.
4. Programmi personalizzati che modificano i dati di tabelle standard di SAP.
Si tratta di una delle personalizzazioni più rischiose: cercare di modificare la logica con la quale lavora SAP deve essere fatto con grande attenzione e solo se si è sicuro di conoscere con grande precisione come funziona il software. Modificare i dati di tabelle standard può generare una valanga di effetti a catena in altri processi o altre tabelle dei quali si potrebbe ignorare l’esistenza (o si potrebbe ignorare il fatto che sono collegati alla tabella standard modificata).
5.Miglioramenti.
I miglioramenti sono il tipo di personalizzazione più complesso. In generale, dovrebbero essere evitati il più possibile, in quanto comportano significativi problemi di stabilità del sistema. Inoltre i miglioramenti limitano la possibilità di aggiornare il sistema (o lo rendono molto più complesso).
Quando è opportuno modificare il sistema?
Le personalizzazioni di SAP hanno un costo che può arrivare ad essere di varie decine o addirittura centinaia di migliaia di euro. Un aspetto che spesso non viene considerato è quello del supporto nel tempo: aggiornamenti nel sistema, installazione di nuovi componenti, aggiunta di ulteriori personalizzazioni sono tutti fattori che possono rendere instabile SAP e generare errori.
Per questo è necessario non solo considerare questi costi, ma anche il modo migliore di affrontarli: usando il supporto di SAP, quello di specialisti interni o sub contrattando tutto a una impresa esterna?
È opportuno quindi chiedersi quando sia una buona idea implementare una personalizzazione. In generale lo è in uno di questi scenari:
- Il cambio ci da un vantaggio competitivo rispetto alla concorrenza. Ad esempio potrebbe permetterci di sviluppare un nuovo prodotto, entrare in un nuovo mercato o in generale aumentare il fatturato.
- Il cambio automatizza una transazione. Ad esempio se prima esportavamo i dati in Excel per manipolarli mentre è possibile effettuare le stesse operazioni in forma automatica in SAP con una nuova transazione personalizzata potrebbe essere una buona idea implementare.
- Il cambio ci permette di soddisfare delle obbligazioni legali o connesse al pagamento di tasse e imposte. Anche in questo caso può essere opportuno modificare SAP, soprattutto se lavoriamo in un settore di nicchia o in un paese per il quale SAP non ha una soluzione ufficiale disponibile.