Návrhář vzorců v elektronickém výkaznictví

Toto téma popisuje, jak lze používat návrháře receptur v elektronickém výkaznictví. Při vytváření formátu pro určitý elektronický dokument pro elektronické výkaznictví můžete použít vzorce k převodu dat za účelem plnění požadavků na plnění a formátování daného dokumentu. Tyto vzorce připomínají vzorce aplikace Microsoft Excel. Ve vzorcích jsou podporovány různé typy funkcí: text, datum a čas, matematika, logika, informace, převod datových typů a další (funkce specifické pro danou obchodní doménu).

Přehled návrháře vzorců

Elektronické výkaznictví podporuje návrháře receptur. Proto můžete během návrhu konfigurovat výrazy, které lze použít pro následující úkoly za běhu:

  • Transformace dat přijatých z databáze Microsoft Dynamics 365 for Finance and Operations, která mají být zadána v datovém modelu elektronického výkaznictví, který je určený jako zdroj dat pro formáty elektronického výkaznictví. (Tyto transformace mohou například zahrnovat filtrování, seskupení a převod typů dat.)
  • Formátování dat, která musí být odeslána do generovaného elektronické dokument v souladu s rozvržením a podmínkami konkrétního formátu elektronického výkaznictví. (Formátování může být například provedeno v souladu s požadovaným jazykem, jazykovou verzí nebo kódováním).
  • Kontrola procesu vytváření elektronických dokumentů. (Například výrazy mohou povolit nebo zakázat výstup konkrétních prvků formátu, v závislosti na zpracování dat. Mohou rovněž přerušit proces vytváření dokumentu nebo odesílat zprávy uživateli.)

Můžete otevřít stránku Návrhář receptur po provedení některé z následujících akcí:

  • vazba položek zdroje dat na součásti datového modelu,
  • vazba položek zdroje dat na součásti formátu,
  • kompletní údržba vypočtených polí, která jsou součástí datových zdrojů.
  • definování podmínek viditelnosti pro vstupní parametry uživatele,
  • návrh transformací formátu,
  • definování povolení podmínek pro součásti formátu,
  • definování názvů souborů pro součásti souboru formátu,
  • definování podmínek pro ověření kontroly procesu,
  • definování textu zpráv pro ověření kontroly procesu.

Vytvoření vzorců elektronického výkaznictví

Datová vazba

Návrháře receptur elektronického výkaznictví lze použít k definování výrazu, který převádí data přijatá ze zdrojů dat, aby tato data bylo možné zadat v příjemci dat za běhu:

  • ze zdrojů dat aplikace Finance and Operations a parametrů spuštění do datového modelu elektronického výkaznictví,
  • z datového modelu elektronického výkaznictví do formátu elektronického výkaznictví,
  • ze zdrojů dat aplikace Finance and Operations a parametrů spuštění do formátu elektronického výkaznictví.

Následující obrázek znázorňuje návrh výraz tohoto typu. V tomto příkladu výraz zaokrouhluje hodnotu pole Intrastat.AmountMST tabulky Intrastat aplikace Finance and Operations na dvě desetinná místa a vrací zaokrouhlenou hodnotu.

Datová vazba

Je možné použít následující obrázek, který znázorňuje návrh výrazu tohoto typu. V tomto příkladu je výsledek navrženého výrazu zadán do komponenty Transaction.InvoicedAmount datového modelu Vykazování daně.

Používané datové vazby

Navržený vzorec ROUND (Intrastat.AmountMST 2), zaokrouhluje za běhu hodnot pole AmountMST pro každý záznam v tabulce Intrastat na dvě desetinná místa. Poté zadá zaokrouhlenou hodnotu do komponenty Transaction.InvoicedAmount datového modelu Vykazování daně.

Formátování dat

Návrháře receptur elektronického výkaznictví lze použít k definování výrazu, který naformátuje data přijatá ze zdrojů dat, aby tato data bylo možné odeslat jako součást generovaného elektronického dokumentu: Můžete mít formátování, které je třeba použít jako typické pravidlo, které by mělo být znovu použito pro formát. V takovém případě můžete uvést toto formátování jednou v konfiguraci formátu jako pojmenovanou transformaci, která má výraz formátování. Tuto pojmenovanou transformaci lze potom propojit s mnoha komponentami formátu, kde výstup musí být formátován podle vytvořeného výrazu formátování.

Následující obrázek znázorňuje návrh transformace tohoto typu. V tomto příkladu ořeže transformace TrimmedString vstupní data typu dat Řetězec odstraněním počáteční a koncové mezery. Vrátí hodnotu oříznutého řetězce.

Transformace

Je možné použít následující obrázek, který znázorňuje návrh transformace tohoto typu. V tomto příkladu více součástí formátu odesílá text jako výstup do generovaného elektrického dokumentu za běhu. Všechny tyto součásti formátu odkazují na transofmraci TrimmedString podle názvu.

Použitá transformace

Když součásti formátu, jako je například součást partyName na předchozím obrázku, odkazují na transformaci TrimmedString, transformace odešle text jako výstup generovaného elektronického dokumentu. Tento text nezahrnuje počáteční a koncové mezery.

Pokud máte formátování, které je nutné použít jednotlivě, můžete toto formátování použít jako jednotlivý výraz vazby konkrétní součásti formátu. Následující obrázek znázorňuje výraz tohoto typu. V tomto příkladu je součást formátu partyType vázána na zdroj dat pomocí výrazu, který převede příchozí data z pole Model.Company.RegistrationType ve zdroji dat na text s velkými písmeny. Výraz pak odešle tento text jako výstup do elektronického dokumentu.

Použití formátování na jednotlivou součást

Kontrola procesního toku

Návrháře receptur elektronického výkaznictví lze použít k definování výrazů, které se používají k řízení toku procesu generovaných elektronických dokumentů. K dispozici jsou tyto úlohy:

  • Definujte podmínky určující, kdy musí být zastaven proces vytvoření dokumentu.
  • Zadejte výrazy, které vytvoří zprávy pro uživatele o zastaveném procesu nebo vyvolají spuštění zpráv protokolu o pokračujícím procesu generování sestav.
  • Zadejte názvy souborů generovaných elektronických dokumentů a řiďte podmínky jejich vytvoření.

Každé pravidlo procesu řízení toku je navržen jako jednotlivé ověření. Následující obrázek znázorňuje ověření tohoto typu. Zde je vysvětlení konfigurace v tomto příkladu:

  • Ověření je vyhodnoceno, když je uzel INSTAT vytvořen během generování souboru XML.
  • Pokud je seznam transakcí prázdný, ověření zastaví proces spouštění a vrátí hodnotu FALSE.
  • Ověření vrátí chybovou zpráva, která obsahuje textu Finance and Operations popisku SYS70894 v upřednostňovaném jazyce uživatele.

Ověření

Návrhář receptur elektronického výkaznictví lze také použít k vygenerování názvu souboru pro generovaný elektronický dokument a kontrolu procesu vytvoření souboru. Následující obrázek znázorňuje návrh kontroly procesního toku tohoto typu. Zde je vysvětlení konfigurace v tomto příkladu:

  • Seznam záznamů z datového zdroje model.Intrastat je rozdělen do dávek. Každá dávka obsahuje až 1 000 záznamů.
  • Výstup vytvoří soubor ZIP, který obsahuje jeden soubor ve formátu XML pro každou dávku, která byla vytvořena.
  • Výraz vrátí název souboru pro generované elektronické dokumenty zřetězením názvu a přípony souboru. Pro druhou dávku a všechny následné dávky obsahuje název souboru ID dávky jako příponu.
  • Výraz umožňuje (vrácením hodnoty TRUE) proces vytváření souborů pro dávky, které obsahují alespoň jeden záznam.

