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
Admin dokumentace
Administrace
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
Záhlaví CSP
Logy
Crons
Nastavení přístupového tokenu a vypršení platnosti relace
Šablona
Role
Integrace
TAS Forms
Výpočty a funkce
Pokročilé funkce a tipy
Filtrování v dynamickém listu pomocí URL parametru (statické)
Vyhledání v dynamické tabulce podle hodnoty sloupce
Optimalizace volání api na dynamických podmínkách
Filtrování v dynamickém listu pomocí dynamických podmínek
Optimalizace přehledů s velkým počtem případů
Vytvoření dokumentu DOCX
Plánování
Uživatelé
Organizační struktura
Události
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 tisku pdf
Úprava Popis úkolu vs Instrukce k úkolu
Transpilace forEach na for loop
Vykreslení HTML na Caseoverview
Upgrade na 5.7
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
- Pokročilé funkce a tipy /
- 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