Podepisování vzorů

Využití vzorů v Signi je elegantní řešení pro situace, kdy v integrovaném systému máte informace ve strukturované podobě, ale je pro vás obtížné vygenerovat výsledný dokument.

V Signi se vytvoří vzor / šablona / template dokumentu a při volání API pak předáte jen hodnoty parametrů vzoru, Signi je doplní na příšlušná místa vzoru a vytvoří finální dokument. Kromě zobrazení hodnot lze také parametry řídit ukazování a schovávání částí obsahu ve vzoru.

Jak vypadá volání Signi API při použití vzorů

Jaké typu parametrů lze ve vzorech použít?

Při návrhu vzoru lze počítat s tímto typem parametrů, přes které lze ovládat výsledný obsah vzoru:

  1. Text Area - con-textarea - text k zobrazení

  2. Číslo - con-number - číslo

  3. Datum - con-date - datum

  4. Výběr varianty - con-options - výčet hodnot, z nichž jedna může být zvolena. Pokud je zvolena konkrétní varianta, může se ve výsledném dokumentu zobrazit jakýkoliv text, třeba několik paragrafů smlouvy. Pokud je zvolena jiná varianta, nemusí se ve výsledném dokumentu zobrazit nic nebo jiné paragrafy.

  5. Obsahový blok - con-part - Text, který lze hodnoutou parametru schovat anebo zobrazit.

Jak při použití vzorů přes API skrývat a zobrazovat části obsahu?

Jsou dvě možnosti:

  • konkrétní část obsahu buď skrýt nebo zobrazit,

  • nebo použít výčet hodnot, kdy při volbě každé hodnoty lze zvolit, jaký obsah se má ukázat.

Pro první případ slouží ve vzoru položka con-part . Zobrazení nebo skrytí celé sekce lze řídit tak, že mezi parametry předávanými přes API přidáme i ID parametru odpovídající sekci con-part, kdy hodnota je buď hide, či show.

Obdoba skrytí či zobrazení části obsahu vzoru přes uživatelské rozhraní Signi

Příklad vzoru a volání viz Příklad 3 - Předání podkladů pro vzor > C - Zobrazování a schovávání částí obsahu vzoru.

Pozor! Identifikátory sekcí con-part se NEukazují v seznamu parametrů vzoru - viz Jak při použití vzorů zjistit, které parametry vzor má? Jedna z možností, jak je zjistit, je stáhnout si celý kód vzoru pomocí Jak si zobrazím celý kód vzoru vzoru? a tam si příslušné identifikátory sekcí con-part najít.

Pro druhý případ slouží ve vzoru položky con-options a con-option . Výběr konkrétní volby lze přes API řídit názvem příslušné volby předaném v položce con-options.

Obdoba výběru z hodnot parametru vzoru v uživatelském rozhraní

Příklad vzoru a volání viz Příklad 3 - Předání podkladů pro vzor > B - Předávání hodnoty z výčtu hodnot .

Jak při použití vzorů zjistit, které parametry vzor má?

End point https://api.signi.com/api/v1/contract/templates vám vrátí všechny vzory přístupné pro workspace s API klíčem použitým pří volání, ve vráceném seznamu vzorů jsou ve formě JSON uvedeny parametry volání jednotlivých vzorů - viz např. níže.

 

{ "templates": [ { "id": 396, "contract_name": "Pohybový doklad ", "parameters": [ { "id": "111", "name": "Typ dokladu", "type": "con-options", "values": [ "Příjemka", "Výdejka", "Objednávka vydaná", "Objednávka přijatá", "Rezervace vydaná", "Rezervace přijatá", "Příjemka", "Vratné obaly" ] } ... ] } ] }

Jak předávat informaci o umístění podpisů při použití vzorů?

Při použití vzorů dokumentů spravovaných přímo v Signi není třeba umístění podpisů řešit. Umístění i velikost podpisů je daná vzorem.

Jeden podpis lze umístit ve vzoru vícekrát, v kódu vzoru se pouze uvede vícekrát pole pro dané pořadí podpisu. Podepisující se ale fyzicky musí podepisovat pouze jednou.

Více o zajištění návaznosti mezi volání API a kódu vzoru viz níže.

Jak sladit vzory a volání API, aby se podpisy ukazovaly na správných místech ? 

Pole pro podpisy ve vzorech je třeba mít přizpůsobené scénáři podepisování předávaném přes API. Pokud záleží na pořadí podepisujících, musí být vzory přizpůsobené i tomu. Dva základní scénáře jsou následující.

 

Pokud je scénář podepisování s podepisujícím navrhovatelem,

 "people": [
        {
            "is_proposer": true,
            "party_order": 1,
            "email": "me@example.com",
            "contract_role": "sign"
        },
        {
            "is_proposer": false,
            "party_order": 2,
            "email": "unregistered+1@example.com",
            "contract_role": "sign",

odpovídající pole pro podpisu ve vzoru jsou:

            <tr>
                <td>
                    <p>
                        <con-sign con-id="16" party-type="proposer"></con-sign>
                    </p>
                </td>
                <td>
                    <p>
                        <con-sign con-id="17" party-type="counterparty" party-order="2"></con-sign>
                    </p>
                </td>
            </tr>

 

 

Pokud je scénář podepisování bez podepisujícího navrhovatele,

 "people": [
        {
            "is_proposer": true,
              "party_order": 1,
            "email": "zakladatelworkspace@firmanavrhovatele.cz",
            "contract_role": "approve"
        },
        {
            "is_proposer": false,
              "party_order": 2,
            "email": "me@example.com",
            "contract_role": "sign"
        },
        {
            "is_proposer": false,
            "party_order": 3,
            "email": "unregistered+1@example.com",
            "contract_role": "sign",

odpovídající pole pro podpisu ve vzoru jsou:

<tr>
                <td>
                    <p>
                          <con-sign con-id="16" party-type="counterparty" party-order="2"></con-sign>
                    </p>
                </td>
                <td>
                    <p>
                        <con-sign con-id="17" party-type="counterparty" party-order="3"></con-sign>
                    </p>
                </td>
            </tr>

 Pokud záleží na pořadí podepisujících, je součástí volání endpointů v API i přepínač signing_order": "one_at_a_time", což odpovídá zaškrtnutí “Záleží na pořadí” v uživatelském rozhraní Signi. Při předávání podpisů přes API u jednotlivých osob / person odpovídá parametr “party_order” 1,2 3… pořadí podepisování a těmto číslům pak musí odpovídat příslušná umístění podpisů ve vzorech.

"settings": { "signing_order": "one_at_a_time" },

Jak si zobrazím celý kód vzoru vzoru?