External Lookup¶
External Lookup umožňuje vyhledávání a výběr dat z externích zdrojů — SharePoint seznamů, webových služeb nebo staticky definovaných dat.
Základní konfigurace¶
Minimální konfigurace se statickým zdrojem dat:
{
"DataSourceType": "STATIC",
"DataSourceObject": [
{ "ID": 1, "Title": "CZK" },
{ "ID": 2, "Title": "EUR" }
],
"IndexValue": { "Expression": "{ID}" },
"TextValue": { "Expression": "{Title}" },
"RenderMode": "DropDown",
"EmitEmptyItem": true
}
Vlastnosti¶
- DataSourceType
"DataSourceType": "SP"— Typ zdroje dat:SP(SharePoint seznam),WS(webová služba),STATIC(statická data). [Povinné] - DataSourceConfiguration
"DataSourceConfiguration": {...}— Konfigurace zdroje dat. Vyžadováno pro typySPaWS. [Nepovinné] - DataSourceObject
"DataSourceObject": [...]— Pole objektů se statickými daty. Vyžadováno pro typSTATIC. [Nepovinné] - IndexValue
"IndexValue": { "Expression": "{ID}" }— Výraz pro unikátní identifikátor vybraného záznamu. [Povinné] - TextValue
"TextValue": { "Expression": "{Title}" }— Výraz pro zobrazovanou hodnotu. [Povinné] - RenderMode
"RenderMode": "DropDown"— Režim zobrazení:DropDown,AutoComplete,DataTable. [Povinné] - CopyElements
"CopyElements": [...]— Automatické zkopírování vybraných hodnot do jiných polí formuláře. [Nepovinné] - Resources
"Resources": [...]— Lokalizační zdroje. [Nepovinné]
Zdroje dat¶
SharePoint (SP)¶
Načítá data ze SharePoint seznamu.
- SourceList
"SourceList": "{SiteUrl}/DepartmentCodebook"— URL cílového seznamu. Podporuje token{SiteUrl}. [Povinné] - Cache
"Cache": "24:0:0"— Doba cachování výsledků ve formátuhodiny:minuty:sekundy. [Nepovinné] - SearchElements
"SearchElements": ["Title"]— Interní názvy polí, ve kterých se vyhledává. Povinné pro režimyAutoCompleteaDataTable(proDropDownnení potřeba).
Webová služba (WS)¶
Načítá data z REST API.
- Url
"Url": "https://api.example.com/search"— URL požadavku. Pro GET metodu může obsahovat token{searchText}. [Povinné] - RequestType
"RequestType": "REST"— Typ požadavku. [Povinné] - MethodName
"MethodName": "GET"— HTTP metoda:GET,POST,PUT,PATCH,DELETE. [Povinné] - ResultSetItems
"ResultSetItems": "data.items"— Cesta k poli výsledků v odpovědi. [Nepovinné] - ResultSetType
"ResultSetType": "JSON"— Formát odpovědi. [Povinné] - ResultSet
"ResultSet": [...]— Mapování vlastností z odpovědi na tokeny výrazů. [Povinné] - Cache
"Cache": "24:0:0"— Doba cachování výsledků. [Nepovinné]
Každý objekt v ResultSet:
- Name — Název tokenu pro použití ve výrazech.
- Path — Cesta k hodnotě v JSON odpovědi (tečková notace).
Statická data (STATIC)¶
Data definovaná přímo v konfiguraci.
- DataSourceObject — Pole JSON objektů s libovolnými vlastnostmi.
Režimy zobrazení¶
DropDown¶
Zobrazí rozbalovací seznam.
- EmitEmptyItem
"EmitEmptyItem": true— Přidá prázdnou položku pro zrušení výběru. [Nepovinné] - DisplayValue
"DisplayValue": { "Expression": "{Title} ({ID})" }— Vlastní formát zobrazení v rozbalovacím seznamu. Pokud není zadáno, použije seTextValue. [Nepovinné]
AutoComplete¶
Rozbalovací seznam s vyhledáváním (autocomplete).
Podporuje stejné vlastnosti jako DropDown. Pro zdroj dat typu SP vyžaduje definici SearchElements.
DataTable¶
Zobrazí výsledky v tabulce s možností výběru řádku.
- DataTableElements
"DataTableElements": [...]— Definice sloupců tabulky. [Povinné]
Každý objekt v DataTableElements:
- ColumnTitle — Záhlaví sloupce. Podporuje lokalizaci přes Resources.
- Expression — Výraz pro hodnotu buňky.
CopyElements¶
Automaticky zkopíruje hodnoty z vybraného záznamu do jiných polí formuláře nebo sloupců Advanced Table:
{
"CopyElements": [
{
"TargetElement": "s_supplierName",
"Expression": "{Nazev}"
},
{
"TargetElement": "s_supplierId",
"Expression": "{ICO}"
}
]
}
- TargetElement — Interní název cílového pole formuláře nebo název sloupce v Advanced Table.
- Expression — Výraz s tokeny odkazujícími na vlastnosti vybraného záznamu.
Vlastní funkce pro WS¶
Pro zdroj typu WS s metodou POST lze definovat JavaScript funkci, která sestaví tělo požadavku. Funkce musí být pojmenována ExternalLookupCustomFunction_[FieldInternalName] a definována v Custom Script formuláře:
function ExternalLookupCustomFunction_s_supplierLookup(searchText) {
if (searchText.match(/\d+/)) return { ico: [searchText] };
return { obchodniJmeno: searchText };
}
Příklady¶
Příklad: SharePoint seznam s autocomplete¶
{
"DataSourceType": "SP",
"DataSourceConfiguration": {
"SourceList": "{SiteUrl}/DepartmentCodebook"
},
"IndexValue": { "Expression": "{ID}" },
"TextValue": { "Expression": "{Title}" },
"DisplayValue": { "Expression": "{Title} ({ID})" },
"SearchElements": ["Title"],
"RenderMode": "AutoComplete",
"EmitEmptyItem": true
}
Příklad: REST API s tabulkou a kopírováním¶
{
"DataSourceType": "WS",
"DataSourceConfiguration": {
"Url": "https://ares.gov.cz/ekonomicke-subjekty-v-be/rest/ekonomicke-subjekty/vyhledat",
"Cache": "24:0:0",
"RequestType": "REST",
"MethodName": "POST",
"ResultSetItems": "ekonomickeSubjekty",
"ResultSetType": "JSON",
"ResultSet": [
{ "Name": "Nazev", "Path": "obchodniJmeno" },
{ "Name": "ICO", "Path": "ico" },
{ "Name": "Ulice", "Path": "sidlo.nazevUlice" },
{ "Name": "Obec", "Path": "sidlo.nazevObce" }
]
},
"IndexValue": { "Expression": "{ID}" },
"TextValue": { "Expression": "{Nazev}" },
"DataTableElements": [
{ "ColumnTitle": "Název", "Expression": "{Nazev}" },
{ "ColumnTitle": "IČO", "Expression": "{ICO}" },
{ "ColumnTitle": "Ulice", "Expression": "{Ulice}" },
{ "ColumnTitle": "Obec", "Expression": "{Obec}" }
],
"CopyElements": [
{ "TargetElement": "s_supplierName", "Expression": "{Nazev}" },
{ "TargetElement": "s_supplierId", "Expression": "{ICO}" }
],
"RenderMode": "DataTable"
}