E' stata creata la reusable part EDRP0001 per storicizzare le transazioni delle tabelle (file TBSTTR).
I metodi sono due:
- um_ScriviStoricoAlfa per memorizzare le variazioni dei campi alfanumerici
- um_ScriviStoricoNum per memorizzare le variazioni dei campi numerici
- um_TabellaEliminata per segnalare l'eliminazione della tabella
I valori da passare sono:
- Nome del file
- Campi chiave (Possono essere gestiti fino a 3 campi chiave)
- Nome campo
- Vecchio valore numerico / alfanumerico
- Nuovo valore numerico / alfanumerico
=============================================================
La RP in oggetto deve essere inserita nei gestori delle tabelle come l'esempio sotto
* Istanza dell'oggetto per lo storico
DEFINE_COM CLASS(£EDRP0001) NAME(£vi_Storico)
* Definizione oggetto record per memorizzare il record prima dell'update
DEFINE_COM CLASS(£OGGETTORECORD) NAME(£Old_Item) REFERENCE(*DYNAMIC)
NELLA MTHROUTINE um_UpdateItem inserire prima dell'update alla tabella:
* Lettura dei vecchi valori
SET_REF COM(£Old_Item) TO(*create_as £tbed068r)
£COM_OWNER.um_GetItem P_CODICE1(£p_Item.up_prststam) P_CODICE2(£p_Item.up_prstknum) P_ITEM(£Old_Item)
dopo l'update inserire la storicizzazione effettiva:
* Storicizzo
£VI_STORICO.um_ScriviStoricoAlfa P_NOMEFILE(PRPAST) P_CHIAVE(£p_Item.up_prststam) P_NOMECAMPO(PRSTDESC) P_VECCHIOVALORE(£OLD_Item.up_PRSTDESC) P_NUOVOVALORE(£p_Item.up_PRSTDESC)
£VI_STORICO.um_scrivistoriconum P_NOMEFILE(PRPAST) P_CHIAVE(£p_Item.up_prststam) P_NOMECAMPO(PRSTCPST) P_VECCHIOVALORE(£OLD_Item.up_PRSTCPST) P_NUOVOVALORE(£p_Item.up_PRSTCPST)
Nel caso in cui la tabella venga anche eliminata:
£VI_STORICO.Um_TabellaEliminata P_NOMEFILE(PRPAST) P_CHIAVE(£PRSTSTAM) P_CHIAVE2(£PRSTKNUM)
Quando viene aggiunta la storicizzazione ad una tabella di tipo SAXT00F, TBFLTB o FILT00F
è necessario modificare la pop TBED163P inserendo nel relativo SWITCH CASE la concatenazione
delle chiavi e l'assegnazione della relativa descrizione.