Kontrola souboru

Základní syntaxe

Výrazy elektronické výkaznictví mohou obsahovat jakékoli nebo všechny následující prvky:

  • Konstanty
  • Operátory
  • Odkazy
  • Cesty
  • Funkce

Konstanty

Při návrhu výrazů lze použít text a numerické konstanty (hodnoty, které nejsou vypočteny). Například výraz VALUE ("100") + 20 používá číselnou konstantu 20 a řetězcovou konstantu "100" a vrátí číselnou hodnotu 120. Návrhář receptur elektronického výkaznictví podporuje řídicí sekvence. Můžete tedy určit řetězec výrazu, se kterým má být zacházeno jinak. Například výraz "Lev Tolstoj ""Vojna a mir"" Svazek 1" vrátí textový řetězec Lev Tolstoj "Vojna a mir" Svazek 1.

Operátory

Následující tabulka ukazuje aritmetické operátory, které lze používat k provádění základních matematických operací, například sčítání, odčítání, dělení a násobení.

Operátor Význam Příklad
+ Dodatek 1+2
- Odečítání, negace 5-2, -1
* Násobení 7*8
/ Divize 9/3

Následující tabulka ukazuje operátory porovnávání, které jsou podporovány. Tyto operátory slouží k porovnání dvou hodnot.

Operátor Význam Příklad
= Rovno X=Y
> Je větší než X>Y
< Je menší než X<Y
>= Větší než nebo rovno X>=Y
<= Menší než nebo rovno X<=Y
<> Není rovno X<>Y

Kromě toho můžete použít znak & jako operátor ke zřetězení textu. Tímto způsobem můžete spojit nebo zřetězit jeden nebo více řetězců do jednoho textu.

Operátor Význam Příklad
& Sloučit "Nic k tisku" & ": " & "nebyly nalezeny žádné záznamy"
Priorita operátorů

Pořadí, v jakém jsou části složeného výrazu vyhodnoceny, je důležité. Například výsledek výrazu 1 + 4 / 2 se liší v závislosti na tom, zda se provádí nejprve sčítání nebo dělení. Pomocí závorek lze explicitně definovat způsob vyhodnocení výrazu. Chcete-li například uvést, že se sčítání musí provést jako první, můžete upravit předchozí výraz na (1 + 4) / 2. Pokud pořadí operací ve výrazu, není explicitně definováno, pořadí vychází z výchozí priority přiřazené k podporovaným operátorům. V následující tabulce je priorita, která je přiřazena ke každému operátoru. Operátory, které mají vyšší prioritu (například 7), jsou vyhodnoceny dříve než operátory s nižší prioritou (například 1).

Priorita Operátory Syntaxe
7 Seskupení ( … )
6 Přístup členů … . …
5 Volání funkce … ( … )
4 Multiplikativní … * …
… / …
3 Přídavné … + …
… - …
2 Porovnání … < …
… <= …
… => …
… > …
… = …
… <> …
1 Dělení … , …

Pokud výraz obsahuje několik po sobě jdoucích operátorů, které mají stejnou prioritu, vyhodnocují se tyto operátory zleva doprava. Například výraz 1 + 6 / 2 * 3 > 5 vrátí hodnotu true. Doporučujeme vám pomocí závorek explicitně určit požadované pořadí operátorů ve výrazech, usnadní se tím čtení a správa výrazů.

Odkazy

Všechny zdroje dat aktuální součásti elektronického výkaznictví, které jsou k dispozici během návrhu výrazu, lze použít jako pojmenované odkazy. (Aktuální součást elektronického výkaznictví může být model nebo formát.) Aktuální datový model model elektronického výkaznictví obsahuje například datový zdroj ReportingDate a tento datový zdroj vrací hodnotu typu dat DATETIME. Abyste tuto hodnotu v generování dokumentu správně zformátovali, můžete odkazovat na zdroj dat ve výrazu jako je DATETIMEFORMAT (ReportingDate, "dd-MM-rrrr").

