1 SAP ABAP DATABASE CLUSTER http://desvino.altervista.org

annuncio pubblicitario
SAP ABAP DATABASE CLUSTER
http://desvino.altervista.org
DATABASE CLUSTER
In un programma ABAP è possibile assemblare data objects di qualsiasi complessità in data clusters che
possono poi essere memorizzati nella memoria della sessione interna o sul db in maniera persistente.
I DB Clusters sono degli speciali DataBase relazionali presenti nell’ABAP Dictionary utilizzabili per
memorizzare clusters di dati.
SAP mette a disposizione il system cluster database INDX. Creiamo la tabella ZINDX_SIMUL in copia dalla
tabella INDX.
La struttura ereditata dalla INDX presenta i seguenti campi:
MANDT, di tipo CHAR, viene utilizzato per il client number.
RELID, di tipo CHAR, viene utilizzato per contenere l’identificati dell’area.
SRTFD, di lunghezza variabile contiene la chiave (key) del cluster, specificata solitamente nei programmi
dall’addiction ID (nelle istruzione export, import, etc.).
SRTF2, di tipo INT4, specifica le line in tabella, fino a 2^31.
Dopo SRTF2 possono essere specificati campi personalizzati.
CLUSTR, di tipo INT2, contiene la lunghezza dei dati in CLUSTD.
CLUSTD contiene i dati in forma compressa, divisi su più record se necessario. Il numero di record è
specificato in SRTF2.
Struttura ereditata dalla INDX
1
SAP ABAP DATABASE CLUSTER
http://desvino.altervista.org
Contenuto della tabella dopo l’esportazione da programma dei dati contenuti in ZPOWGO_SIMUL
Contenuto della tabella ZPOWGO_SIMUL
Il report seguente utilizza le istruzione EXPORT e IMPORT per esportare dati ed importare dati da un
database cluster.
REPORT
ZPOWGO_REP_ESTRAZIONE.
TABLES: ZINDX_SIMUL, ZPOWGO_SIMUL.
DATA: GT_Simulazioni_Exp TYPE TABLE OF ZPOWGO_SIMUL,
GT_Simulazioni_Imp TYPE TABLE OF ZPOWGO_SIMUL,
wa_Simulazioni LIKE LINE OF GT_Simulazioni_Imp,
lo_exc TYPE REF TO CX_SY_IMPORT_MISMATCH_ERROR,
eccezione TYPE STRING.
START-OF-SELECTION.
* CLUSTER DATABASE *
*Esportazione sul cluster DB
ZINDX_SIMUL-AEDAT = SY-DATUM.
ZINDX_SIMUL-USERA = SY-UNAME.
ZINDX_SIMUL-PGMID = SY-REPID.
ZINDX_SIMUL-BEGDT = SY-DATUM.
SELECT * FROM ZPOWGO_SIMUL INTO TABLE GT_Simulazioni_Exp.
EXPORT GT_Simulazioni_Exp TO DATABASE ZINDX_SIMUL(VI) ID 'Simul'.
*Importazione dal cluster DB *
TRY.
FREE GT_Simulazioni_Imp.
IMPORT GT_Simulazioni_Exp TO GT_Simulazioni_Imp FROM DATABASE ZINDX_SIMUL(
VI) ID 'Simul'.
CATCH CX_SY_IMPORT_MISMATCH_ERROR INTO lo_exc.
eccezione = lo_exc->GET_TEXT( ).
2
SAP ABAP DATABASE CLUSTER
http://desvino.altervista.org
WRITE:/'Eccezione Cluster ', eccezione.
ENDTRY.
LOOP AT GT_Simulazioni_Imp INTO wa_Simulazioni.
WRITE:/ WA_SIMULAZIONI-IDSIMUL, ' ', WA_SIMULAZIONIIDSTATO, ' ', WA_SIMULAZIONI-TXTSIMUL.
ENDLOOP.
La eccezione di tipo CX_SY_IMPORT_MISMATCH_ERROR viene sollevata quando la tabella in cui si cerca
di importare dal cluster ha una struttura diversa da quella precedentemente esportata sul cluster.
Risultato finale
3
Scarica