Uživatelský manuál
Stručný průvodce
Dashboard
Přehledy
Detail případu (Caseoverview)
Případ - Událost
Úkoly
Poznámky případu
Dokumenty
Nastavení uživatele
Oblíbené
Komponenta tabulky
FAQ
Admin dokumentace
Platforma
Administrace
Crony
Autentizace a synchronizace
Nastavení mobilní aplikace pro vaše prostředí
Schéma
Dynamické tabulky
Archivace
Skripty
Servisní konzole
Naplánované úkoly
HR Agenda
Sekvence
CSP hlavičky - zásady zabezpečení obsahu
Logy
Nastavení přístupového tokenu a vypršení platnosti relace
Šablona
Role
Plánování
Uživatelé
Organizační struktura
Události
Překlady
AXIOS API
Výpočty a funkce
Integrace
TAS Forms
Pokročilé funkce a tipy
Partneři
Produkt
Business Changelog
Technický changelog
Průvodce upgradem z předchozích verzí
Upgrade na 5.9
Upgrade na 5.3
Migrace dynamických podmínek
Úprava a kontrola tisku pdf
Úprava Popis úkolu vs Instrukce k úkolu
Transpilace forEach na for loop
Vykreslení HTML na Caseoverview
Upgrade na 5.7
Lodash upgrade v4.17.x (>v5.5)
Hlavní změny a zaniklé funkce (v5.3 > v5.7)
Použití validačních funkcí
Rozdíly mezi TAS4 a TAS5 - kompletní přehled
Best Practices upgrade z TAS 4 na TAS 5
Technické požadavky a architektura
Aktuality / Důležité informace
- Vše /
- Produkt
- Průvodce upgradem z předchozích verzí
- Upgrade na 5.7 /
- Hlavní změny a zaniklé funkce (v5.3 > v5.7)
Hlavní změny a zaniklé funkce (v5.3 > v5.7)
Hlavní změny
Úprava v chování skrytých sloupců u DŘ
V rámci DŘ došlo k úpravě, že defaultně se hodnota skrytých sloupců při kopírování přenáší. Původní chování bylo, že se hodnota nepřenáší.
Nastavení se případně upravuje v definici sloupce u DŘ pomocí parametru "copy".
Používání LoggedUserStore na dynamických podmínkách
V případě použití LoggedUserStore a očekávání userNickName ve vráceném objektu, došlo ke změně parametru.Aktuálně od v5.7 místo parametru userNickName použijte userName
const LoggedUserStore = Require.stores.LoggedUserStore;
let {
roles,
// userNickName,
userName
} = LoggedUserStore.state;
Zaniklé funkce
Vzhledem k vývoji nových technologiíí se stane, že některé funkce již nejsou podporovány nebo jsou nahrazeny lepšími a bezpečnějšími funkcemi. Z těchto důvodů dojde občas k nutnosti některé funkce nahradit a nelze dodržet 100% zpětnou komaptibilitu. Zde jsou popsány funkce, které je potřeba nahradit při přechodu z verze 5.3 na verzi 5.7. Pro dohledání těchto funkcí na prostředí můžete využít některou z validačních funkcí.
lib.dmsPdfFileToText
Tato funkce již nelze použít, byla nahrazena funkcí lib.pdfToText
Funkce aktuálně vrací všechen vytěžený obsah z pdf. Konzultant má pak plnou kontrolu nad daty a muže použít, co potřebuje (např. metadata o dokumentu).
Zde je ukázkový příklad jak lze funkci použít pro zpracování pdf uložené v proměnné contractCleanCopy:
const extractTextFromPdfJson = (pdfToJsonContent) => {
const texts = [];
proc.warn("data", {
pdfToJsonContent
})
if (!pdfToJsonContent || !Array.isArray(pdfToJsonContent.Pages)) {
return texts;
}
for (let pageIndex = 0; pageIndex < pdfToJsonContent.Pages.length; pageIndex++) {
const page = pdfToJsonContent.Pages[pageIndex];
if (!page || !Array.isArray(page.Texts)) {
continue;
}
for (let textIndex = 0; textIndex < page.Texts.length; textIndex++) {
const textObj = page.Texts[textIndex];
if (!textObj || !Array.isArray(textObj.R)) {
continue;
}
for (let r = 0; r < textObj.R.length; r++) {
const textRun = textObj.R[r];
if (textRun && typeof textRun.T === 'string') {
try {
texts.push(decodeURIComponent(textRun.T));
} catch (e) {
proc.warn("Failed to decode text:", textRun.T, e);
}
}
}
}
}
return texts;
}
const pdfToText = lib.pdfToText(vars['contractCleanCopy'].getValue()[0])
const texts = extractTextFromPdfJson(pdfToText);
const fullText = texts.join('');Případně lze využít následující skript na zpracování obsahu získaného pomocí funkce lib.pdfToText
const transformPdfToJsonResponse = (input) => {
const pages = [];
input.Pages.forEach((page, i) => {
const words = [];
page.Texts?.forEach((text) => {
text.R?.forEach((row) => {
if (row.T) {
words.push(decodeURIComponent(row.T));
}
});
});
if (words.length) {
pages.push(`--- Page ${i + 1} ---\n${words.join("")}`);
}
});
return pages.join("\n\n");
}
Updated
by Frantisek Brych