Vytváření dynamických dokumentů pomocí aplikace 4D Write Pro v aplikaci Qodly

Automaticky přeloženo z Deepl

V profesionálním prostředí, kde jsou správa a tvorba dokumentů klíčové, je nezbytné mít výkonné a flexibilní nástroje. Představte si, že můžete navrhovat dynamické šablony dokumentů přímo z klienta Desktop, integrovat vzorce a data z databáze a poté tyto dokumenty generovat jediným kliknutím prostřednictvím intuitivního webového rozhraní. Přesně to vám umožňují aplikace 4D Write Pro a 4D Qodly Pro!

V blogu tohoto týdne se budeme zabývat tím, jak se tato dvě řešení dokonale doplňují, abyste mohli automatizovat a optimalizovat procesy zpracování dokumentů. Dozvíte se, jak ve 4D Write Pro vytvářet vlastní šablony a jak díky 4D Qodly Pro mohou uživatelé webu zadávat potřebná data, spouštět generování dokumentů a dokonce si vybrat, zda je chtějí uložit do databáze nebo vrátit prostřednictvím vypočteného atributu.

Pro demonstraci tohoto postupu použijeme aplikaci Performance Review, která je k dispozici ke stažení. Připravte se na změnu způsobu vytváření a správy dokumentů a zároveň na zjednodušení pracovních postupů a zvýšení efektivity.

Aplikace Performance Review

Vytváření šablon v desktopovém klientovi

4D Write Pro je výkonný nástroj pro zpracování textu, jehož hlavní síla spočívá v možnosti vytvářet šablony dokumentů propojené s vaší databází. Tato funkce umožňuje automaticky vytvářet různé typy dokumentů: dopisy, smlouvy, faktury, katalogy, výkazy výdajů a mnoho dalšího.

V aplikaci Performance Review se používá několik šablon dokumentů v závislosti na příslušném oddělení. Např:

Šablona PO

 

Šablona QA

blank

Tyto šablony obsahují dynamické vzorce přímo navázané na databázi, což usnadňuje vytváření personalizovaných dokumentů pro jednotlivá oddělení.

Formulář v aplikaci Desktop umožňuje tyto šablony vytvářet zjednodušeným způsobem.Pro snadné přidání vzorců nabízí rozevírací seznam všechny vzorce relevantní pro danou šablonu.

blank

Tyto vzorce jsou definovány v souboru JSON s názvem „WPexpression.json“.

Zde je výňatek:

{
    "expression": [{
            "name": "Příjmení",
            "formula": "This.data.review.Employee.Lastname"
        }, {
            "name": "Jméno",
            "formula": "This.data.review.Employee.Firstname"
        }, {
            "name": "CollaboratorName",
            "formula": "jméno+\". \"+This.data.review.Employee.Lastname"
        }
    ]
}

Chcete-li se dozvědět více o softwaru 4D Write Pro a ORDA, přečtěte si tento blog: ORDA a 4D Write Pro: Vydejte se na cestu k novému produktu: Silná dvojice!

Pro zjednodušení vytváření tabulek je ideální Průvodce tabulkou integrovaný do komponenty rozhraní 4D Write Pro.

blank

Aby mohl bez problémů pracovat s naší databázovou strukturou, přidali jsme konfigurační soubory obsahující vzorce potřebné pro dokumenty Performance Review. Například

{
    "tableDataSource": "This.data.review.Skills.orderBy(\"Group asc\")",
    "columns": [{
            "check": true,
            "header": "SkillName",
            "source": "This.item.Name"
        }, {
            "check": false,
            "header": "CheckCodeI",
            "source": "Choose(This.item.ID_Score=1; \"X\"; \"\")".
        }, {
            "check": false,
            "header": "CheckCodeP",
            "source": "Choose(This.item.ID_Score=2; \"X\"; \"\")".
        },{
            "check": false,
            "header": "CheckCodeR",
            "source": "Choose(This.item.ID_Score=3; \"X\"; \"\")".
        },{
            "check": false,
            "header": "CheckCodeE",
            "source": "Choose(This.item.ID_Score=4; \"X\"; \"\")".
        },{
            "check": true,
            "header": "ScoreName",
            "source": "This.item.Score.Name"
        },{
            "check": true,
            "header": "ScoreCode",
            "source": "This.item.Score.Code"
        }
    ],
    "breaks": [{
            "label": "SkillGroup",
            "source": "This.item.Group"
        }
    ],
    "breakFormulas": [{
            "label": "Název skupiny",
            "source": "This.item.Group"
	}
    ],
    "extraFormulas": [{
            "label": "ScoreSkillName",
            "source": "This.data.review.ScoreSkill.Name"
        },{
            "label": "ScoreSkillCode",
            "source": "This.data.review.ScoreSkill.Code"
        },{
            "label": "CheckSkillScoreCodeI",
            "source": "Choose(This.data.review.ID_ScoreSkill=1; \"X\"; \"\")"
        }, {
            "label": "CheckSkillScoreCodeP",
            "source": "Choose(This.data.review.ID_ScoreSkill=2; \"X\"; \"\")".
        }, {
            "label": "CheckSkillScoreCodeR",
            "source": "Choose(This.data.review.ID_ScoreSkill=3; \"X\"; \"\")".
        }, {
            "label": "CheckSkillScoreCodeE",
            "source": "Choose(This.data.review.ID_ScoreSkill=4; \"X\"; \"\")".
        }
    ]
}

