Sei sulla pagina 1di 3

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 nellABAP 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 lidentificati dellarea.
SRTFD, di lunghezza variabile contiene la chiave (key) del cluster, specificata solitamente nei programmi
dalladdiction 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

SAP ABAP DATABASE CLUSTER

http://desvino.altervista.org

Contenuto della tabella dopo lesportazione 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( ).

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

Potrebbero piacerti anche