I trasporti

Transcript

I trasporti
www.drakesoft.it
I trasporti come mezzo di scambio di oggetti SAP
Operare con i trasporti portando un oggetto SAP da un sistema ad un altro, è cosa comune ed assai
semplice se i sistemi sono interconnessi con una strategia di trasporto, ma come si deve operare se il
sistema su cui è stato creato l’oggetto non è connesso al sistema dei trasporti ?
Questo caso si verifica ad esempio qualora un consulente od una softwarehouse creano
programmi/configurazioni sui loro sistemi, ovviamente non connessi a quelli del cliente, e debbano
successivamente trasferirli a quest’ultimo; ma può anche essere il caso di uno sviluppatore che
vuole condividere un programma con una comunità o semplicemente passarlo ad un amico.
Di norma per un programma si utilizza il sistema si export, ma questo male si adatta alla
programmazione ad oggetti o a programmi che hanno parecchi include, ed è inesistente per le
configurazioni, obbligando il povero sviluppatore a creare una ricca documentazione che spieghi
come integrare il programma.
In questo manuale descriveremo come prendere uno o più trasporti creati su un sistema, copiarli su
un supporto rimovibile (penna usb, dischetto, disco fisso ecc.), inserirli nel nuovo sistema.
ATTENZIONE
Ovviamente valgono tutte le limitazioni logiche di un simile sistema, e dunque è necessario che
nel trasporto (o nei trasporti) siano presenti tutte le informazioni utili a rendere quanto si
vuole inviare funzionante sul sistema di destinazione.
Un esempio : se invio la riconfigurazione del tipo ordine ZOS e sul sistema ricevente non è presente
il tipo ordine ZOS l’import non andrà a buon fine, dovrò quindi preveder anche tutti i trasporti
necessari per creare il tipo ordine ZOS.
Un altro elemento importate è la corretta sequenza in cui i trasporti debbano avvenire.
Sempre utilizzando l’esempio precedente se creo due trasporti, uno per creare il tipo ordine ZOS ed
uno per cambiarne la configurazione, non posso importare per primo il secondo trasporto in quanto
si creerebbe una incongruenza.
Per fare le operazioni che descriveremo è necessario avere le corrette autorizzazioni per
operare sul sistema SAP da cui prelevare ed importare i trasporti, queste autorizzazioni sono
di norma in possesso all’amministratore del sistema SAP e non sono in uso a semplici utenti,
spesso neppure agli sviluppatori, per cui vi conviene farvi amico l’amministratore del sistema.
Fatte le debite considerazioni iniziali, possiamo procedere alle istruzioni pratiche.
Come primo punto analizziamo l’ABC dei trasporti.
Un trasporto viene creato ogni volta che si modifica o si crea un oggetto di SAP, sia esso un
programma, una function, modulo, una tabella ecc.
Tutti sappiamo che esistono (di base) due tipologie di trasporto, una per gli oggetti di
programmazione (workbench) ed una per gli oggetti di configurazione (customizig). In un trasporto
creato all’interno di queste due macrocategorie possiamo stipare più oggetti insieme.
Possiamo poi controllare quanto abbiamo stipato con la transazione SE10 (oppure SE09), dove
troveremo due rami principali: i trasporti da rilasciare (modificabile) e quelli rilasciati (rilasciato).
Autore : Enzo Grasseni
Pagina 1 di 7
www.drakesoft.it
Possiamo esplodere l’albero del trasporto fino ad arrivare ai singoli oggetti contenuti nel trasporto.
Quando un trasporto è rilasciato risulta non più modificabile e questo perché ormai è stato
‘preparato’ per essere importato in un nuovo sistema.
L’import avviene attraverso la transazione STMS che si avvale della catena dei trasporti per un
semplice e controllata gestione delle modifiche.
Compresa la logica dei trasporti vediamo come sia possibile prendere il pacchetto del trasporto
rilasciato su un sistema ed innestarlo sul nuovo.
Posizionatevi con exchange (oppure con esplora risorse) sul server SAP ed in particolare sulla
cartella trans:
Esempio :
\\<vostro_server_SAP>\trans
si avrà una albero simile a questo :
Le due cartelle cofiles e data contengono i trasporti, una le testate e la seconda il dettaglio dei
trasporti.
Apriamo cofile e proviamo a curiosare al suo interno
Come potete vedere all’interno troviamo tutta una serie che se osservati bene ricordano i numeri dei
trasporti, verifichiamo con la transazione STMS
Autore : Enzo Grasseni
Pagina 2 di 7
www.drakesoft.it
Come avrete potuto osservare il codice del trasporto è composto da un prefisso di tre caratteri, che
identificano il SID del sistema su cu si lavora (nell’esempio SVI), segue il numero progressivo del
trasporto : Knnnnnn.
I file che abbiamo analizzato in precedenza sono chiamati proprio : Knnnnnn.<SID>.
Se ora diamo uno sguardo alla cartella data, troviamo la medesima situazione, l’unica differenza è
che il prefisso ora è R anziché K.
Il nostro obiettivo è quindi quello di prendere nelle cartelle cofile e data i files dei trasporti che ci
interessano e copiarli su un altro supporto per il trasporto.
Per non confonderli vi consiglio di creare sul supporto le due cartelle cofile e data e copiare i files
nelle rispettive cartelle.
Vediamo ora come importare nel sistema di destinazione il trasporto appena copiato.
In modo analogo a quanto abbiamo prelevato dovremo salvare i file nelle rispettive cartelle del
sistema di destinazione.
Quindi ci si sposta sul sistema di sviluppo (mi raccomando siate saggi e non importate mai
direttamente in produzione o di test.) e si attiva la transazione STMS.
Aprite la coda dei trasporti di sviluppo e da menù scegliete: Opzioni / Altre richieste / Accodare
Aiutandovi con il match code selezionate la richiesta che avete appena copiato, in questo modo
verificherete anche d’aver fatto le cose corrette.
Autore : Enzo Grasseni
Pagina 3 di 7
www.drakesoft.it
La nuova richiesta comparirà nella lista dei trasporti e con il classico simbolo del furgoncino potrà
essere importata nel sistema.
Come evitare il proliferare delle classi di sviluppo.
Se importo un programma ABAP proveniente da un altro sistema, al momento di modificarlo il
sistema potrebbe impedirmi l’azione in quanto non riconosce la classe di sviluppo con cui è stato
creato.
A proposito la classe di sviluppo nella versione Ecc 5.0 viene chiamata pacchetto, mi ricorda
vagamente Java.
Questo perché ogni azienda preferisce definirsi classi di sviluppo proprie ed ovviamente è assurdo
creare una classe di sviluppo per ogni programma che ho ottenuto da terze parti con questa
metodologia.
Diventa prioritario quindi trovare un sistema per cambiare la classe di sviluppo, con quella
utilizzata da noi.
Ma cosa è la classe di sviluppo ?
Direttamente dall’help on line leggiamo :
“Gli oggetti correlati dell'ABAP Workbench vengono raggruppati in una classe di sviluppo.
L'attribuzione di un oggetto a una classe di sviluppo viene annotata nel catalogo oggetti (TADIR).
La classe di sviluppo determina le caratteristiche di trasporto dell'oggetto tramite lo strato di
trasporto.
La descrizione delle classi di sviluppo è annotata nella tabella TDEVC.
Le classi di sviluppo possono essere elaborate tramite le seguenti transazioni:
• transazione SE80 - inserire classe di sviluppo - fare doppio clic sulla classe di sviluppo
• transazione SM30 - tabella/view V_TDEVC
Le classi di sviluppo sono anch'esse oggetti dell'ABAP Workbench. Tali classi hanno sempre se
stesse come classe di sviluppo.”
Segue un elenco dei possibili nomi da mettere alle classi di sviluppo.
Dunque la classe di sviluppo non è altro che un classificatore dei programmi, nel caso si volesse
creare una classe di sviluppo è sufficiente avvalersi della transazione SM30, valorizzare il campo
con la vista V_TDEVC.
Premere il tasto Aggiornare
Autore : Enzo Grasseni
Pagina 4 di 7
www.drakesoft.it
Con F8 vedremo le classi di sviluppo a disposizione e vogliamo aggiungerne una è sufficiente
utilizzare il tasto Creare Classe di sviluppo.
Creare una classe di sviluppo può essere comodo se l’import dei trasporti è limitato o comunque
referenziato ad una softwarehouse od un partner.
Meno consigliato nel caso in cui l’import è estemporaneo e non ho la necessità di mantenere traccia
della classe di sviluppo originaria.
Per questo si dovrà rassegnare la classe di sviluppo.
Con la transazione SE38 richiamare il programma in modalità visualizzare.
Quindi dal menù selezionare: Passaggio a/inser. Catalogo ogg.
Quindi utilizzare la matita per passare n modalità modifica e cambiare la classe di sviluppo con
quella più idonea.
Autore : Enzo Grasseni
Pagina 5 di 7
www.drakesoft.it
Potrebbe accadere che il sistema si rifiuti di cambiare la classe di sviluppo in quanto non riconosce
il programma come sviluppato dal sistema in cui è in modifica (nell’esempio il sistema originale è
SVI).
Per mantenere queste informazioni e quindi adattarlo al sistema in cui si opera è sufficiente
utilizzare la transazione SM30 con la tabella TADIR, in aggiornamento.
Selezionare il flag relativo ai programmi, gruppi funzione o quant’altro si è importato, il nome del
programma e confermare con F8.
Selezionate l’oggetto e quindi il pulsante con la matita (Catalogo ogg.)
Autore : Enzo Grasseni
Pagina 6 di 7
www.drakesoft.it
vi si aprirà la vista per importare tutte le modifiche del caso.
Autore : Enzo Grasseni
Pagina 7 di 7