S těmito vzorci je vytvoření tabulky dovedností a skóre velmi jednoduché.Po přizpůsobení tabulky je zde výsledek:

blank

Další informace o konfiguraci a možnostech, které Průvodce tabulkou nabízí, naleznete v části:

Vyplňování dat ve webovém klientovi

Po vytvoření šablony zadávají uživatelé požadovaná data prostřednictvím intuitivního webového rozhraní. Díky aplikaci 4D Qodly Pro se tento krok hladce integruje s vaší databází a zajistí, že zadávané informace odpovídají polím definovaným v šablonách.

Další podrobnosti o nastavení těchto rozhraní naleznete v našich předchozích blozích na téma:

Generování konečného dokumentu

Finální dokument se generuje přímo z webového rozhraní. Když uživatel klikne na vyhrazené tlačítko, událost „On Click“ spustí funkci „selectedReview.generatePDF()“.

blank

 

Níže je uveden kód, který řídí generování dokumentu PDF:

Function generateDocument()->$doc: Object
var $context : Object
var $template : cs.TemplateEntity

// Create context
$context :=This.createContext()

// Load template
$template :=This.Employee.Departement.Template.Template

// Create 4D Write Pro document
$doc:=WP New($template)
WP SET DATA CONTEXT ($doc; $context)
WP COMPUTE FORMULAS ($doc)

return $doc

exposed Function generatePDF ()
var $WPdoc : Object
var $blob : 4D.Blob

// Generate WP document
$WPdoc:=This.generateDocument()

// Convert to PDF
WP EXPORT VARIABLE ($WPdoc; $blob; wk pdf)

// Save in database
This .DocumentPDF:=$blob
This .save()

Povolení

Ve webové aplikaci nemají uživatelé přístup k tabulce Template. Funkce „Review.generatePDF“ však potřebuje přístup k těmto datům, aby mohla vygenerovat dokument PDF. Abychom toho dosáhli, nastavíme na funkci „povýšení“.

  • Vytvoření oprávnění „generatePDF“ : Na stránce Role a oprávnění definujeme nové oprávnění s názvem generatePDF.

 

A dark-themed user interface section with two tabs: "Roles" and "Privileges," with "Privileges" currently selected in purple. Below, a "Privileges" section lists three privilege items:

    "guest" with an info icon.
    "createReview" with edit and delete icons.
    "generatePDF" with edit and delete icons, highlighted with a purple border.

A plus (+) button in the top right allows adding new privileges.

  • Udělení práv ke čtení: Udělíme oprávnění ke čtení datovým třídám Department a Template. Tato práva jsou nezbytná pro vyhledání šablony Write Pro potřebné k vygenerování dokumentu.
  • Povýšení funkce „Review.generatePDF“: Funkci Review.generatePDF přiřadíme možnost Promote. Díky tomuto povýšení získá funkce při volání na serveru automaticky oprávnění generatePDF a bude mít přístup k typicky omezeným datům.

 

A dark-themed user interface panel titled "Include a privilege." At the top, several privilege tags such as "createReview," "none," "authentify," "user," and "hr" are displayed. Below, there is a search bar labeled "Search available permissions" and a button to create a permission. Two buttons, "Reset" (red) and "Clear" (purple), are present.

A table lists different permissions with columns for Read, Create, Update, Delete, Execute, and Promote.

    "Department" has no checkboxes selected.
    "Review.generatePDF" has Read and Promote checked.
    "Template" has only Read checked.

On the right, a toggle switch labeled "Show inherited permissions" is set to off.

Tento mechanismus zajišťuje, že pouze autorizované procesy mohou dočasně rozšířit svá práva k provádění specifických úloh, přičemž je zachována vysoká bezpečnost a kontrola přístupu k datům.

Voilà!

blank

Další krok

Kombinací aplikací 4D Write Pro a 4D Qodly Pro můžete automatizovat generování dynamických dokumentů sloučením předdefinovaných šablon a dat v reálném čase. Tento přístup nabízí mnoho výhod:

  • Automatizace dokumentů: Snížení počtu manuálních úkonů díky dynamickým šablonám.
  • Optimalizace pracovních postupů: Jasné oddělení tvorby šablon (desktopový klient) od zadávání dat (webový klient).
  • Úspora času a vyšší kvalita: Praktické řešení, které zvyšuje produktivitu a kvalitu generovaných dokumentů.

 

Doporučujeme vám vyzkoušet tento přístup ve vašich projektech a objevit výhody integrace aplikace 4D Write Pro s aplikací 4D Qodly Pro. Neváhejte a podělte se v komentářích o své názory nebo se podívejte na naše další zdroje, abyste si dále rozšířili své znalosti.

Vanessa Talbot
• Product Owner • Vanessa Talbot se připojila k programovému týmu 4D v červnu 2014. Jako Product Owner má na starosti psaní uživatelských příběhů a jejich převod do funkčních specifikací. Její úlohou je také zajistit, aby implementovaná funkce odpovídala potřebám zákazníka. Od svého příchodu pracovala na definování klíčových prvků ve 4D. Pracovala na většině nových funkcí preemptivního multi-threadingu a také na velmi složitém tématu: nové architektuře pro enginované aplikace. Vanessa má titul z Telecom Saint-Etienne. Svou kariéru začala ve Výzkumném ústavu kriminalistickém jako vývojářka pro audiovizuální oddělení. Působila také v mediální a lékařské oblasti jako expertka na technickou podporu, produkci i dokumentaci novinek.