Sdílené soubory
Sdílené soubory jsou centrální úložiště souborů, které se používají napříč celým TASem – loga, manuály, obecné dokumenty, obrázky do tiskových sestav nebo podklady pro AI asistenta. Sekce Administrace → Sdílené soubory je dostupná od verze 5.17 a nahrazuje dřívější ukládání assetů na frontend server.
/assets/logos/logo.png po upgradu přestanou fungovat – viz sekce Přechod na verzi 5.17.K čemu sdílené soubory slouží
Do sdílených souborů patří obsah, který je společný pro celé prostředí a není vázaný na konkrétní případ – tedy soubory, které chcete spravovat na jednom místě a používat opakovaně ve více šablonách.
Soubory jsou rozdělené do záložek podle účelu. Každá záložka odpovídá jedné složce na backendu:
Záložka | Složka (root) | Typický obsah |
AI obsah |
| Podklady pro AI asistenta – textové soubory |
Documents |
| Obecné dokumenty – obchodní podmínky, GDPR přílohy, šablony |
Logos |
| Loga používaná v systému, včetně log organizačních jednotek (podsložka |
Manuals |
| Dokumenty zobrazované uživatelům v sekci manuálů. |
Images |
| Obrázky pro tiskové sestavy, Case Overview a další výstupy aplikace. |
Fyzicky se soubory ukládají do /app/tas/storage/assets/<root>/ uvnitř backendového kontejneru. Loga schémat se při migraci ukládají do rootu visual-identity.
Nahrání a správa souborů
- Otevřete Administrace → Sdílené soubory.
- Vyberte záložku podle typu obsahu (například Documents pro obchodní podmínky).
- Nahrajte soubor, případně ho vložte do podsložky, pokud chcete obsah dále členit.
- Zkopírujte si přesný název souboru – používá se jako identifikátor ve výpočtech i v tiscích.
obchodni-podminky.pdf). Název vstupuje do cest a URL, diakritika a mezery komplikují sestavení odkazu.Práce se sdílenými soubory ve výpočtech (backend)
Ve výpočtu se sdílený soubor načte z absolutní cesty pomocí lib.getFileContents() a uloží se do DMS případu pomocí lib.storeAttachment().
Následující ukázka přiloží obchodní podmínky ze záložky Documents jako přílohu k aktuálnímu případu:
// Sdílený soubor: Administrace → Sdílené soubory → Documents
const SHARED_ROOT = '/app/tas/storage/assets/documents';
const SOURCE_FILE = `${SHARED_ROOT}/obchodni-podminky.pdf`;
const TARGET_NAME = 'Obchodní podmínky.pdf';
try {
const content = lib.getFileContents(SOURCE_FILE, 'base64');
const dmsId = lib.storeAttachment(TARGET_NAME, content, false);
proc.info('Shared file attached to case', { caseId: lib.iprocId(), dmsId });
} catch (err) {
proc.error('Failed to attach shared file', { file: SOURCE_FILE, err: err.message });
debug.error('Nepodařilo se přiložit dokument k případu.');
}
Co je v ukázce podstatné:
lib.getFileContents(pathToFile, encoding)– vrací obsah souboru z absolutní cesty. Výchozí kódování jebase64.lib.storeAttachment(fileName, content, convertToBase64)– uloží soubor do DMS případu a vrací jeho DMS ID. Třetí parametr jefalse, protože obsah je už v base64 – přitrueby došlo k dvojímu zakódování a soubor by nešel otevřít.- Název přílohy (
TARGET_NAME) je nezávislý na názvu zdrojového souboru – uživatel v případu uvidí čitelný název včetně diakritiky. - Cesta k rootu je v konstantě, ne roztroušená v kódu – při změně umístění se upravuje na jednom místě.
proc.infoaproc.errorslouží pro logování,debug.errorzobrazí chybu uživateli a zablokuje dokončení úkolu. Pokud má proces pokračovat i bez přílohy,debug.errorvynechte.
lib.getFileContents() čte soubor pouze ze složek povolených v konfiguraci backendu. Pokud výpočet skončí chybou přístupu k souboru, ověřte s DevOps, že je daná složka v konfiguraci povolena.async, await ani Promise/.then(). TAS kód transpiluje sám a asynchronní zápis vede k tichému selhání výpočtu. Všechna volání se píší synchronně, jako v ukázce výše.Práce se sdílenými soubory na frontendu
React tisky a Case Overview – funkce getAsset()
V React tiscích a v Case Overview se odkaz na sdílený soubor sestavuje funkcí getAsset(). Přímý odkaz na cestu /assets/... od verze 5.17 nefunguje.
getAsset(root: 'manuals' | 'logos' | 'org' | 'schema', path: string)
Příklad použití:
// Before – v5.7
<PrintFooter logoURL="/assets/logos/logo_element_horizontal.png" />
// After – v5.17
<PrintFooter logoURL={getAsset('logos', 'logo_element_horizontal.png')} />
// Before – v5.7
<img alt="someImg" src="/assets/logos/logo_element_horizontal.png" />
// After – v5.17
<img alt="someImg" src={getAsset('logos', 'logo_element_horizontal.png')} />
Pokud je název souboru uložený v proměnné (typicky logo dohledané z dynamické tabulky), vloží se do getAsset() jako druhý parametr:
// Before – v5.7
<img id="top-logo" src={getVar('_logo')} alt="Logo" />
// After – v5.17
<img id="top-logo" src={getAsset('logos', getVar('_logo'))} alt="Logo" />
https://yourplatform.com/assets/logos/image.png), je nutné buď aktualizovat všechny hodnoty proměnných, nebo zajistit, aby do getAsset() vstupoval pouze název souboru a případně podsložka.Staré HTML tisky – přímá URL služby
Ve starých HTML tiscích není funkce getAsset() dostupná. Odkaz se zadává přímo na službu pro stažení assetu:
// Soubor uložený přímo v rootu logos
<img alt="someImg" src="https://<backendUrl>/api/assets/download?root=logos&path=workflow.png" />
// Soubor zanořený v podsložce
<img alt="someImg" src="https://<backendUrl>/api/assets/download?root=logos&path=folder/workflow.png" />
Typické use case
Use case | Kde soubor uložit | Jak se k němu dostat |
Obchodní podmínky přikládané k případu nebo k odchozímu e-mailu | Documents |
|
Šablona | Documents |
|
Logo organizace v hlavičce nebo patičce tiskové sestavy | Logos |
|
Logo dohledané podle organizační jednotky nebo firmy z dynamické tabulky | Logos (podsložka |
|
Obrázky, ikony a razítka v tiscích a na detailu případu | Images |
|
Uživatelské manuály a návody dostupné z aplikace | Manuals | Zobrazí se uživatelům v sekci manuálů, případně |
Podklady pro AI asistenta – interní směrnice, limity, schvalovací postupy | AI obsah | Soubory |
Na co si dát pozor
- Sdílené soubory nejsou dokumenty případu. Data vázaná na konkrétní případ patří do DMS případu, ne do sdílených souborů.
- Změna se projeví okamžitě všude. Nahrazením souboru stejného názvu se změna promítne do všech tisků a šablon, které ho používají – u log a hlaviček to je žádoucí, u dokumentů s právní platností nahrávejte novou verzi pod novým názvem.
- Citlivé hodnoty do sdílených souborů nepatří. API klíče, hesla, tokeny a certifikáty patří do Administrace → Trezor a načítají se přes
vault.get(). - Kontrolujte velikost a formát. Loga a obrázky v tiscích udržujte v rozumném rozlišení – velké soubory zpomalují generování PDF.
Updated
by Frantisek Brych