Revize dokladů (archivace verzí dokladů) - obecně

U některých dokladů, které se vytvářejí postupně a v čase se mohou měnit (typicky nabídky, objednávky) se v praxi může objevit požadavek na uchovávání revizí dat. Tj. archivaci stavu dokladu k nějakému okamžiku. Cílem je nejen sledovat, jaké kdo kdy provedl změny (tento požadavek řeší Sledování změn), ale mít k dispozici i původní znění daných dokumentů, moci si je vytisknout přesně tak, jak v daný okamžik vypadaly apod.

Objasníme na příkladu:

Uživatel si vytvořil nabídku vydanou, ale odběratel požaduje nějaké změny. Uživatel si však přeje mít nabídku zaarchivovánu ve stavu, v jakém ji klientovi původně poslal. Pomocí dostupných funkcí tedy vytvoří její novou revizi k danému datu. Nabídku pak příslušně upraví a odešlě znovu klientovi, příp. si ji znovu zaarchivuje vytvořením další revize. Takto postupuje až do finálního schválení nabídky - přitom mám kdykoliv k dispozici informace, v jakých stavech klientovi nabídku posílal, jednotlivá znění si může tisknout nebo porovnávat.

Pomocí parametru Povolit revize dat ve Firemních nastaveních lze ve vybraných agendách zapnout podporu revizí. Je-li podpora revizí zapnuta, pak v agendách vybraných dokladů je k dispozici záložka Revize, kde jsou revize k dispozici, odkud je lze tisknout, prohlížet rozdíly mezi nimi, a dále je k dispozici funkce pro vytváření revizí.

Typy dokladů, které schvalování podporují, viz popis záložka Revize.

Možnosti vytvoření nové revize:
  • pomocí funkce Nová revize v záložkách Seznam, Detail nebo v záložce Revize v dané agendě
  • použitím tiskové funkce CreateRevision pro vytváření revizí v rámci tisku dokladu - pak se při použití tiskové sestavy obsahující takovou funkci při vytváření náhledu zobrazí dotaz na vytvoření revize a v případě kladné odpovědi se nová revize vytvoří
  • příp. prostřednictvím jiné funkce, v závislosti na dané agendě

Tisk vybrané revize, prohlížení a tisk rozdílů mezi revizemi:

  • pomocí funkce Tisk v záložce Revize v dané agendě

Změna popisu vybrané revize

  • pomocí funkce Změnit popis v záložce Revize v dané agendě

Smazání vybrané revize

  • pomocí funkce Vymazat v záložce Revize v dané agendě

Data revizí se ukládají do stejných tabulek, jako aktuální data Business objektů. Každý revizní záznam má své vlastní ID, jedná se v podstatě o data samostatného business objektu. Každý objekt se záznamem revize má odkaz na ID záznamu s aktuálními daty business objektu (aktuální znění dokladu).

U business objektů, které podporují revize dat, jsou upraveny SQL dotazy používané business objekty tak, aby se v těchto akcích zohlednilo, že v databázové tabulce nejsou pouze aktuální data business objektů, ale i revizní data. Typickým případem takové úpravy jsou třídní akce vracející seznam business objektů. To zajišťuje automaticky generované omezení (IncludeRevisions) přidávané za běhu do dynamických zdrojů, které jsou postaveny nad tabulkami obsahujícími i revizní data. Je použito vždy, ale pro uživatele není viditelné a zajišťuje, že do výsledných dat nebudou zahrnuta data revizí či naopak budou (např. pro případ tisku revizních dat).