Všechny znaky v názvu referenčního datového zdroje, které nepředstavují písmeno abecedy, musí předcházet jednoduchá uvozovka ('). Pokud název odkazujícího zdroje dat obsahuje alespoň jeden znak, který nepředstavuje písmeno abecedy, musí být název v jednoduchých uvozovkách. (Těmito nealfabetickými symboly mohou být například interpunkční znaménka nebo jiné psané symboly.) Zde je několik příkladů:

  • Datový zdroj Dnešní datum a čas je nutné odkazovat ve výrazu elektronického výkaznictví jako Dnešní datum a čas.
  • Na metodu name() zdroje dat Odběratelé musí být odkazováno ve výrazu elektronického výkaznictví jako Odběratelé.'name()'

Pokud mají metody aplikace Finance and Operations datové zdroje s parametry, používá se pro volání těchto metod následující syntaxe:

  • Pokud má metoda isLanguageRTL datového zdroje Systém parametr EN-US datového typu Řetězec, musí být odkazována ve výrazu elektronického výkaznictví jako System.'isLanguageRTL'("EN-US").
  • Pokud název metody obsahuje pouze alfanumerické znaky, nejsou uvozovky vyžadovány. U metod tabulky, jejichž název obsahuje závorky, jsou však povinné.

Při přidání datového zdroje Systém do mapování elektronického výkaznictví, které odkazuje na třídu aplikace Finance and Operations Globální, výraz vrátí logickou hodnotu FALSE. Upravený výraz System.' isLanguageRTL'("AR") vrátí logickou hodnotu TRUE.

Je možné omezit způsob, jakým jsou hodnoty předány do parametrů tohoto typu metody:

  • Lze předat pouze konstanty do metod tohoto typu. Hodnoty konstant jsou definovány v době návrhu.
  • Podporovány jsou pouze jednoduché (základní) datové typy pro parametry tohoto typu. (Jednoduché datové typy jsou celé číslo, reálné, logická hodnota, řetězec atd).

Cesty

Pokud výraz odkazuje na strukturovaný zdroj dat, můžete použít definici cesty k volbě určitého primitivního prvku daného zdroje dat. Znak tečky (.) se používá k oddělení jednotlivých prvků strukturovaného zdroje dat. Například aktuální datový model elektronického výkaznictví obsahuje zdroj dat InvoiceTransactions a ten vrátí seznam záznamů. Struktura záznamu InvoiceTransactions obsahuje pole AmountDebit a AmountCredit a obě tato pole vrací číselné hodnoty. Proto můžete vytvořit následující výraz pro výpočet fakturované částky: InvoiceTransactions.AmountDebit - InvoiceTransactions.AmountCredit.

Funkce

Další část popisuje funkce, které lze použít ve výrazech elektronického výkaznictví. Všechny zdroje dat kontextu výrazu (aktuální datový model nebo formát elektronického výkaznictví) mohou sloužit jako parametry funkcí volání, v souladu se seznamem argumentů pro funkce volání. Konstanty lze také použít jako parametry funkcí volání. Například aktuální datový model elektronického výkaznictví obsahuje zdroj dat InvoiceTransactions a ten vrátí seznam záznamů. Struktura záznamu InvoiceTransactions obsahuje pole AmountDebit a AmountCredit a obě tato pole vrací číselné hodnoty. Takže pokud chcete vypočítat částku, můžete vytvořit následující výraz využívající integrovanou funkci zaokrouhlování pro použití v elektronickém výkaznictví: ROUND (InvoiceTransactions.AmountDebit - InvoiceTransactions.AmountCredit, 2).

Podporované funkce

V následující tabulce jsou popsány funkce pro manipulaci s daty, které lze použít k vytváření datových modelů a sestav elektronického výkaznictví. Seznam funkcí není pevný. Vývojáři ho mohou rozšířit. Chcete-li zobrazit seznam funkcí, které můžete použít, otevřete podokno funkcí v návrháři receptur elektronického výkaznictví.

Funkce data a času

Funkce Popis Příklad
ADDDAYS (datum a čas, dny) Přidá zadaný počet dní k zadané hodnotě data a času. ADDDAYS (NOW(), 7) vrátí datum a čas sedm dní v budoucnosti.
DATETODATETIME (datum) Převede zadanou hodnotu data na hodnotu data a času. DATETODATETIME (CompInfo. 'getCurrentDate()') vrátí datum aktuální relace aplikace Finance and Operations, např. 24. prosince 2015, jako 12/24/2015 12:00:00 AM. V tomto příkladu CompInfo představuje zdroj dat elektronického výkaznictví typu Finance and Operations/Table a odkazuje na tabulku CompanyInfo.
NOW () Vrátí aktuální datum a čas relace aplikačního serveru Finance and Operations jako hodnotu data a času.
TODAY () Vrátí aktuální datum relace aplikačního serveru Finance and Operations jako hodnotu data.
NULLDATE () Vrátí hodnotu data null.
NULLDATETIME () Vrátí hodnotu data a času null.
DATETIMEFORMAT (datum a čas, formát) Převede zadanou hodnotu data a času na řetězec v zadaném formátu. (Informace o podporovaných formátech: standardní a vlastní.) DATETIMEFORMAT (NOW(), "dd-MM-yyyy") vrátí aktuální datum aplikačního serveru Finance and Operations, například 24. prosince 2015 jako "24-12-2015" na základě zadaného vlastního formátu.
DATETIMEFORMAT (datum a čas, jazyková verze) Převede zadanou hodnotu data a času na řetězec v zadaném formátu a jazykové verzi. (Informace o podporovaných formátech: standardní a vlastní.) DATETIMEFORMAT (NOW(), "d", "de") vrátí aktuální datum aplikačního serveru Finance and Operations, například 24. prosince 2015, jako "24.12.2015", na základě vybraného německého prostředí.
SESSIONTODAY () Vrátí aktuální datum relace aplikace Finance and Operations jako hodnotu data.
SESSIONNOW () Vrátí aktuální datum a čas relace aplikace Finance and Operations jako hodnotu data a času.
DATEFORMAT (datum, formát) Vrátí znázornění řetězce zadaného data v zadaném formátu. DATEFORMAT (SESSIONTODAY (), "dd-MM-yyyy") vrátí aktuální datum aplikace Finance and Operations, například 24. prosince 2015 jako "24-12-2015" na základě zadaného vlastního formátu.
DATEFORMAT (datum, formát, jazyková verze) Převede zadanou hodnotu data na řetězec v zadaném formátu jazykové verzi. (Informace o podporovaných formátech: standardní a vlastní.) DATETIMEFORMAT (SESSIONNOW (), "d", "de") vrátí aktuální datum aplikace Finance and Operations, například 24. prosince 2015, jako "24.12.2015", na základě vybraného německého prostředí.
DAYOFYEAR (datum) Vrátí celočíselnou reprezentaci počtu dní mezi 1. lednem a zadaným datem. DAYOFYEAR (DATEVALUE ("01-03-2016", "dd-MM-yyyy")) vrátí 61. DAYOFYEAR (DATEVALUE ("01-01-2016", "dd-MM-yyyy")) vrátí 1.
DAYS (datum 1, datum 2) Vrátí počet dní mezi prvním a druhým určeným datem. Vrátí kladnou hodnotu, pokud je první datum pozdější než druhé datum, vrátí 0 (nulu), když se první datum shoduje s druhým datem, nebo vrátí zápornou hodnotu, když je první datum dřívější než druhé. DAYS (TODAY (), DATEVALUE( DATETIMEFORMAT( ADDDAYS(NOW(), 1), "yyyyMMdd"), "yyyyMMdd")) vrátí -1.

Funkce převodu dat

Funkce popis Příklad
DATETODATETIME (datum) Převede zadanou hodnotu data na hodnotu data a času. DATETODATETIME (CompInfo. 'getCurrentDate()') vrátí datum aktuální relace aplikace Finance and Operations, např. 24. prosince 2015, jako 12/24/2015 12:00:00 AM. V tomto příkladu CompInfo představuje zdroj dat elektronického výkaznictví typu Finance and Operations/Table a odkazuje na tabulku CompanyInfo.
DATEVALUE (řetězec, formát) Vrátí znázornění data zadaného řetězce v zadaném formátu. DATEVALUE ("21-Dec-2016", "dd-MMM-yyyy") vrátí datum 21. prosince 2016 na základě zadaného vlastního formátu a výchozí jazykové verze aplikace EN-US.
DATEVALUE (řetězec, formát, prostředí) Vrátí znázornění data zadaného řetězce v zadaném formátu a jazykové verzi. DATEVALUE ("21-Gen-2016", "dd-MMM-yyyy", "IT") vrátí datum 21. ledna 2016 na základě zadaného vlastního formátu a jazykové verze. Nicméně DATEVALUE ("21-Gen-2016", "dd-MMM-yyyy", "EN-US") zobrazí výjimku za účelem informování uživatele, že zadaný řetězec nebyl rozpoznán jako platné datum.
DATETIMEVALUE (řetězec, formát) Vrátí znázornění data a času zadaného řetězce v zadaném formátu. DATETIMEVALUE ("21-Dec-2016 02:55:00", "dd-MMM-yyyy hh:mm:ss") vrátí 2:55:00 21. prosince 2016 na základě zadaného vlastní formátu a výchozí jazykové verze aplikace EN-US.
DATETIMEVALUE (řetězec, formát, prostředí) Vrátí znázornění data a času zadaného řetězce v zadaném formátu a jazykové verzi. DATETIMEVALUE ("21-Gen-2016 02:55:00", "dd-MMM-yyyy hh:mm:ss", "IT") vrátí 2:55:00 21. prosince 2016 na základě zadaného vlastní formátu a výchozí jazykové verze aplikace EN-US. Nicméně DATETIMEVALUE ("21-Gen-2016 02:55:00", "dd-MMM-yyyy hh:mm:ss", "EN-US") zobrazí výjimku za účelem informování uživatele, že zadaný řetězec nebyl rozpoznán jako platné datum.

Funkce seznamu

Funkce popis Příklad
SPLIT (vstup, délka) Rozdělí zadaný vstupní řetězec na dílčí řetězce, přičemž každý bude mít zadanou délku. Vrátí výsledek jako nový seznam. SPLIT ("abcd", 3) vrátí nový seznam obsahující dva záznamy, které mají pole STRING. Pole v prvním záznamu obsahuje text "abc" a pole v druhém záznamu obsahuje text "d".
SPLITLIST (seznam, počet) Rozdělí zadaný seznam na dávky, přičemž každá z nich obsahuje zadaný počet záznamů. Vrátí výsledek jako nový seznam dávek, který obsahuje následující prvky:
  • Dávky jako běžné seznamy (součást Value)
  • Číslo aktuální dávky (součást BatchNumber)
V následujícím příkladu je datový zdroj Řádky vytvořen jako seznam záznamů ze tři záznamů. Tento seznam je rozdělen do dávek, z nichž každá obsahuje až dva záznamy.

Data source that is divided into batches

Následující obrázek znázorňuje navržené rozvržení formátu. V tomto rozvržení formátu jsou vytvořeny vazby na datový zdroj Řádky za účelem vygenerování výstupu ve formátu XML. Tento výstup představuje jednotlivé uzly pro každou dávku a záznamy v ní.

Format layout that has bindings to a data source

Následující obrázek znázorňuje výsledek při spuštění navrženého formátu.

Result of running the format
LIST (záznam 1 [, záznam 2, …]) Vrátí nový seznam, který je vytvořený na základě zadaných argumentů. LIST (model.MainData, model.OtherData) vrátí prázdný záznam, kde seznam polí obsahuje všechna pole seznamů záznamů MainData a OtherData.
LISTJOIN (seznam 1, seznam 2, …) Vrátí spojený seznam, který je vytvořený ze seznamů zadaných argumentů. LISTJOIN (SPLIT ("abc", 1), SPLIT ("def", 1)) vrátí seznam šesti záznamů, kde jedno pole datového typu STRING obsahuje jednotlivá písmena.
ISEMPTY (seznam) Vrátí hodnotu TRUE, pokud zadaný seznam neobsahuje žádné prvky. V opačném případě vrátí hodnotu FALSE.
EMPTYLIST (seznam) Vrátí prázdný seznam pomocí zadaného seznamu jako zdroje pro strukturu seznamu. EMPTYLIST (SPLIT ("abc", 1)) vrátí nový prázdný seznam, který má stejnou strukturu jako seznam vrácený funkcí SPLIT.
FIRST (seznam) Vrátí první záznam zadaného seznamu, pokud tento záznam není prázdný. V opačném bude vyvolána výjimka.
FIRSTORNULL (seznam) Vrátí první záznam zadaného seznamu, pokud tento záznam není prázdný. V opačném vrátí záznam null.
LISTOFFIRSTITEM (seznam) Vrátí seznam obsahující pouze první položku zadaného seznamu.
ALLITEMS (cesta) Tato funkce je spuštěná jako výběr v paměti. Vrátí nový plochý seznam, který obsahuje všechny položky odpovídající zadané cestě. Cesta musí být definována jako platná cesta zdroje dat k prvku zdroje dat typu dat seznamu záznamů. Datové prvky, jako je cesta k řetězci, datum atd. by měly zobrazit chybu v době návrhu v tvůrci výrazů elektronického výkaznictví. Zadáte-li SPLIT("abcdef" , 2) jako zdroj dat (DS), COUNT( ALLITEMS (DS.Value)) vrátí 3.
ALLITEMSQUERY (cesta) Tato funkce je spuštěna jako připojený dotaz SQL. Vrátí nový plochý seznam, který obsahuje všechny položky odpovídající zadané cestě. Zadaná cesta musí být definována jako platná cesta zdroje dat k prvku zdroje dat typu dat seznamu záznamů a musí obsahovat nejméně jeden vztah. Datové prvky, jako je cesta k řetězci, datum atd. by měly zobrazit chybu v době návrhu v tvůrci výrazů elektronického výkaznictví. Definujte v mapování modelu následující zdroje dat:
  • CustInv (typ Záznamy tabulky), která odkazuje na tabulku CustInvoiceTable
  • FilteredInv (typ vypočítané pole), který obsahuje výraz FILTER (CustInv, CustInv.InvoiceAccount = "US-001")
  • JourLines (typ Vypočítané pole), which contains the expression ALLITEMSQUERY (FilteredInv.'<Relations'.CustInvoiceJour.'<Relations'.CustInvoiceTrans)

Při spuštění mapování modelu k volání zdroje dat JourLines se spustí příkaz SQL:

SELECT ... FROM CUSTINVOICETABLE T1 CROSS JOIN CUSTINVOICEJOUR T2 CROSS JOIN CUSTINVOICETRANS T3 WHERE...
ORDERBY (seznam [, výraz 1, výraz 2…]) Vrátí zadaný seznam po seřazení podle zadaných argumentů. Tyto argumenty lze definovat jako výrazy. Jestliže je položka Vendor konfigurována jako zdroj dat elektronického výkaznictví, který odkazuje na tabulku VendTable, ORDERBY (Vendors, Vendors.'name()') vrátí seznam dodavatelů seřazených podle názvu ve vzestupném pořadí.
REVERSE (seznam) Vrátí zadaný seznam v obráceném pořadí. Jestliže je položka Vendor konfigurována jako zdroj dat elektronického výkaznictví, který odkazuje na tabulku VendTable, REVERSE (ORDERBY (Vendors, Vendors.'nam.'name()')) ) vrátí seznam dodavatelů seřazených podle názvu v sestupném pořadí.
WHERE (seznam, podmínka) Vrátí zadaný seznam po vyfiltrování podle zadané podmínky. Zadaná podmínka se použije na seznam v paměti. Tímto způsobem se funkce WHERE liší od funkce FILTER. Jestliže je položka Dodavatel konfigurována jako zdroj dat elektronického výkaznictví, který odkazuje na tabulku VendTable, WHERE(Vendors, Vendors.VendGroup = "40") vrátí pouze seznam dodavatelů patřících do skupiny dodavatelů č. 40.
ENUMERATE (seznam) Vrátí nový seznam, který se skládá z výčtových záznamů zadaného seznamu a poskytne následující prvky:
  • Zadané záznamy seznamu jako běžné seznamy (součást hodnota)
  • Aktuální index záznamů (součást číslo)
Na následujícím obrázku je zdroj dat Enumerated vytvořen jako výčtový seznam záznamů dodavatelů ze zdroje dat Vendors, který odkazuje na tabulku VendTable.

Enumerated data source

Následující obrázek znázorňuje formát. V tomto formátu jsou vytvořeny vazby za účelem vygenerování výstupu ve formátu XML. Tento výstup představuje jednotlivé dodavatel jako výčtové uzly.

Format that has data bindings

Následující obrázek znázorňuje výsledek při spuštění navrženého formátu.

Result of running the format
COUNT (seznam) Vrátí počet záznamů v zadaném seznamu, pokud tento seznam není prázdný. V opačném případě vrátí hodnotu 0 (nula). COUNT (SPLIT("abcd" , 3)) vrátí 2, protože funkce SPLIT vytvoří seznam, který se skládá ze dvou záznamů.
LISTOFFIELDS (cesta) Vrátí seznam záznamů vytvořený z argumentu jednoho z následujících typů:
  • Výčet modelu
  • Výčet formátu
  • Kontejner

Vytvořený seznam obsahuje záznamy, které mají následující pole:

  • Jméno
  • Štítek
  • popis
Při běhu vrátí pole Popisek a Popis hodnoty založené na jazykovém nastavení formátu.
Na následujícím obrázku je výčet uveden v datovém modelu.

Enumeration in a model

Následující obrázek znázorňuje tyto podrobnosti:

  • Výčet modelů je vložen do sestavy jako zdroj dat.
  • Výraz elektronického výkaznictví používá výčet modelů jako parametr funkce LISTOFFIELDS.
  • Zdroj dat typu seznamu záznamů je vložen do sestavy pomocí vytvořeného výrazu elektronického výkaznictví.

Format

Následující příklad uvádí prvky formátu ER, které jsou vázané na zdroj dat typu seznamu záznamů, který byl vytvořen pomocí funkce LISTOFFIELDS.

Format design

Následující obrázek znázorňuje výsledek při spuštění navrženého formátu.

Format output

[!NOTE]
Přeložený text popisků a popisů je zadáván do výstupu formátu elektronického výkaznictví na základě nastavení jazyka nadřazených prvků formátu FILE a FOLDER.
LISTOFFIELDS (cesta, jazyk) Vrátí seznam záznamů vytvořený z argumentu, jako například výčet modelů, výčet formátů nebo kontejner. Vytvořený seznam obsahuje záznamy, které mají následující pole:
  • Jméno
  • Štítek
  • popis
  • Je přeloženo
Při běhu vrátí pole Popisek a Popis hodnoty založené na jazykovém nastavení formátu a zadaném jazyku. Pole Je přeloženo označuje, že pole Popisek je přeloženo do určeného jazyka.
Například použijete typ datového zdroje Vypočítané pole ke konfiguraci datových zdrojů enumType_de a enumType_deCH pro výčet datových modelů enumType:
  • enumType_de = LISTOFFIELDS (enumType, "de")
  • enumType_deCH = LISTOFFIELDS (enumType, "de-CH")
V takovém případě můžete použít následující výraz k získání popisku hodnoty výčtu ve švýcarské němčině, pokud je tento překlad k dispozici. Není-li překlad do švýcarské němčiny k dispozici, je popisek v němčině: IF (není (enumType_deCH.IsTranslated) enumType_de. Popisek, enumType_deCH.Label).
STRINGJOIN (seznam, název pole, oddělovač) Vrátí řetězec, který se skládá ze zřetězených hodnot zadaného pole ze zadaného seznamu. Hodnoty jsou odděleny určeným oddělovačem. Pokud jako zdroj dat (DS) zadáte SPLIT("abc" , 1), STRINGJOIN (DS, DS.Value, "-") vrátí "a-b-c".
SPLITLISTBYLIMIT (seznamu, hodnota limitu, zdroj limitu) Rozdělí zadaný seznam na nový seznam podřízených seznamů a vrátí výsledek v obsahu seznamu záznamů. Parametr hodnota limitu určuje hodnotu limitu k rozdělení původního seznamu. Parametr zdroj limitu určuje krok, o který se celkový součet zvýší. Limit nebude použito na jednu položku z původního seznamu, když zdrojový limit překročí definovaný limit. Následující obrázek znázorňuje formát.

Format

Následující obrázek zobrazuje formát a zdroje dat, které se pro něj používají.

Data sources

Následující obrázek znázorňuje výsledek při spuštění formátu. V takovém případě je výstup prostý seznam položek komodit.

Output

Následující obrázek uvádí stejný formát, který byl upraven tak, aby obsahoval seznam položek komodit v dávkách, kdy musí jedna dávka zahrnovat komodity a celková hmotnost nesmí překračovat limit 9.

Adjusted format

Data sources for the adjusted format

Následující obrázek znázorňuje výsledek při spuštění upraveného formátu.

Output of the adjusted format

[!NOTE]
Limit není použit na poslední položku v původním seznamu, protože hodnota (11) zdroje limitu (hmotnost) překračuje definovaný limit (9). Použijte funkci WHERE nebo výraz Enabled odpovídajícího prvku formátu k ignorování (přeskočení) dílčích seznamů během generování sestavy podle potřeby.
FILTER (seznam, podmínka) Vrátí zadaný seznam po úpravě dotazu k filtrování podle zadané podmínky. Tato funkce se liší od funkce WHERE, protože zadaná podmínka je použita u jakéhokoli zdroje dat elektronického výkaznictví typu Záznamy tabulky na úrovni databáze. Seznam a podmínku lze definovat pomocí tabulek a relací. Jestliže je položka Dodavatel konfigurována jako zdroj dat elektronického výkaznictví, který odkazuje na tabulku VendTable, FILTER (Vendors, Vendors.VendGroup = "40") vrátí pouze seznam dodavatelů patřících do skupiny dodavatelů č. 40. Pokud je Vendor nakonfigurován jako zdroj dat elektronického výkaznictví, který se vztahuje k tabulce VendTable a pokud je parmVendorBankGroup nakonfigurovaný jako zdroj dat elektronického výkaznictví, který vrací hodnotu v datovém typu String, pak příkaz FILTER (Vendor.'<Relations'.VendBankAccount, Vendor.'<Relations'.VendBankAccount.BankGroupID = parmVendorBankGroup) vrací seznam pouze těch dodavatelských účtů, které patří ke konkrétní bankovní skupině.

Logické funkce

Funkce popis Příklad
CASE (výraz, možnost 1, výsledek 1 [, možnost 2, výsledek] … [, výchozí výsledek]) Vyhodnotí zadanou hodnotu výrazu s ohledem na zadané alternativní možnosti. Vrací výsledek možnosti, která je rovna hodnotě výrazu. V opačném případě vrací volitelný výchozí výsledek, pokud je zadán výchozí výsledek. (Výchozí výsledek je poslední parametr, který nepředchází žádná možnost). CASE( DATETIMEFORMAT( NOW(), "MM"), "10", "WINTER", "11", "WINTER", "12", "WINTER", "") vrátí řetězec "WINTER", jestliže je aktuální datum relace aplikace Finance and Operations mezi říjnem a prosincem. Jinak bude vrácen prázdný řetězec.
IF (podmínka, hodnota 1, hodnota 2) Při splnění dané podmínky bude vrácena první zadaná hodnota. V opačném případě vrací druhou zadanou hodnotu. Pokud hodnoty 1 a 2 jsou záznamy nebo seznamy záznamů, má výsledek pouze pole, která existují v obou seznamech. IF (1=2, "podmínka je splněna", "podmínka není splněna") vrátí řetězec "podmínka není splněna".
NOT (podmínka) Vrátí obrácenou logickou hodnotu zadané podmínky. NOT (TRUE) vrátí FALSE.
AND (podmínka 1[, podmínka 2, …]) Vrátí TRUE, pokud jsou všechny zadané podmínky pravda. V opačném případě vrátí hodnotu FALSE. AND (1=1, "a"="a") vrátí TRUE. AND (1=2, "a"="a") vrátí FALSE.
OR (podmínka 1[, podmínka 2, …]) Vrátí FALSE, pokud jsou všechny zadané podmínky nepravda. Vrátí TRUE, pokud je jakákoli zadaná podmínka pravda. OR (1=2, "a"="a") vrátí TRUE.

Matematické funkce

Funkce Popis Příklad
ABS (číslo) Vrací absolutní hodnotu zadaného čísla. (Jinými slovy, vrací číslo bez znaménka). ABS (-1) vrátí hodnotu 1.
POWER (číslo, mocnina) Vrátí výsledek umocnění zadaného kladného čísla pomocí zadané mocniny. POWER (10, 2) vrátí hodnotu 100.
NUMBERVALUE (řetězec, oddělovač desetinných míst, oddělovač skupin číslic) Převede zadaný řetězec na číslo. Zadaný oddělovač desetinných míst se použije mezi celým číslem a zlomkovou částí desetinného čísla. Zadaný oddělovač skupin číslic se použije jako oddělovač tisíců. NUMBERVALUE("1 234,56", ",", " ") vrátí hodnotu 1234.56.
VALUE (řetězec) Převede zadaný řetězec na číslo. Čárky a tečky (.) jsou považovány za oddělovače desetinných míst a úvodní spojovník (-) se používá jako záporné znaménko. Pokud jsou v zadaném řetězci obsaženy jiné než číselné znaky, bude vyvolána výjimka. VALUE ("1 234,56") vyvolá výjimku.
ROUND (číslo, desetinná čísla) Vrátí zadané číslo, poté, co je zaokrouhleno na zadaný počet desetinných míst:
  • Pokud je hodnota parametru desetinná místa vyšší než 0 (nula), zadané číslo je zaokrouhleno na tento počet desetinných míst.
  • Pokud je hodnota parametru desetinná místa 0 (nula), zadané číslo je zaokrouhleno na nejbližší celé číslo.
  • Pokud je hodnota parametru desetinná místa nižší než 0 (nula), zadané číslo je zaokrouhleno vlevo od oddělovače desetinných míst.
ROUND (1200.767, 2) zaokrouhlí na dvě desetinná místa a vrátí hodnotu 1200.77. ROUND (1200.767, -3) zaokrouhlí na nejbližší násobek 1 000 a vrátí hodnotu 1000.
ROUNDDOWN (číslo, desetinná čísla) Vrátí zadané číslo, poté, co je zaokrouhleno dolů na zadaný počet desetinných míst.
[!NOTE]
Tato funkce se chová jako ROUND, ale vždy zaokrouhluje zadané číslo směrem dolů (směrem k nule).
ROUNDDOWN (1200.767, 2) zaokrouhlí směrem dolů na dvě desetinná místa a vrátí hodnotu 1200.76. ROUNDDOWN (1700.767, -3) zaokrouhlí směrem dolů na nejbližší násobek 1 000 a vrátí hodnotu 1000.
ROUNDUP (číslo, desetinná čísla) Vrátí zadané číslo, poté, co je zaokrouhleno nahoru na zadaný počet desetinných míst.
[!NOTE]
Tato funkce se chová jako ROUND, ale vždy zaokrouhluje zadané číslo směrem nahoru (směrem od nuly).
ROUNDUP (1200.763, 2) zaokrouhlí směrem nahoru na dvě desetinná místa a vrátí hodnotu 1200.77. ROUNDUP (1200.767, -3) zaokrouhlí směrem nahoru na nejbližší násobek 1 000 a vrátí hodnotu 2000.

Funkce převodu dat

Funkce popis Příklad
VALUE (řetězec) Převede zadaný řetězec na číslo. Čárky a tečky (.) jsou považovány za oddělovače desetinných míst a úvodní spojovník (-) se používá jako záporné znaménko. Pokud jsou v zadaném řetězci obsaženy jiné než číselné znaky, bude vyvolána výjimka. VALUE ("1 234,56") vyvolá výjimku.
NUMBERVALUE (řetězec, oddělovač desetinných míst, oddělovač skupin číslic) Převede zadaný řetězec na číslo. Zadaný oddělovač desetinných míst se použije mezi celým číslem a zlomkovou částí desetinného čísla. Zadaný oddělovač skupin číslic se použije jako oddělovač tisíců. NUMBERVALUE("1 234,56", ",", " ") vrátí 1234.56.
INTVALUE (řetězec) Vrátí reprezentaci celého čísla zadaného řetězce. Desetinná místa jsou oříznuta. INTVALUE ("100.77") vrátí 100.
INTVALUE (číslo) Vrátí reprezentaci celého čísla zadaného čísla. Desetinná místa jsou oříznuta. INTVALUE (-100.77) vrátí hodnotu -100.
INT64VALUE (řetězec) Vrátí reprezentaci int64 zadaného řetězce. Desetinná místa jsou oříznuta. INT64VALUE ("22565422744") vrátí 22565422744.
INT64VALUE (číslo) Vrátí reprezentaci int64 zadaného čísla. Desetinná místa jsou oříznuta. INT64VALUE (22565422744.00) vrátí hodnotu 22565422744.

Funkce záznamu

Funkce popis Příklad
NULLCONTAINER (seznam) Vrátí záznam null, který má stejnou strukturu jako zadaný seznam záznamů nebo záznam.
[!NOTE]
Tato funkce je zastaralá. Místo toho použijte EMPTYRECORD.
NULLCONTAINER (SPLIT ("abc", 1)) vrátí nový prázdný záznam, který má stejnou strukturu jako seznam vrácený funkcí SPLIT.
EMPTYRECORD (záznam) Vrátí záznam null, který má stejnou strukturu jako zadaný seznam záznamů nebo záznam.
[!NOTE]
Záznam null je záznam, kde všechna pole mají prázdnou hodnotu. Prázdná hodnota je 0 (nula) pro čísla, prázdný řetězec pro řetězce atd.
EMPTYRECORD (SPLIT ("abc", 1)) vrátí nový prázdný záznam, který má stejnou strukturu jako seznam vrácený funkcí SPLIT.

Textové funkce

Funkce popis Příklad
UPPER (řetězec) Vrátí zadaný řetězec po převedení na velká písmena. UPPER("Sample") vrátí "SAMPLE".
LOWER (řetězec) Vrátí zadaný řetězec po převedení na malá písmena. LOWER ("Sample") vrátí "sample".
LEFT (řetězec, počet znaků) Vrátí zadaný počet znaků od začátku zadaného řetězce. LEFT ("Sample", 3) vrátí "Sam".
RIGHT (řetězec, počet znaků) Vrátí zadaný počet znaků od konce zadaného řetězce. RIGHT ("Sample", 3) vrátí "ple".
MID (řetězec, počáteční pozice, počet znaků) Vrátí zadaný počet znaků ze zadaného řetězce, počínaje od zadané pozice. MID ("Sample", 2, 3) vrátí "amp".
LEN (řetězec) Vrátí počet znaků v zadaném řetězci. LEN ("Sample") vrátí 6.
CHAR (číslo) Vrátí řetězec znaků, na který odkazuje zadané číslo ve znakové sadě Unicode. CHAR (255) vrátí "ÿ".
[!NOTE]
Řetězec, který vrací tato funkce, závisí na kódování, které je vybráno v nadřazeném prvku formátu SOUBORU. Více informací o seznamu podporovaných kódování naleznete v tématu Třída kódování.
CONCATENATE (řetězec 1 [, řetězec 2…]) Vrátí všechny zadané textové řetězce po jejich spojení do jednoho řetězce. CONCATENATE ("abc", "def") vrátí "abcdef".
[!NOTE]
Výraz "abc" & "def" vrátí též "abcdef".
TRANSLATE (řetězec, vzor, náhrada) Vrátí zadaný řetězec po nahrazení všech výskytů znaků v zadaném řetězci vzoru za znaky na odpovídající pozici zadaného řetězce sloužícího jako náhrada. TRANSLATE ("abcdef", "cd", "GH") nahradí vzorec "cd" řetězcem "GH" a vrátí "abGHef".
REPLACE (řetězec, vzor, náhrada, příznak regulérního výrazu) Pokud je zadaný příznak regulérního výrazu true, vrátí zadaný po úpravě použitím regulárního výrazu zadaného jako argument vzoru pro tuto funkci. Tento výraz slouží k vyhledání znaků, které je třeba nahradit. Znaky zadaného argumentu-náhrady jsou použity k nahrazení vyhledaných znaků. Pokud je zadaný příznak regulérního výrazu false, tato funkce se chová jako TRANSLATE. REPLACE ("+1 923 456 4971", "[^0-9]", "", true) použije regulární výraz, ktreý odebere všechny nečíselné symboly a vrátí "19234564971". REPLACE ("abcdef", "cd", "GH", false) nahradí vzorec "cd" řetězcem "GH" a vrátí "abGHef".
TEXT (vstup) Vrátí zadaný vstup po převedení na textový řetězec naformátovaný podle nastavení národního prostředí serveru aktuální instance aplikace Finance and Operations. Co se týká hodnot typu real, převod řetězce je omezen na dvě desetinná místa. Jestliže je národní prostředí serveru Finance and Operations definováno jako EN-US, TEXT (NOW ()) vrátí aktuální datum relace aplikace Finance and Operations, například 17. prosince 2015, jako textový řetězec "12/17/2015 07:59:23 AM". TEXT (1/3) vrátí "0.33".
FORMAT (řetězec 1 řetězce 2[, řetězec 3 ...]) Vrátí zadaný řetězec po zformátování nahrazením všech výskytů %N n-tým argumentem. Argumenty jsou řetězce. Pokud pro parametr není zadán argument, parametr je vrácen jako "%N" v řetězci. Co se týká hodnot typu real, převod řetězce je omezen na dvě desetinná místa. Ná následujícím obrázku vrátí zdroj dat PaymentModel seznam záznamů odběratelů prostřednictvím součásti Customer a datum zpracování prostřednictvím pole ProcessingDate.

PaymentModel data source

Ve formátu elektronického výkaznictví, který je určený ke generování elektronického souboru pro vybrané odběratele, je vybrán řetězec PaymentModel jako zdroj dat, který řídí procesní tok. Jestliže je vybraný odběratel zastaven u data zpracování sestavy, je vyvolána výjimka pro informování uživatele. Vzorec, který je určen pro tento typ ovládacího prvku pro zpracování, může využít následující zdroje:

  • Popisek aplikace Finance and Operations SYS70894, který má následující text:
    • Pro jazyk EN-US: "Nothing to print"
    • Pro jazyk CS: "Nic k vytištění"
  • Popisek aplikace Finance and Operations SYS18389, který má následující text:
    • Pro jazyk EN-US: "Customer %1 is stopped for %2."
    • Němčina: "Debitor '%1' wird für %2 gesperrt."

Zde je vzorec, který lze vytvořit:

FORMAT (CONCATENATE (@"SYS70894", ". ", @"SYS18389"), model.Customer.Name, DATETIMEFORMAT (model.ProcessingDate, "d"))

Pokud je sestava zpracovávána pro odběratele Litware Retail 17. prosince 2015, v národním prostředí EN-US a jazyce EN-US, tento vzorec vrátí následující text, který může být uživateli nabídnut ve formě zprávy výjimky:

"Nic k tisku. Customer Litware Retail is stopped for 12/17/2015."

Jestliže je stejná sestava zpracována pro odběratele Litware Retail 17. prosince 2015 v jazykové verzi DE a jazyce DE, vzorec vrátí následující text, který používá jiný formát data:

"Nichts zu drucken. Debitor 'Litware Retail' wird für 17.12.2015 gesperrt."

[!NOTE]
Následující syntaxe je použita ve vzorcích elektronického výkaznictví pro popisky:
  • Popisky ze zdrojů aplikace Finance and Operations: @"X", kde X je ID popisku ve stromu aplikačních objektů (AOT)
  • Popisky, které se nachází v konfiguracích elektronického výkaznictví: @"GER_LABEL:X", kde X je ID popisku v konfiguraci elektronického výkaznictví.
NUMBERFORMAT (číslo, formát) Vrátí znázornění řetězce zadaného čísla v zadaném formátu. (Informace o podporovaných formátech naleznete v tématu standardní a vlastní.) Spuštění této funkce v rámci určuje jazykovou verzi, která je použita k formátování čísla. Pro jazykovou verzi EN-US vrátí NUMBERFORMAT (0.45, "p") hodnotu "45,00 %". NUMBERFORMAT (10.45, "#") vrátí hodnotu "10".
NUMERALSTOTEXT (číslo jazyk, měna, příznak názvu měny pro tisk, desetinná místa) Vrátí zadané číslo po vyslovení (převedení) na textové řetězce v zadaném jazyce. Kód jazyka je volitelný. Pokud je definován jako prázdný řetězec, použije se kód jazyka pro aktuální kontext. (Kód jazyka spuštěného kontextu je definován pro generovaný soubor nebo složku). Kód měny je také volitelný. Pokud je definován jako prázdný řetězec, je použita měna společnosti.
[!NOTE]
Příznak název měny pro tisk a parametry desetinných míst jsou analyzovány pouze pro následující jazykové kódy: CS, ET, HU, LT, LV, PL a RU. Dále je příznak názvu měny pro tisk analyzován pouze pro společnosti používající aplikaci Finance and Operations s kontextem země nebo oblasti, který podporuje skloňování názvů měn.
NUMERALSTOTEXT (1234.56, "EN", "", false, 2) returns "One Thousand Two Hundred Thirty Four and 56". NUMERALSTOTEXT (120, "PL", "", false, 0) vrátí "Sto dwadzieścia". NUMERALSTOTEXT (120.21, "RU", "EUR", true, 2) vrátí "Сто двадцать евро 21 евроцент".
PADLEFT (řetězec, délka, odsazovací znaky) Vrátí řetězec určené délky, ve kterém je začátek určeného řetězce odsazen určenými znaky. PADLEFT ("1234", 10, " ") vrátí řetězec "      1234".
TRIM (řetězec) Vrátí určený textový řetězec po příznutí počátečních a koncových mezer a po odebrání více mezer mezi slovy. TRIM ("     Ukázkový     text     ") vrátí "Ukázkový text".
GETENUMVALUEBYNAME (cesta zdroje dat výčtu, text popisku hodnoty výčtu) Vrátí hodnotu zadaného zdroje dat výčtu podle zadaného textu popisku výčtu. Na následujícím obrázku je výčet ReportDirection uveden v datovém modelu. Pro hodnoty výčtu jsou definovány popisky.

Available values for data model enumeration

Následující obrázek znázorňuje tyto podrobnosti:

  • Výčet modelů ReportDirection je vložený do sestavy jako zdroj dat $Direction.
  • Výraz elektronického výkaznictví $IsArrivals je určený k použití výčtu modelů jako parametr této funkce. Hodnota tohoto výrazu je TRUE.
Example of data model enumeration
GUIDVALUE (vstup) Převeďte zadaný vstup datového typu String na datovou položku datového typu GUID. Definujte v mapování modelu následující zdroje dat:
  • myID (typ Vypočítané pole), které obsahuje výraz GUIDVALUE("AF5CCDAC-F728-4609-8C8B- A4B30B0C0AA0")
  • Users (typ Záznamy tabulky), která odkazuje na tabulku UserInfo
Když jsou definovány tyto zdroje dat, můžete použít výraz jako FILTER (Users, Users.objectId = myID) k filtrování tabulky UserInfo podle pole objectId datového typu GUID.
JSONVALUE (id, cesta) Analyzujte data ve formátu notace objektu JavaScript (JSON), který je přístupný ze zadané cesty k extrahování skalární hodnoty založené na zadaném ID. Zdroj dat $JsonField obsahuje následující data ve formátu JSON: {"BuildNumber":"7.3.1234.1", "KeyThumbprint":"7366E"}. Pro tento zdroj dat JSONVALUE ( "BuildNumber", $JsonField) vrací hodnotu 7.3.1234.1 z datového typu String.

Funkce převodu dat

Funkce popis Příklad
TEXT (vstup) Vrátí zadaný vstup po převedení na textový řetězec naformátovaný podle nastavení národního prostředí serveru aktuální instance aplikace Finance and Operations. Co se týká hodnot typu real, převod řetězce je omezen na dvě desetinná místa. Jestliže je národní prostředí serveru Finance and Operations definováno jako EN-US, TEXT (NOW ()) vrátí aktuální datum relace aplikace Finance and Operations, například 17. prosince 2015, jako textový řetězec "12/17/2015 07:59:23 AM". TEXT (1/3) vrátí "0.33".
QRCODE (řetězec) Vrátí obrázek QR (Quick Response) kódu v binárním formátu base64 pro zadaný řetězec. QRCODE (“Ukázkový text”) vrátí hodnotu U2FtcGxlIHRleHQ=.

Funkce shromažďování dat

Funkce popis Příklad
FORMATELEMENTNAME () Vrátí název prvku aktuálního formátu. Vrátí prázdný řetězec, když je příznak Podrobnosti výstupu shromažďování aktuálních souborů vypnut. Další informace o použití těchto funkcí najdete v průvodci záznamem úloh Elektronické výkaznictví - zdroj dat formát výstupu pro inventuru a souhrn, část obchodního procesu Získání/vývoj komponent služby/řešení.
SUMIFS (key string for summing, criteria range1 string, criteria value1 string [, criteria range2 string, criteria value2 string, …]) Vrátí součet hodnot XML uzlů (s názvem definovaným jako klíč), získaný během provedení tohoto formátu, který splňuje zadané podmínky (dvojice rozsahů a hodnot). Vrací hodnotu 0 (nula), když je příznak Podrobnosti výstupu shromažďování aktuálních souborů vypnut.
SUMIF (řetězec klíče pro sčítání, řetězec kritéria rozsahu, řetězec kritéria hodnoty) Vrátí součet hodnot XML uzlů (s názvem definovaným jako klíč), získaný během provedení tohoto formátu, který splňuje zadanou podmínku (rozsah a hodnota). Vrací hodnotu 0 (nula), když je příznak Podrobnosti výstupu shromažďování aktuálních souborů vypnut.
COUNTIFS (criteria range1 string, criteria value1 string [, criteria range2 string, criteria value2 string, …]) Vrátí počet XML uzlů získaný během provedení tohoto formátu, který splňuje zadané podmínky (dvojice rozsahů a hodnot). Vrací hodnotu 0 (nula), když je příznak Podrobnosti výstupu shromažďování aktuálních souborů vypnut.
COUNTIF (řetězec rozsahu kritérií, řetězec hodnoty kritérií) Vrátí počet XML uzlů získaný během provedení formátu, který splňuje zadanou podmínku (rozsah a hodnota). Vrací hodnotu 0 (nula), když je příznak Podrobnosti výstupu shromažďování aktuálních souborů vypnut.
COLLECTEDLIST (criteria range1 string, criteria value1 string [, criteria range2 string, criteria value2 string, …]) Vrátí seznam hodnot XML uzlů získaný během provedení tohoto formátu, který splňuje zadané podmínky (rozsah a hodnota). Vrátí prázdný seznam, když je příznak Podrobnosti výstupu shromažďování aktuálních souborů vypnut.

Další funkce (konkrétní pro obchodní domény)

Funkce popis Příklad
CONVERTCURRENCY (částka, zdrojová měna, cílová měna, datum, společnost) Převede zadanou peněžní částku ze zadané měny na zadanou měnu za použití nastavení zadané společnosti v aplikaci Finance and Operations k zadanému datu. CONVERTCURRENCY (1, "EUR", "USD", TODAY(), "DEMF") vrátí ekvivalent jednoho eura v amerických dolarech v aktuální den relace podle nastavení společnosti DEMF.
ROUNDAMOUNT (číslo, desetinná místa, pravidlo zaokrouhlování) Zaokrouhlí zadanou částku na zadaný počet bdesetinných míst podle zadaného pravidla zaokrouhlování.
[!NOTE]
Pravidlo zaokrouhlování musí být zadáno jako hodnota výčtu RoundOffType aplikace Finance and Operations.
Pokud je parametr model.RoundOff nastaven na Downward, 3ROUNDAMOUNT (1000.787, 2, model.RoundOff) vrátí hodnotu 1000.78. Pokud je parametr model.RoundOff nastaven na hodnotu Normal nebo Rounding-up, ROUNDAMOUNT (1000.787, 2, model.RoundOff) vrátí hodnotu 1000.79.
CURCredRef (číslice) Vrátí referenční údaj věřitele na základě číslic zadaného čísla faktury. CURCredRef ("VEND-200002") vrátí hodnotu "2200002".
MOD_97 (číslice) Vrátí referenční údaj věřitele jako výraz MOD97 na základě číslic zadaného čísla faktury. MOD_97 ("VEND-200002") vrátí "20000285".
ISOCredRef (číslice) Vrátí ISO údaj věřitele na základě číslic a abecedních symbolů zadaného čísla faktury.
[!NOTE]
Chcete-li vyloučit z abecedy symboly, které jsou v souladu se standardem ISO, vstupní parametr musí být přeložen před jeho předáním této funkci.
ISOCredRef ("VEND-200002") vrátí hodnotu "RF23VEND-200002".
CN_GBT_AdditionalDimensionID (řetězec, číslo) Získá zadané ID další finanční dimenze. Dimenze jsou reprezentovány v parametru řetězec jako ID oddělená čárkou. Parametr číslo definuje kód sekvence požadované dimenze v řetězci. CN_GBT_AdditionalDimensionID ("AA,BB,CC,DD,EE,FF,GG,HH",3) vrací "CC".
GetCurrentCompany () Vrací textovou reprezentaci kódu právnické osoby (společnosti), ke které je uživatel momentálně přihlášen. GETCURRENTCOMPANY () vrátí hodnotu USMF u uživatele přihlášeného v aplikaci Finance and Operations ke společnosti Contoso Entertainment System USA.
CH_BANK_MOD_10 (číslice) Vrátí odkaz věřitele jako výraz MOD10 na základě číslic zadaného čísla faktury. CH_BANK_MOD_10 ("VEND-200002") vrátí 3.
FA_SUM (kód dlouhodobého majetku, kód modelu hodnoty, počáteční datum, koncové datum) Vrátí připravený datový kontejner částky dlouhodobého majetku za období. FA_SUM ("COMP-000001", "Current", Date1, Date2) vrátí připravený datový kontejner dlouhodobého majetku "COMP-000001" s modelem hodnoty "Current" za období mezi Date1 a Date2.
FA_BALANCE (kód dlouhodobého majetku, kód oceňovacího modelu, vykazovaný rok, datum sestavy) Vrátí připravený datový kontejner zůstatku dlouhodobého majetku. Rok vykazování je nutné zadat jako hodnotu výčtu aplikace Finance and Operations AssetYear. FA_SUM ("COMP-000001", "Current", AxEnumAssetYear.ThisYear, SESSIONTODAY ()) vrátí připravený datový kontejner zůstatků pro dlouhodobý majetek "COMP-000001" s modelem hodnoty "Current" k aktuálnímu datu relace aplikace 365 for Finance and Operations.
TABLENAME2ID (řetězec) Vrací reprezentaci celého čísla ID tabulky pro daný název tabulky. TABLENAME2ID ("Intrastat") vrátí hodnotu 1510.
ISVALIDCHARACTERISO7064 (řetězec) Vrátí logickou hodnotu TRUE, pokud zadaný řetězec představuje platné mezinárodní číslo bankovního účtu (IBAN). V opačném případě vrátí logickou hodnotu FALSE. ISVALIDCHARACTERISO7064 ("AT61 1904 3002 3457 3201") vrátí hodnotu TRUE. ISVALIDCHARACTERISO7064 ("AT61") vrátí hodnotu FALSE.

Rozšíření seznamu funkcí

Elektronické výkaznictví umožňuje rozšířit seznam funkcí, které se používají ve výrazech elektronického výkaznictví. Je však vyžadováno určité technické úsilí. Další informace naleznete v tématu Rozšíření seznamu funkcí elektronického vykazování.

Další zdroje

Přehled elektronického výkaznictví

Rozšíření seznamu funkcí elektronického vykazování