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 /
- Admin dokumentace
- Výpočty a funkce
- Dynamické podmínky (formuláře)
- Ostatní dynamické podmínky /
- Optimalizace volání api na dynamických podmínkách
Optimalizace volání api na dynamických podmínkách
Využitím cachedValue je možné docílit toho, že služby, které se ve formuláři používají vícekrát je možné zavolat pouze jednou.
cachedValue ve chvíli, kdy se služba má znovu odeslat – například při změně hodnoty proměnné používané ve filtru.let cachedRow = null;
const fetchData = () => {
if (cachedRow) {
return cachedRow;
}
cachedRow = new Promise((resolve, reject) => {
return Api.request.get(`/dyn-table/TAS-configCO/values`).then(data => {
resolve(data);
}).catch(error => {
console.error('There was a problem with the fetch operation:', error);
reject(error);
});
});
return cachedRow;
}
let cachedTableDepartments = null
const fetchDepartmentsTable = (table) => {
if (cachedTableDepartments) {
return cachedTableDepartments;
}
cachedTableDepartments = new Promise((resolve, reject) => {
return Api.request.get(`/dyn-table/${table}/values?total_count=false`).then(data => {
resolve(data);
}).catch(error => {
console.error('There was a problem with the fetch operation:', error);
reject(error);
});
});
return cachedTableDepartments;
}
Použití v podmínce:
let isCompanyRelationshipHidden = false;
let department = null;
hideVarOn('companyRelationship', () => {
if (vSync('contractDepartment') && department === vSync('contractDepartment')) return isCompanyRelationshipHidden;
department = vSync('contractDepartment')
return fetchData().then(payload => {
let {
items
} = payload;
items = items.filter(item => {
return item.dtv_index === id;
})
const dtDepartments = items[0]?.col_7;
const canRepresent = items[0]?.col_10
if (canRepresent !== 'True' || !vSync('contractDepartment')) {
isCompanyRelationshipHidden = true
return true;
}
const department = references.contractDepartment.getValue();
return fetchDepartmentsTable(dtDepartments).then(payload => {
const {
items
} = payload;
const canRepresent = items.find(item => item.dtv_index === department)?.col_2;
isCompanyRelationshipHidden = canRepresent !== 'True';
return canRepresent !== 'True'
})
})
})
Updated
by Frantisek Brych