Metódy zálohy/obnovy a zodpovedajúce nastavenie logovania zmien inicializačných dát

V rámci zavedenia inkrementálneho update (od v. 10.02 vrát.) sa zásadným spôsobom zmenil aj spôsob zálohovania a obnovy dát (zálohuje sa všetko a databáza sa obnoví presne tak, ako bola). Od v. 10.02 vrát. platí, že sa pri update nevytvára nová databáza, ale update prebieha inkrementálne nad "živou" databázou klienta (postupným premietnutím potrebných zmien, ktoré do novej verzie uskutočnil výrobca).

Predtým existovalo niekoľko metód zálohovania (na každej tabuľke bolo uvedené, ktorá z týchto metód sa pre ňu má používať), ktoré zaisťovali, čo sa má v jednotlivých tabuľkách zazálohovať a čo obnoviť s ohľadom na záznamy dodávané výrobcom a záznamy zadané či zmenené užívateľom. Tieto "backup/update" metódy od v. 10.02. vrát. bezpredmetné.

Pre tabuľky, do ktorých výrobca dodáva nejaké inicializačné dáta, je zabezpečené, aby sa v rámci update užívateľovi premietli zmeny v týchto inicializačných dátach uskutočnené výrobcom do novej verzie (pridanie nových záznamov, úpravy existujúcich príp. zmazanie neplatných). Ktoré z týchto zmien (operácií) v jednotlivých tabuľkách výrobca loguje do tzv. UpdateListu, na základe ktorého potom prebieha dátový update u užívateľa, závisí od charakteru danej tabuľky. Typicky je to takto:

  • Tabuľky, ktoré obsahujú výhradne výrobcom dodávané záznamy - logujú sa operácie Vloženie, Zmena, Vymazanie inicializačných dát. Tzn. po update budú tieto tabuľky naplnené záznamami presne tak, ako ich aktuálne dodáva výrobca.

    Rôzne pomocné tabuľky typu "Master..." (napr. MasterAccounts (Vzory účtových osnov), MasterPaymentTypes (Tabuľka vzorov spôsobov úhrady a ich kódov), a ďalšie ako tabuľka WageConstantIntervals (Hodnoty globálnych premenných), RetirementReportDefs (Definície ELDP) a pod.

  • Tabuľky, ktoré sú dodávané predvyplnené výrobcom, pričom ide o systémové definície s príznakom System, ktoré užívateľ nemôže opravovať či mazať, môže ale ľubovoľne pridávať a meniť vlastné - logujú sa operácie Vloženie, Zmena, Vymazanie.

    Tzn. po update sa prihrajú nové výrobcom dodávané záznamy, pôvodné výrobcom dodávané sa zaktualizujú (zmenia, príp. vymažú).

    WatchDogPoints (Kontrolné body (pre automatické správy)), WageTaxTable (Daňové tabuľky pre výpočet dane zo mzdy), JobGroups (Skupiny prác), (CalcCharts) (CalcExpressions) (CalcFields) (hlavičky výp. schém a v nich obsiahnuté systémové časti definícií) a. i.

  • Tabuľky, ktoré sú dodávané predvyplnené výrobcom, pričom ide o systémové definície (hoci bez príznaku System), ktoré užívateľ nemôže opravovať či mazať, môže ale ľubovoľne pridávať a meniť vlastné - logujú sa operácie Vloženie, Zmena inicializačných dát. V prípade bežných zmien (napr. oprava názvu) sa typicky neloguje zmena príznaku Hidden (Skrytý), ak ide o tabuľku s týmto príznakom. Operácia Vymazať sa typicky neloguje, pri zrušení (vymazaní) existujúceho záznamu sa naopak typicky loguje zmena a to zmena príznaku Hidden (Skrytý). Tzn. že staré skôr dodané inicializačné záznamy, ktoré boli teraz zrušené, v dátach užívateľa po update zostávajú, ale sú skryté. To je žiaduce, keďže mohli byť použité (mohlo byť na nich odkazované z iných tabuliek).Tzn. po update sa prihrajú nové výrobcom dodávané záznamy, pôvodné výrobcom dodávané sa zaktualizujú (zmenia, príp. skryjú).

    RetirementReportCodes (Kódy PP pre Sociálnu poisťovňu), PDMPriceLists (Tabuľka cenníkov pošty), NACE (Kódy NACE)

  • Tabuľky, ktoré sú dodávané predvyplnené výrobcom, pričom ide o systémové definície, ktoré užívateľ môže ľubovoľne opravovať, ale nemôže ich zmazať - logujú sa operácie Vloženie inicializačných dát. Operácie Zmena a Vymazanie sa typicky nelogujú, takže ak si užívateľ upravil dodávaný záznam a súčasne ho upravil aj výrobca, zostanú po update užívateľské zmeny zachované, zmena uskutočnená výrobcom sa neprejaví.

    Tzn. po update sa prihrajú nové výrobcom dodávané záznamy, existujúce záznamy od výrobcu sa ale neaktualizujú, zostávajú tak, ako ich mal užívateľ (inými slovami užívateľské zmeny v pôvodných výrobcom dodávaných zostanú zachované). Takže ak je ich aktualizácia potrebná, musí si ich užívateľ upraviť ručne.

    PDMPostProviders (Tabuľka poskytovateľov poštových služieb), PDMIssuedContentTypes (Tabuľka obsahov odoslanej pošty)

  • Tabuľky, ktoré sú dodávané predvyplnené výrobcom, pričom nejde o systémové definície, tzn. užívateľ ich môže ľubovoľne opravovať či mazať - logujú sa operácie Vloženie inicializačných dát. Operácie Zmena a Vymazanie sa typicky nelogujú, čiže pokiaľ si užívateľ upravil dodávaný záznam a súčasne ho upravil i výrobca, zostanú po update užívateľskej zmeny zachované, zmena vykonaná výrobcom sa neprejaví.Tzn. po update sa prihrajú nové výrobcom dodávané záznamy, existujúce záznamy od výrobcu sa ale neaktualizujú, zostávajú tak, ako ich mal užívateľ (teda užívateľské zmeny v pôvodných výrobcom dodávaných zostanú zachované). Takže ak je ich aktualizácia potrebná, musí si ich užívateľ upraviť ručne.

    WageNoticesTypes (Typy úloh a školení), HIPaysGovernmentType (Druhy poistencov štátu), InsuranceCompanies (Zdravotné poisťovne) a veľké množstvo iných.

  • Tabuľky, ktoré nie sú dodávané predvyplnené výrobcom, alebo sa nepredpokladajú zmeny v dodávaných dátach - nelogujú sa žiadne operácie inicializačných dát.

    CalcUserExpressions, CalcUserFields (užívateľské časti definícií výpočtových schém miezd), WageNotices (Úlohy a školenia) a mnoho iných, ktoré nemá zmysel plniť dodávanými dátami a ďalej tabuľky ako Firms (firmy), Persons (osoby), kde sa dodáva jeden pomocný záznam (Bez príslušnosti k firme/Bez mena), ktorý sa typicky v čase nemení.

  • Pomocné tabuľky plnené iba interne systémom - nelogujú sa žiadne operácie inicializačných dát (nemá to význam, tabuľka sa plní interne systémom, výrobca žiadne init dáta nedodáva)

    Rôzne pomocné tabuľky typu "SYS$.." (napr. SYS$POS (Pomocná tabuľka POSu), SYS$AccRequests (s ID všetkých existujúcich účtovných žiadostí, plnená pomocou triggerov tabuľky GeneralLedger), a. i.).

Vyššie uvedené nie je striktné, tzn., že výrobca sa môže od vyššie uvedeného odchýliť a zalogovať zmenu, ktorá sa typicky pre danú tabuľku neloguje, ak ide o takú zmenu, u ktorej by bolo žiaduce, aby sa do dát užívateľa premietla, napr. aj za cenu toho, že by "prebila" zmeny daného záznamu vykonané predtým užívateľom.

Do v. 10.01 vrát. platilo, že pri aktualizácii inštalácie (update) i pri obnove dát zo zálohy sa najskôr vytvorila nová databáza a založili sa jej tabuľky, následne sa do nich nahrali defaultne dodávané inicializačné dáta a nakoniec prebehla obnova dát zo zálohy. Každá tabuľka mala preto dané, aká metóda zálohovania a obnovy sa má použiť, aby po takomto vytvorení novej databázy v tabuľke boli aktuálne výrobcom dodávané dáta a zároveň správne dáta, ktoré si zadal či zmenil užívateľ).

