Filtrovávní dat z programu POHODA pro XML export
XML komunikace programu POHODA podporuje možnost filtrování dat při exportu do XML.
To vám umožní rozhodnout se, zda chcete exportovat všechny záznamy z dané agendy, nebo pouze vybrané.
Základní XML požadavek na export dat z agendy programu POHODA vyexportuje všechny záznamy z dané agendy do XML.
Možnosti filtrování v XML
XML komunikace podporuje následující základní typy filtrování::
- předdefinované filtry pro danou agendu
- uživatelské filtry
- obecný filtr pomocí SQL definice podmínky WHERE
Definice filtrů v XML
Všechny filtry pro výběr dat z programu POHODA jsou definovány ve schématu Filter.xsd
Toto schéma obsahuje definice všech předdefinovaných filtrů pro jednotlivé agendy, jako např. Adresář, Faktury, Zásoby atd.
Pro použití filtrování v XML požadavku je nutné využít příslušné elementy:
- filter
- userFilterName
- queryFilter
Předdefinované filtry pro danou agendu
Předdefinované filtry jsou definovány pomocí bloku filter.
Každá agenda má vlastní sadu předdefinovaných filtrů.
element filter
xsd:element name="filter" type="ftr:filterDocsType"
xsd:annotation
xsd:documentationSeznam polí, podle kterých se budou filtrovat./xsd:documentation
/xsd:annotation
/xsd:element
Základní možnosti filtrování:
- ID záznamu
- nové a změněné záznamy
Filtrování nových nebo změněných záznamů se provede pomocí elementu lastChanges.
element lastChanges
xsd:element name="lastChanges" type="xsd:dateTime"
xsd:annotation
xsd:documentationVyexportuje záznamy změněné od zadaného data./xsd:documentation
/xsd:annotation
/xsd:element
Ukázka použití filtru pro výběr nových nebo změněných záznamů
ftr:filter
ftr:lastChanges2025-04-01T08:00:00/ftr:lastChanges
/ftr:filter
Uživatelský filtr
V každé agendě lze v uživatelském rozhraní POHODA vytvořit a uložit vlastní dotaz pro výběr dat.
Každý dotaz má unikátní název a lze jej použít v XML požadavku.
V rámci XML komunikace je pak možné tento dotaz zavolat a použít pro výběr dat pro export.
element userFilterName
xsd:element name="userFilterName" type="xsd:string"
xsd:annotation
xsd:documentationIdentifikátor uživatelského filtru v požadované agendě, který má být použit pro filtraci záznamů./xsd:documentation
/xsd:annotation
/xsd:element
Ukázka použití uživatelského filtru
ftr:userFilterNameneuhrazeneDoklady/ftr:userFilterName
Obecný filtr pomocí SQL podmínky
Je možné použít obecný SQL filtr pomocí podmínky WHERE.
Dotaz je automaticky ošetřen proti SQL injection.
element queryFilter
xsd:element name="queryFilter" type="ftr:queryFilterType"
xsd:annotation
xsd:documentationSQL filtr pro výběr záznamů. Stejná definice jako je v dialogu 'Vlastnosti dotazu' dostupný v kontextovém menu agendy (Výběr->Upravit dotaz...)/xsd:documentation
/xsd:annotation
/xsd:element
Ukázka použití obecného filtru pomocí SQL dotazu podmínky WHERE
ftr:filter
ftr:queryFilter
ftr:filter(FA.Cislo Like '250100007')/ftr:filter
/ftr:queryFilter
/ftr:filter
Kombinace filtrů v XML požadavku
Filtry lze kombinovat pro vytvoření složitějších podmínek výběru.
Vztah AND
Pokud jsou ve vstupním XML požadavku použity elementy filter userFilterName a queryFilter současně, jsou mezi nimi vztahy typu AND.
Ukázka:
<ftr:filter>
<ftr:dateFrom1>2025-01-10</ftr:dateFrom1>
<ftr:dateTill>2025-02-10</ftr:dateTill>
<ftr:company>AK - Media a. s.</ftr:company>
</ftr:filter>
<ftr:queryFilter>
<ftr:filter>(FA.KcLikv = 0)</ftr:filter>
</ftr:queryFilter>
Vztah OR
Pro vztah typu OR je nutné použít samostatné bloky lst:request v XML požadavku.
Každý požadavek může obsahovat 1 až n bloků lst:request.
Ukázka:
<lst:requestInvoice>
<ftr:filter>
<ftr:dateFrom1>2025-01-10</ftr:dateFrom1>
<ftr:dateTill>2025-02-10</ftr:dateTill>
<ftr:company>AK - Media a. s.</ftr:company>
</ftr:filter>
</lst:requestInvoice>
<lst:requestInvoice>
<ftr:queryFilter>
<ftr:filter>(FA.KcLikv = 0)</ftr:filter>
</ftr:queryFilter>
</lst:requestInvoice>