Napr.u niektorých tabuliek bolo žiaduce, aby v nich po obnove dát boli dáta inicializačné plus dáta zo zálohy (ttBackupAppend), naopak v prípade iných, aby po obnove zo zálohy boli v tabuľkách iba dáta presne tak, ako boli v zálohe (ttBackupReplace) bez ohľadu na aktuálne dáta inicializačné alebo kombinácia obidvoch, tzn. aby po obnove boli v tabuľkách dáta inicializačné, ale pokiaľ sa v zálohe vyskytoval zhodný záznam, patrične sa podľa zálohy zaktualizoval, tzn. užívateľ mal po obnove dáta tak, ako si ich nadefinoval plus prípadné nové záznamy z dát inicializačných (ttBackupUpdate).

Jednotlivé metódy zálohy/obnovy dát boli nasledujúce:

  • 1-ttBackupAppend - Záloha: Zálohovalo sa všetko. Obnova: Tabuľka sa pred obnovením nemazala. Tzn. k existujúcej tabuľke a jej obsahu sa urobil append (pridanie) zo zálohy. Príklad: WageNotices (Úlohy a školenia) a veľké množstvo iných.
  • 2-ttBackupReplace - Záloha: Zálohovalo sa všetko. Obnova: Tabuľka sa pred obnovením mazala. Tzn. pred obnovou zo zálohy sa vymazal pôvodný obsah tabuľky a nahral sa celý zo zálohy. Príklad: CalcUserExpressions, CalcUserFields (užívateľské časti definícií výpočtových schém miezd) a mnoho iných, ako Firms ( firmy), Persons (osoby) atď.
  • 3-ttBackupNoSystemOnly - Záloha: Zálohovali sa len nesystémové záznamy, tzn. záznamy bez príznaku System. Obnova: K existujúcej tabuľke a jej obsahu sa urobil append (pridanie) zo zálohy (išlo ale len o nesystémové záznamy, pretože len tie boli v danej zálohe). Príklad: JobGroups (Skupiny prác), (CalcCharts) (CalcExpressions) (CalcFields) (hlavičky výp. schém a v nich obsiahnuté systémové časti definícií) a. i. (Typicky ide o tie tabuľky, ktoré sa dodávajú predvyplnené výrobcom, pričom ide o systémové definície, ktoré užívateľ nemôže meniť. Môže meniť a pridávať iba nesystémové. Pri obnove dát resp. update sa nahrajú aktuálne výrobcom dodávané systémové (tzn. prihrajú sa nové systémové záznamy, pôvodné výrobcom dodávané a výrobcom zmenené sa zaktualizujú), pričom užívateľské zostanú presne tak, ako ich užívateľ mal.)
  • 4-ttNoBackup - Záloha: Nezálohovala sa. Obnova: Nezálohovala sa, pretože bola plnená z inicializačných dát údajmi od výrobcu. Príklad: Rôzne pomocné tabuľky typu "SYS$..." (napr. SYS$POS (Pomocná tabuľka POSu), SYS$AccRequests (s ID všetkých existujúcich účtovných žiadostí, plnená pomocou triggerov tabuľky GeneralLedger), a. i.), rôzne tabuľky typu "Master..." (napr. MasterPaymentTypes (Tabuľka vzorov spôsobov úhrady a ich kódov), a ďalšie ako tabuľka WageConstantIntervals (Hodnoty globálnych premenných), RetirementReportDefs (Definície ELDP) a pod.
  • 5-ttBackupUpdate - Záloha: Zálohovalo sa všetko. Obnova: Pri obnove sa aktualizovali zmenené a doplnené záznamy. Tzn. pri obnove sa zisťovalo, či záznam s daným ID už v tabuľke nie je. Pokiaľ bol, uskutočnil sa update všetkých položiek záznamu zo zálohy. Pokiaľ nebol, tak sa záznam pridal ako nový zo zálohy. Príklad: WageNoticeTypes (Typy úloh a školení), HIPaysGovernmentType (Druhy poistencov štátu), InsuranceCompanies (Zdravotné poisťovne), PDMPostProviders (Tabuľka poskytovateľov poštových služieb) a množstvo iných. (Typicky ide o tie tabuľky, ktoré sa dodávajú predvyplnené výrobcom, pričom nejde o žiadne systémové definície, ale dodávané predvyplnené záznamy, aby si užívateľ nemusel plniť celú tabuľku (typicky číselník) ručne od nuly).
  • 6-ttBackupReplaceSpecial - Slúžila na zvláštnu zálohu a obnovu pre výpočtové vzorce v mzdách. Obnova pracovala tak, že pri obnove sa zisťovalo, či systémový záznam s daným FieldCode už existuje a ak áno, porovnal sa ich ObjVersion. Ak bol ObjVersion iný, urobil sa o tom zápis do servisnej knižky + zobral sa novší variant záznamu. Ďalej sa zistilo, či k pôvodnému záznamu nebola pripojená nejaká užívateľská definícia. Ak áno, vytvoril sa duplikát tejto užívateľskej definície a ten sa pripojil k novému záznamu.
  • 7-ttNoReplaceSystemID - Záloha: Zálohovalo sa všetko. Obnova: Záznamy dodané výrobcom sa nahrali z inicializačných dát. Pri obnove sa zistilo, či bol takýto záznam užívateľsky skrytý. Pokiaľ áno, skryl sa aj v obnovených dátach. Z obnovených dát sa ale neaktualizoval. Užívateľské záznamy sa pridali (append) zo zálohy. Tzn. užívateľské zmeny výrobcom skôr dodaného záznamu boli prepísané zmenami dodanými v aktuálnych inicializačných dátach. Príklad: RetirementReportCodes (Kódy PP pre Sociálnu poisťovňu), PDMPriceLists (Tabuľka cenníkov pošty), WikiPageStyles (Tabuľka štýlov Wiki stránok)