電子申告のフォーミュラ デザイナー

このトピックでは、電子申告 (ER) でのフォーミュラ デザイナーの使用方法を説明します。 ER の特定の電子ドキュメントの形式を設計する場合、データ変換に Microsoft Excel のような式を使用して、そのドキュメントのフルフィルメントおよび書式設定の要件を満たすことができます。 テキスト、日時、算術、論理、情報、データ型変換、およびその他 (ビジネス ドメインの特定の関数) といったさまざまなタイプの関数がサポートされています。

フォーミュラ デザイナーの概要

電子申告 (ER) はフォーミュラ デザイナーをサポートします。 したがって、設計時に次のタスクに使用できる式を実行時にコンフィギュレーションできます。

  • ER フォーマットのデータ ソースとして設計された ER データ モデルに設定する必要のある Microsoft Dynamics 365 for Finance and Operations データベースから受け取るデータの変換 (フィルタ処理、グループ化、およびデータ型の変換など)。
  • レイアウトと特定の ER 形式の条件 (要求された言語、カルチャ、エンコードなど) に従って生成される電子ドキュメントに送信するデータの書式設定。
  • 電子ドキュメント生成プロセス (処理データに応じた形式の特定要素出力の有効化または無効化、ドキュメント作成の中断、エンド ユーザーへのスロー メッセージなど) の制御。

フォーミュラ デザイナーのページは次のいずれかを行うと開くことができます。

  • データ モデルのコンポーネントへのデータ ソース項目のバインド。
  • 形式コンポーネントへのデータ ソース項目のバインド。
  • データ ソースの一部としての計算済フィールドのメンテナンス完了。
  • ユーザー入力パラメーターの表示条件の定義。
  • 形式の変換の設計。
  • 形式のコンポーネントに有効にする条件の定義。
  • 形式のファイル コンポーネントに対するファイル名の定義。
  • プロセス制御検証の条件の定義。
  • プロセス制御検証のメッセージ テキストの定義。

ER フォーミュラ デザイナー

データ バインディング

ER フォーミュラ デザイナーは、実行時にデータ消費者に反映できるよう、データ ソースから受信されたデータを変換する式を定義するのに使用できます。

  • Finance and Operations データ ソースとランタイム パラメーターから ER データ モデルへ。
  • ER データ モデルから ER 形式へ。
  • Finance and Operations データ ソースとランタイム パラメーターから ER 形式へ。

次の図は、このタイプの式の設計を示しています。 この例では、式は、Finance and Operations [イントラスタット] テーブルの [Intrastat.AmountMST] フィールドの値を返し、その値は小数点以下 2 桁に丸められます。 picture-expression-binding 次の図は、このタイプの式をどのように使用できるかを示しています。 この例では、設計された式の結果が、[税申告モデル] データ モデルの [Transaction.InvoicedAmount] コンポーネントに反映されます。 picture-expression-binding2 実行時、設計された式 ROUND (Intrastat.AmountMST, 2) が、イントラスタット テーブルの各レコードの [AmountMST] フィールドの値を小数点以下 2 桁に丸め、その丸めた値を税申告データ モデルの [Transaction.InvoicedAmount] コンポーネントに反映します。

データの書式設定

ER フォーミュラ デザイナーは、電子ドキュメント生成の一部として送信できるよう、データ ソースから受信されたデータを書式設定する式を定義するのに使用できます。 形式に再利用する必要のある一般的なルールとして適用すべき形式がある場合、書式設定の式が含まれる名前付き変換としてその書式設定を書式設定のコンフィギュレーションで一度導入できます。 この名前付き変換は、作成した式に従って出力を書式設定する必要がある多くの形式コンポーネントに後でリンクできます。 次の図は、このタイプの変換の設計を示しています。 この例では、TrimmedString 変換は、文字列 データ型の受信データを使用し、文字列データを返す際に先頭および末尾にあるスペースを切り詰めます。 picture-transformation-design 次の図は、このタイプの変換を使用できる方法を示しています。 この例では、実行時にテキストを電子ドキュメント生成への出力として送信する複数の形式コンポーネントは、名前で TrimmedString 変換を参照します。 picture-transformation-usage 形式コンポーネントが TrimmedString 変換 (たとえば、前の図の partyName コンポーネント) を参照する場合、生成ドキュメントへの出力としてテキストを送信します。 テキストには、先頭および末尾にあるスペースは含まれません。 個別に適用する必要のある形式の場合、特定形式コンポーネントのバインディングの個別の式として導入できます。 次の図は、このタイプの式を示しています。 この例では、partyType の形式コンポーネントは、データ ソースの [Model.Company.RegistrationType] フィールドからの受信データを大文字テキストに変換する式を介してデータ ソースにバインドされ、電子ドキュメントへの出力としてテキストを送信します。 画像 - 式によるバインディング

プロセス フローの制御

ER フォーミュラ デザイナーは、ドキュメントを生成するプロセス フローを制御する式を定義するために使用できます。 次の処理を行うことができます:

  • ドキュメント作成のプロセスを停止する必要がある場合を判断する条件を定義します。
  • 停止したプロセスに対してエンド ユーザーにメッセージを作成する式を指定するか、または報告書作成のプロセスに関する実行ログ メッセージをスローする式を指定します。
  • 生成ドキュメントのファイル名と作成の管理条件を指定します。

プロセス フロー制御の各ルールは、個々の検証として設計されています。 次の図は、このタイプの検証を示しています。 この例のコンフィギュレーションの説明を次に示します。

  • 検証は、生成する XML ファイルに INSTAT ノードが作成されたときに評価されます。
  • トランザクションのリストが空である場合、検証の実行プロセスを停止し、FALSE を返します。
  • 検証では、ユーザーの優先的に使用する言語でラベル SYS70894 のテキストを含むエラー メッセージを返します。

picture-validation ER フォーミュラ デザイナーは生成する電子ドキュメントのファイル名の指定や、ファイルの作成プロセスの制御にも使用できます。 次の図は、このタイプのプロセス フロー制御の設計を示しています。 この例のコンフィギュレーションの説明を次に示します。

  • [model.Intrastat] データ ソースからのレコード一覧を 1,000 までのレコードが含まれるバッチで割ります
  • 出力は、作成されたバッチごとに XML 形式のファイル 1 つを含む zip ファイルを作成します。
  • 式はファイル名とファイル拡張子を連結して、生成する電子ドキュメントにファイル名を返します。 2 番目のバッチ以降すべてのバッチには、ファイル名の接尾語としてバッチ ID が表示されます。
  • 式は、(TRUE を返すことで) 少なくともレコードを 1 つ含むバッチのファイル作成のプロセスを有効にします。

画像ファイル コントロール

基本構文

ER の式は、次のいずれかまたはすべての要素を含めることができます。

  • 定数
  • 演算子
  • 参照
  • パス
  • 関数

定数

式の設計時にテキストおよび数値定数 (計算されない定数) を使用できます。 たとえば、VALUE ("100") + 20の式では、数値定数 20 および文字列定数 “100” を使用し、120 という数値を返します。 ER フォーミュラ デザイナーは、エスケープ シーケンスにサポートしており、別の方法で処理する必要がある式の文字列を指定できます。 たとえば、「レフ トルストイ」「戦争と平和」「ボリューム 1」 の式は、[レフ トルストイ「戦争と平和」ボリューム 1] という文字列を返します。

演算子

次の表に、加算、減算、除算、乗算などの基本的な数学演算の実行に使用できる算術演算子を示します。

オペレーター 意味
+ 追加 1+2
- 減算の否定 5-2 -1
* 乗算 7*8
/ 区分 9/3

次の表に、2 つの値の比較に使用でき、サポートされている比較演算子を示します。

オペレーター 意味
= 等しい X=Y
> 次の値より大きい X>Y
< 次の値より小さい X<Y
>= 以上 X>=Y
<= 以下 X<=Y
<> 次の値に等しくない X<>Y

また、1 つ以上の文字列を 1 つのテキストに結合または連結するテキスト連結演算子としてアンパサンド (&) を使用できます。

オペレーター 意味
& 連結 「印刷対象なし」 & 「: 」 & 「レコードが見つかりません」

演算子の優先順位

複合式のパーツを評価する順番は重要です。 たとえば、1 + 4 / 2 の式の結果は、先に加算または除算のどちらを実行するかによって異なります。 明示的に式の評価方法を定義するためにかっこを使用できます。 たとえば、加算を最初に実行する必要があることを示すには、前の式を (1 + 4) /2 に変更できます。 式で実行する必要のある工程の順序が明確に定義されていない場合、順序はサポートされる演算子に割り当てられている既定の優先順位に基づきます。 次の表に、それぞれに割り当てられている演算子および優先順位を示します。 高い優先順位 (たとえば、7) がある演算子は、低い優先順位 (たとえば、1) がある演算子より前に評価されます。

優先順位 演算子 構文
7 グループ化 ( … )
6 メンバーのアクセス … します。 …
5 関数の呼び出し … ( … )
4 乗算 … * … … / …
3 付加 … + … … - …
2 比較 … < … … <= … … => … … > … … = … … <> …
1 区切り … , …

同じ行の演算子には、同等な優先順位があります。 式にこれらの演算子のうち 1 つ以上が含まれる場合、式は左から右に評価されます。 たとえば、1 + 6 / 2 * 3 > 5 の式は true を返します。 式の閲覧や管理を簡単にするには、式を評価する希望の順序を明示的に示すために、かっこを使用することをお勧めします。

参照

式の設計中に使用できる現在の ER コンポーネント (モデルや形式) のすべてのデータ ソースは名前付き参照を使用できます。 たとえば、現在の ER データ モデルには ReportingDate データ ソースが含まれ、DATETIME データ型の値を返します。 生成ドキュメントでその値を適切に書式設定するために、DATETIMEFORMAT (ReportingDate, "dd-MM-yyyy") の式のデータ ソースを参照できます。アルファベットの文字を表さない参照データ ソースの名前であるすべての文字は、単一引用符 (') が前に必要です。 参照データ ソースの名前がアルファベットの文字を表さない記号 (たとえば、句読点またはそのほかの書面記号) を少なくとも 1 つ含む場合、名前を単一引用符で囲む必要があります。 次にいくつか例を挙げます。

  • 今日の日付 & 時間 データ ソースは、次のように ER の式で参照する必要があります。'今日の日付 & 時間’
  • Customers データ ソースの name() メソッドは、ER の式で次のように参照する必要があります。Customers.’name()’

次の構文は、パラメーターを含む Dynamics 365 for Operation データ ソースのメソッドを呼び出すのに使用されることに注意してください。

  • 文字列データ型のパラメーター EN-US を含むシステム データ ソースの isLanguageRTL メソッドは、ER の式で次のように参照する必要があります。System.'isLanguageRTL'("EN-US")。
  • メソッド名に英数字シンボルのみが含まれている場合、引用符は必須ではありません。 名前にかっこが含まれているテーブルのメソッドに対しては必須です。

システム データ ソースが、Dynamics 365 for Operation アプリケーション クラス グローバルを参照する ER マッピングに追加される場合、式は、ブール値 FALSE を返します。 変更された式、System.’ isLanguageRTL'("AR") は、ブール値 TRUE を返します。

そのようなメソッド パラメーターに移動することが次の制限で定義されることに注意してください。

  • 定数のみをそれらのメソッドに移動することができ、値はデザイン時に定義されます。
  • パラメータのプリミティブ (基本) データ型のみが、該当するパラメーター (整数、実数、ブール値、文字列、など。) でサポートされています。

パス

式が構成されたデータ ソースを参照する場合、そのデータ ソースの特定のプリミティブ要素の選択にパス定義を使用できます。 ドット (.) は、構成されたデータ ソースの個別要素を区切るために使用します。 たとえば、現在の ER データ モデルにはレコード一覧を返す InvoiceTransactions データ ソースが含まれます。 InvoiceTransactions レコード構造には、[AmountDebit] および [AmountCredit] が含まれており、数値を返します。 したがって、請求額を計算するには次の式を設計できます。InvoiceTransactions.AmountDebit - InvoiceTransactions.AmountCredit

関数

次のセクションでは、ER の式で使用できる関数について説明します。 すべてのデータ ソースの式のコンテキスト (現在の ER データ モデルまたは ER フォーマット)、および定数は、呼び出し元関数の引数に従って呼び出し元関数のパラメータとして使用できます。 たとえば、現在の ER データ モデルにはレコード一覧を返す InvoiceTransactions データ ソースが含まれます。 InvoiceTransactions レコード構造には、[AmountDebit] および [AmountCredit] が含まれており、数値を返します。 したがって、請求額を計算するには、ER 丸め関数を使用する次の式を設計できます。ROUND (InvoiceTransactions.AmountDebit - InvoiceTransactions.AmountCredit, 2)

サポートされている機能

次の表で、ER データ モデルと ER レポートを設計するために使用できるデータ操作関数を説明します。 この関数の一覧は、固定ではなく開発者によって拡張することができます。 使用できる関数の一覧を表示するには、ER フォーミュラ デザイナーの関数ウィンドウにアクセスします。

日時の関数

機能 説明
ADDDAYS (日時, 日数) 指定された日時値までの指定された日数を追加します。 ADDDAYS (NOW(), 7) は、将来の日時の 7 日を返します。
DATETODATETIME (日付) 日時値に指定された日付値を変換します。 [DATETODATETIME (CompInfo. 'getCurrentDate()')] は、現在の Finance and Operations セッションの日付 12/24/2015 を [12/24/2015 12:00:00 AM] として返します。 この例では、[CompInfo] は、CompanyInfo テーブルを参照する [Finance and Operations/Table] タイプの ER データ ソースです。
NOW () 日時値として現在の Finance and Operations アプリケーション サーバーの日時を返します。
TODAY () 日付値として現在の Finance and Operations アプリケーション サーバーの日付を返します。
NULLDATE () null の日付値を返します。
NULLDATETIME () null の日時値を返します。
DATETIMEFORMAT (日時, 形式) 指定された形式の文字列に指定された日時値を変換します。 (サポートされている形式の詳細については、「標準」と「カスタム」を参照してください。) [DATETIMEFORMAT (NOW(), "dd-MM-yyyy")] は、指定されたカスタム形式に従って、現在の Finance and Operations アプリケーション サーバーの日付 12/24/2015 を ["24-12-2015"] として返します。
DATETIMEFORMAT (日時, 形式, カルチャ) 指定された形式およびカルチャの文字列に指定された日時値を変換します。 (サポートされている形式の詳細については、「標準」と「カスタム」を参照してください)。 [DATETIMEFORMAT (NOW(), "d", "de")] は、選択されたドイツのカルチャに従って現在の Finance and Operations アプリケーション サーバーの日付 12/24/2015 を ["24.12.2015"] として返します。
SESSIONTODAY () 日付値として現在の Dynamics 365 for Finance and Operations セッションの日付を返します。
SESSIONNOW () 日時値として現在の Dynamics 365 for Finance and Operations セッションの日時を返します。
DATEFORMAT (日付, 形式) 指定された形式を使用して日付の文字列形式を返します。 [DATEFORMAT (SESSIONTODAY (), "dd-MM-yyyy")] は、指定されたカスタム形式に従って現在の Dynamics 365 for Finance and Operations セッションの日付 12/24/2015 を [24-12-2015] として返します。
DATEFORMAT (日付, 形式, カルチャ) 指定された形式およびカルチャの文字列に指定された日付値を変換します。 (サポートされている形式の詳細については、「標準」と「カスタム」を参照してください)。 [DATETIMEFORMAT (SESSIONNOW (), "d", "de")] は、選択されたドイツのカルチャに従って現在の Finance and Operations セッションの日付 12/24/2015 を [“24.12.2015”] として返します。
DAYOFYEAR (日付) 1 月 1 日から指定された日までの日数の整数表現を返します。 [DAYOFYEAR (DATEVALUE ("01-03-2016", "dd-MM-yyyy"))] は [61] を返します。 [DAYOFYEAR (DATEVALUE ("01-01-2016", "dd-MM-yyyy"))] は [1] を返します。

データ変換機能

職務 説明
DATETODATETIME (日付) 日時値に指定された日付値を変換します。 [DATETODATETIME (CompInfo. 'getCurrentDate()')] は、現在の Finance and Operations セッションの日付 12/24/2015 を [12/24/2015 12:00:00 AM] として返します。 この例では、[CompInfo] は [CompanyInfo] テーブルを参照する [Finance and Operations/Table] タイプの ER データ ソースです。
DATEVALUE (文字列、形式) 指定された形式を使用して文字列の日付形式を返します。 [DATEVALUE ("21-Dec-2016", "dd-MMM-yyyy")] は、指定されたカスタム形式および既定のアプリケーションの [EN-US] カルチャに従って、日付 12/21/2016 を返します。
DATEVALUE (文字列、形式、カルチャ) 指定された形式とカルチャを使用して文字列の日付形式を返します。 [DATEVALUE ("21-Gen-2016", "dd-MMM-yyyy", “IT”)] は指定されたカスタム形式とカルチャに従って、日付 01/21/2016 を返します。 この機能に対する例外がスローされ、[DATEVALUE ("21-Gen-2016", "dd-MMM-yyyy", “EN-US”)] は、指定された文字列が有効な日付として認識されていないことを通知します。
DATETIMEVALUE (文字列、形式) 指定された形式を使用して文字列の日時形式を返します。 [DATETIMEVALUE ("21-Dec-2016 02:55:00", "dd-MMM-yyyy hh:mm:ss")] は、指定されたカスタム形式と既定のアプリケーションの [EN-US] カルチャに従って、2016 年 12 月 21 日、午前 2 時 55 分 00 秒を返します。
DATETIMEVALUE (文字列、形式、カルチャ) 指定された形式とカルチャを使用して文字列の日時形式を返します。 [DATETIMEVALUE ("21-Gen-2016 02:55:00", "dd-MMM-yyyy hh:mm:ss", “IT”)] は、指定されたカスタム形式およびカルチャに従って 2016 年 12 月 21 日、午前 2 時 55 分 00 秒を返します。 この機能に対する例外がスローされ、[DATETIMEVALUE ("21-Gen-2016 02:55:00", "dd-MMM-yyyy hh:mm:ss", “EN-US”)] は、指定された文字列が有効な日時として認識されていないことを通知します。

リスト機能

職務 説明
SPLIT (入力, 長さ) 指定された入力文字列を指定された長さのサブ文字列に分割します。 新しいリストとして結果を返します。 SPLIT ("abcd", 3) は、[文字列] フィールドがある 2 つのレコードで構成される新しいリストを返します。 最初のレコードのフィールドには、テキスト "abc" が、2 つ目のレコードのフィールドには、テキスト "d" が入力されます。
SPLITLIST (リスト, 番号) それぞれ指定されたレコード数を含むバッチに指定されたリストを分割します。 次の要素を含むバッチの新しいリストとして結果を返します。
  • 通常のリストとしてのバッチ (コンポーネント)
  • 現在のバッチ番号 (BatchNumberコンポーネント)
次の例では、データ ソースは、最大 2 つのレコードを含むバッチに分割された 3 つのレコードのレコード リストとして作成されます。 Data source that is divided into batches バッチに分割されたデータ ソース 設計された形式レイアウトで、データ ソースへのバインディングが作成され、各バッチおよびレコードの個々のノードを示す XML 形式の出力が生成されることを示します。 Format layout that has bindings to a data source 以下は、設計された形式を実行した結果です。 Result of running the format
LIST (レコード 1 [, レコード 2, ...]) 指定された引数から作成される新しいリストを返します。 LIST (model.MainData, model.OtherData) は、空のレコードを返し、フィールドの一覧には、MainData および OtherData のレコード リストのすべてのフィールドが含まれます。
LISTJOIN (リスト 1, リスト 2, ...) 指定された引数のリストから作成した結合されたリストを返します。 LISTJOIN (SPLIT ("abc", 1), SPLIT ("def", 1)) は、6 つのレコードのリストを返し、文字列データ型のフィールドの 1 つに単一の文字が含まれます。
ISEMPTY (リスト) 指定されたリストに要素がない場合、TRUE を返します。 それ以外の場合は、FALSE を返します。
EMPTYLIST (リスト) 指定されたリストをリスト構造のソースとして使用し、空のリストを返します。 EMPTYLIST (SPLIT ("abc", 1)) は、SPLIT 関数で返ってきたリストと同じ構造を持つ新しい空のリストを返します。
FIRST (リスト) 指定されたリストの最初のレコードが空でない場合、そのレコードを返します。 それ以外の場合は、例外をスローします。
FIRSTORNULL (リスト) 指定されたリストの最初のレコードが空でない場合、そのレコードを返します。 それ以外の場合は、null レコードを返します。
LISTOFFIRSTITEM (リスト) 指定されたリストの最初の項目だけを含んだリストを返します。
ALLITEMS (パス) 指定されたパスと一致するすべての項目を表す新しい単純化したリストを返します。 パスは、レコード リスト データ型のデータ ソースの要素への有効なデータ ソース パスとして定義する必要があります。 文字列、日付などのデータ要素へのパスは、ER 式ビルダーのデザイン時間でエラーを生成する必要があります。 データ ソース (DS) として SPLIT("abcdef" , 2) を入力する場合、COUNT( ALLITEMS (DS.Value))3 を返します。
ORDERBY (リスト [, 式 1, 式 2, …]) 式として定義できる引数指定に従って並べ替えて、指定されたリストを返します。 仕入先を VendTable テーブルを参照する ER データ ソースとしてコンフィギュレーションすると、ORDERBY (仕入先, 仕入先.'name()') は昇順の名前で並べ替えられた仕入先のリストを返します。
REVERSE (リスト) 逆の並べ替え順でリストを返します。 仕入先を VendTable テーブルを参照する ER データ ソースとしてコンフィギュレーションすると、REVERSE (ORDERBY (仕入先, 仕入先.'name()')) ) は降順の名前で並べ替えられた仕入先のリストを返します。
WHERE (リスト, 条件) 指定された条件に従ってフィルタ処理して、指定されたリストを返します。 FILTER 関数とは異なり、指定された条件がメモリの一覧に適用されます。 仕入先を VendTable テーブルを参照する ER データ ソースとしてコンフィギュレーションすると、WHERE(Vendors, Vendors.VendGroup = "40") は仕入先グループ 40 に属している仕入先のリストを返します。
ENUMERATE (リスト) 指定されたリストの列挙されたレコードから構成される新しいリストを返し、次の要素を公開します。
  • 通常のリストとして指定されたリスト レコード (コンポーネント)
  • 現在のレコード インデックス (番号 コンポーネント)
次の例では、列挙型データ ソースは、VendTable テーブルを参照する仕入先データ ソースの仕入先レコードの列挙型リストとして作成されます。 Enumerated data source データ バインディングが作成され、列挙型ノードとして個々の仕入先を示す XML 形式の出力が生成されます。 Format that has data bindings これは、設計された形式を実行した結果です。 Result of running the format
COUNT (リスト) 指定されたリストが空でない場合、そのリストのレコードの数を返します。 それ以外の場合は、0 (ゼロ) を返します。 COUNT (SPLIT("abcd" , 3)) は、SPLIT 関数が 2 つのレコードから構成されるリストを作成するため、2 を返します。
LISTOFFIELDS (パス) 次のタイプのうち 1 つの引数から作成されたレコード リストを返します。
  • モデルの列挙
  • 形式列挙
  • コンテナー
作成されたリストは、次のフィールドを持つレコードで構成されます。
  • 氏名
  • ラベル
  • 説明
ラベルおよび説明フィールドは、形式の言語設定に基づいてランタイム値で返します。
次の例は、データ モデルで導入された列挙を示します。 GER LISTOFFIELDS function - model enumeration 以下に例を示します。
  • データ ソースとしてレポートに挿入されるモデル列挙。
  • この関数のパラメーターとしてモデル列挙を使用するように設計されている ER の式。
  • 作成された ER の式を使用してレポートに挿入されるレコード リスト タイプのデータ ソース。
GER LISTOFFIELDS function - in format expression 次の例では、LISTOFFIELDS 機能を使用して作成されたレコードのリストの種類のデータ ソースにバインドされている ER 形式要素を示します。 GER LISTOFFIELDS function - format design これは、設計された形式を実行した結果です。 GER LISTOFFIELDS function - format output 注: ラベルと説明の翻訳文は、親ファイルおよびフォルダー形式要素に対して設定されている言語設定に従って、ER 形式出力で入力されます。
STRINGJOIN (リスト, フィールド名, 区切り記号) 選択した区切り記号で区切られた一覧から連結されたフィールドの値の文字列を返します。 SPLIT (“abc” , 1) をデータ ソース DS として入力した場合、式 STRINGJOIN (DS, DS.Value, “:”) は、「a🅱️c」を返します
SPLITLISTBYLIMIT (リスト, 制限値, 制限のソース) 指定されたリストをサブリストの新しいリストに分割し、レコード リストの内容の結果を返します。 制限値のパラメーターは、元のリストを分割する制限値を指定します。 制限のソースのパラメーターは、合計が増加するステップを指定します。 制限は、制限のソースが定義済み制限を超えると特定のリストの 1 つの項目に適用されません。 次の例では、データ ソースを使用してサンプル形式を示します。 GER SPLITLISTBYLIMIT - formatGER SPLITLISTBYLIMIT - datasources これは、商品のフラット リストを示す形式実行の結果です GER SPLITLISTBYLIMIT - output 次の例は、1 つのバッチに合計重量が 9 を超えない商品を含める必要がある場合、商品アイテムのリストをバッチに表示するために調整されたフォーマットと同じフォーマットを示しています。 GER SPLITLISTBYLIMIT - format 1GER SPLITLISTBYLIMIT - datasources 1 これは、調整された形式を実行した結果です。 GER SPLITLISTBYLIMIT - output 1 注記: 制限は、制限のソース (重量) の値 (11) が定義済みの制限 (9) を超えるため、元のリストの最後の項目に適用されません。 関数 WHERE または対応する形式の要素で有効な式を使用して、レポート生成時 (必要な場合) サブリストを無視 (スキップ) できます。
FILTER (リスト, 条件) クエリの変更によって指定された条件でフィルター処理された特定のリストを返します。 WHERE 関数とは異なり、指定された条件はテーブル レコード タイプのすべての ER データ ソースにデータベース レベルで適用されます。 FILTER (Vendors, Vendors.VendGroup = "40") は、仕入先VendTable テーブルを参照する ER データ ソースとしてコンフィギュレーションされている場合、仕入先のグループ「40」に属している仕入先だけのリストを返します。

論理機能

職務 説明
CASE (式, オプション 1, 結果 1 [, オプション 2, 結果 2] ... [, 既定の結果]) 指定された代替オプションに対して指定された式の値を評価します。 式の値に等しいオプションの結果を返します。 それ以外の場合は、任意で入力された既定の結果 (オプションに続く最後のパラメータ) を返します。 [CASE( DATETIMEFORMAT( NOW(), "MM"), "10", "冬", "11", "冬", "12", "冬", "")] は、Finance and Operations セッションの日付が 10 月~ 12 月である場合に["冬"] という文字列を返します。 それ以外の場合は、空白文字列を返します。
IF (条件, 値 1, 値 2) 特定の条件が満たされているときに指定された値 1 を返します。 それ以外の場合は、値 2 を返します。 値 1 と値 2 がレコードまたはレコード リストの場合、両方のリストが存在するフィールドだけの結果になります。 IF (1=2, "条件を満たしている", "条件を満たしていない") は、"条件を満たしていない" の文字列を返します。
NOT (条件) 指定された条件の取消論理値を返します。 NOT (TRUE)FALSE を返します。
AND (条件 1[, 条件 2, ...]) すべての指定された条件が真の場合、TRUE を返します。 それ以外の場合は、FALSE を返します。 AND (1=1, "a"="a") は、TRUE を返します。 AND (1=2, "a"="a") は、FALSE を返します。
OR (条件 1[, 条件 2, ...]) すべての指定された条件が偽の場合、FALSE を返します。 いずれかの指定された条件が真の場合、TRUE を返します。 OR (1=2, "a"="a") は、TRUE を返します。

算術関数

機能 説明
ABS (数値) 指定された数値の絶対値 (符号なしの数値) を返します。 ABS (-1) は、1 を返します。
POWER (数値, 累乗) 指定された正の数に指定された累乗をした結果を返します。 POWER (10, 2) は、100 を返します。
NUMBERVALUE (文字列、小数点記号、桁区切り記号) 指定された文字列を数字に変換します。 指定された記号は整数と小数点以下の数を区切り、指定された千の位の区切り記号も使用されます。 NUMBERVALUE("1 234,56", ",", " ") は、1234.56 の値を返します。
VALUE (文字列) 指定された文字列を数字に変換します。 コンマとドット (.) が小数点の区切り記号とみなされ、先頭のハイフン (-) は負の記号として使用されます。 他の数値以外の文字が指定された文字列にある場合、例外をスローします。 VALUE ("1 234,56") は例外をスローします。
ROUND (数値, 小数点以下の桁数) 指定された小数点以下の桁数に丸めて、指定された数値を返します。
  • 指定した小数値が 0 (ゼロ) より大きい場合、指定された数字は指定された小数点以下の桁数で四捨五入されます。
  • 指定した小数値が 0 (ゼロ) の場合、指定された数字は最も近い整数に四捨五入されます。
  • 指定した小数値が 0 (ゼロ) より小さい場合、指定された数字は小数点より左で四捨五入されます。
ROUND (1200.767, 2) は、小数点第 2 位で四捨五入され、1200.77 を返します。 ROUND (1200.767, -3) は、1,000 の最も近い倍数に四捨五入され、1000 を返します。
ROUNDDOWN (数値, 小数点以下の桁数) 指定された小数点以下の桁数で (ゼロ方向に) 切り捨てて、指定された数値を返します。 注: この関数は、ROUND のように機能しますが、常に指定した数字を切り捨てます。 ROUNDDOWN (1200.767, 2) は、小数点第 2 位で切り捨てられ、1200.76 を返します。 ROUNDDOWN (1700.767, -3) は、1,000 の最も近い倍数に切り捨てられ、1000 を返します。
ROUNDUP (数値, 小数点以下の桁数) 指定された小数点以下の桁数で (ゼロとは逆方向に) 切り上げて、指定された数値を返します。 注: この関数は、ROUND のように機能しますが、常に指定した数字を切り上げます。 ROUNDUP (1200.763, 2) は、小数点第 2 位で切り上げられ、1200.77 を返します。 ROUNDUP (1200.767, -3) は、1,000 の最も近い倍数に切り上げられ、2000 を返します。

データ変換機能

職務 説明
VALUE (文字列) 指定された文字列を数字に変換します。 コンマとドット (.) が小数点の区切り記号とみなされ、先頭のハイフン (-) は負の記号として使用されます。 他の数値以外の文字が指定された文字列にある場合、エラーが発生します。 VALUE ("1 234,56") は例外をスローします。
NUMBERVALUE (文字列、小数点記号、桁区切り記号) 指定された文字列を数字に変換します。 指定された記号は整数と小数点以下の数を区切り、指定された千の位の区切り記号も使用されます。 NUMBERVALUE("1 234,56", ",", " ") は、1234.56 の値を返します。
INTVALUE (文字列) 文字列の整数表現を返します。 任意の利用可能な小数部分は切り捨てられます。 [INTVALUE (「100.77」)] は [100] を返します。
INTVALUE (番号) 番号の整数表現を返します。 任意の利用可能な小数部分は切り捨てられます。 [INTVALUE (-100.77)] は [-100] を返します。
INT64VALUE (文字列) 文字列の int64 表現を返します。 任意の利用可能な小数部分は切り捨てられます。 [INT64VALUE (“22565422744”)] は、[22565422744] を返します。
INT64VALUE (数値) 番号の int64 表現を返します。 任意の利用可能な小数部分は切り捨てられます。 [INT64VALUE (22565422744.00)] は、[22565422744] を返します。

レコード機能

職務 説明
NULLCONTAINER (リスト) 指定されたレコード リストまたはレコードと同じ構造を持つ null レコードを返します。 注:この関数は廃止されています。 代わりに EMPTYRECORD を使用します。 NULLCONTAINER (SPLIT ("abc", 1)) は、SPLIT 関数で返ってきたリストと同じ構造を持つ新しい空のレコードを返します。
EMPTYRECORD (レコード) 指定されたレコード リストまたはレコードと同じ構造を持つ null レコードを返します。 注記: null レコードは、すべてのフィールドが空の値 (数字の場合 0 [ゼロ]、文字列の場合、空の文字列など) を持つレコードです。 EMPTYRECORD (SPLIT ("abc", 1)) は、SPLIT 関数で返ってきたリストと同じ構造を持つ新しい空のレコードを返します。

テキスト関数

機能 説明
UPPER (文字列) 大文字に変換して、指定された文字列を返します。 UPPER("Sample") は、"SAMPLE" を返します。
LOWER (文字列) 小文字に変換して、指定された文字列を返します。 LOWER ("Sample") は、"sample" を返します。
LEFT (文字列, 文字数) 指定された文字列の先頭から指定された数の文字を返します。 LEFT ("Sample", 3) は、"Sam" を返します。
RIGHT (文字列, 文字数) 指定された文字列の末尾から指定された数の文字を返します。 RIGHT ("Sample", 3) は、"ple" を返します。
MID (文字列, 開始位置, 文字数) 指定された文字列の指定された位置から始まる指定された数の文字を返します。 MID ("Sample", 2, 3) は、"amp" を返します。
LEN (文字列) 指定された文字列の文字数を返します。 LEN ("Sample") は、6 を返します。
CHAR (数値) 指定された Unicode 番号で参照される文字列を返します。 CHAR (255) は、"ÿ" を返します。 注記: 返される文字列は親ファイル形式の要素で選択したエンコードによって異なります。 サポートされているエンコードの一覧は、エンコード クラス トピックで参照できます。
CONCATENATE (文字列 1 [, 文字列 2, …]) 指定されたすべての文字列を 1 つの文字列に結合して返します。 CONCATENATE ("abc", "def") は、"abcdef" を返します。 注記:"abc" & "def" でも "abcdef" を返します。
TRANSLATE (文字列, パターン, 置換) 指定されたパターン文字列でのすべての文字の発生が、指定された置換文字列の対応する位置にある文字で置換され、指定された文字列を返します。 TRANSLATE ("abcdef", "cd", "GH") は、パターン "cd" を文字列 "GH" に置換して、"abGHef" を返します。
REPLACE (文字列, パターン, 置換, 正規表現フラグ) 指定された正規表現フラグがである場合、この関数のパターン引数として指定される正規表現を適用して変更し、指定された文字列を返します。 この式は、置換する必要のある文字列を検索するために使用されます。 指定された置換引数の文字は、見つかった文字を置換するために使用されます。 指定された正規表現フラグがである場合、この関数は TRANSLATE のように機能します。 REPLACE ("+1 923 456 4971", "[^0-9]", "", true) は、すべての数値以外の記号を削除する正規表現を適用し、"19234564971" を返します。 REPLACE ("abcdef", "cd", "GH", false) は、パターン "cd" を文字列 "GH" に置換して、"abGHef" を返します。
TEXT (入力) 現在の Finance and Operations インスタンスのサーバーのロケール設定に従って書式設定されるテキスト文字列に変換して、指定された入力を返します。 実数型の値では、文字列変換が小数点第 2 位に制限されます。 Finance and Operations インスタンスのサーバーのロケールが [EN-US] で定義されている場合、[TEXT (NOW ())] は現在の Finance and Operations セッションの日付 12/17/2015 をテキスト文字列 ["12/17/2015 07:59:23 AM"] として返します。 TEXT (1/3) は、"0.33" を返します。
FORMAT (文字列 1, 文字列 2[, 文字列 3, ...]) すべての %Nn 番目の引数に置き換えて書式設定し、指定された文字列を返します。 引数は文字列です。 パラメーターに引数が指定されない場合は、文字列内では "%N" として返されます。 実数型の値では、文字列変換が小数点第 2 位に制限されます。 この例では、PaymentModel データ ソースは 顧客コンポーネント経由で顧客のリスト、[ProcessingDate] フィールド経由で処理日の値を返します。 PaymentModel data source 選択した顧客の電子ファイルを生成するよう設計されている ER 形式では、PaymentModel がデータ ソースとして選択され、プロセス フローを制御します。 選択した顧客がレポートが処理される日付に停止されている場合、例外がエンド ユーザーにスローされます。 このタイプの処理制御のために設計された式は、次のリソースを使用できます。
  • 次のテキストを含む Finance and Operations ラベル SYS70894:
    • EN-US 言語の場合: "Nothing to print"
    • DE 言語の場合: "Nichts zu drucken"
  • 次のテキストを含む Finance and Operations ラベル SYS18389:
    • EN-US 言語の場合: "Customer %1 is stopped for %2."
    • DE 言語の場合: "Debitor '%1' wird für %2 gesperrt."
設計できる式を次に示します。FORMAT (CONCATENATE (@"SYS70894", ". ", @"SYS18389"), model.Customer.Name, DATETIMEFORMAT (model.ProcessingDate, "d")) レポートが 2015 年 12 月 17 日に EN-US カルチャおよび EN-US 言語で Litware Retail の顧客に対して処理される場合、この式はエンド ユーザーへの例外メッセージとして示すことができる次のテキストを返します。"Nothing to print. 顧客の Litware Retail は 2015 年 12 月 17 日に停止されます。" 同じレポートが 2015 年 12 月 17 日に [DE] カルチャおよび [DE] 言語で [ Litware Retail の顧客] に対して処理される場合、この式は別の日付形式を使用する次のテキストを返します。"Nichts zu drucken. Debitor ' Litware Retail' wird für 17.12.2015 gesperrt."注記: 次の構文は ER の式でラベルに適用されます。
  • Finance and Operations リソースのラベルの場合: @"X"、X はアプリケーション オブジェクト ツリー (AOT) のラベル ID です
  • ER コンフィギュレーションに存在するラベルの場合: @"GER_LABEL:X"、X は、ER コンフィギュレーションのラベル ID です
NUMBERFORMAT (数値, 形式) 指定された形式で指定された数値の文字列形式を返します。 (サポートされている形式の詳細については、「標準」と「カスタム」を参照してください)。この関数が実行されるコンテキストが、数値の書式設定に使用されるカルチャを決めます。 EN-US カルチャの場合、NUMBERFORMAT (0.45, "p")"45.00 %" を返します。 NUMBERFORMAT (10.45, "#")"10" を返します。
NUMERALSTOTEXT (数, 言語, 通貨, 通貨名を印刷フラグ, 小数点) 定義された言語でのテキスト文字列で綴られた (変換された) 数字を返します。 言語コードはオプションです。空の文字列として定義されている場合、連続したコンテキストの言語コード (生成するフォルダーまたはファイルで指定) が代わりに使用されます。 通貨コードはオプションです。 空の文字列として定義されている場合、会社基本通貨が取得されます。 通貨名を印刷パラメーターおよび小数点パラメーターは次の言語コードに対してのみ分析されることに注意してください: CSETHULTLVPLRU。 [通貨名を印刷] パラメーターは、通貨の語形変化にサポートする国のコンテキストを持つ Finance and Operations の会社に対してのみ分析されることに注意してください。 NUMERALSTOTEXT (1234.56, "EN", "", false, 2) は、「One Thousand Two Hundred Thirty Four and 56」を返します NUMERALSTOTEXT (120, "PL", "", false, 0) は、「Sto dwadzieścia」を返します NUMERALSTOTEXT (120.21, "RU", "EUR", true, 2) は、「Сто двадцать евро 21 евроцент」を返します
PADLEFT (文字列, 長さ, パディング文字) 現在の文字列の先頭が指定の文字でパディングされた指定の長さの文字列を返します。 PADLEFT (“1234”, 10, “ “) は、テキスト文字列「 1234」を返します。
TRIM (文字列) 先頭と末尾のスペースを切り捨て、単語間の複数のスペースを削除してから、指定されたテキストを返します。 [TRIM (「 サンプル テキスト 」)] は [「サンプル テキスト」。] を返します
GETENUMVALUEBYNAME (列挙データ ソースのパス、列挙値のラベル テキスト) この列挙ラベルの指定されたテキストで、指定された列挙データ ソースの値を返します。 次の例は、データ モデルで導入された列挙 ReportDirection を示します。 列挙値のラベルが定義されていることに注意してください。 Available values for data model enumeration

以下に例を示します。

  • データ ソース [$Direction] としてレポートに挿入されるモデル列挙 [ReportDirection]
  • この関数のパラメーターとしてモデル列挙を使用するように設計されている ER の式 [$IsArrivals]。 この式の値は [TRUE] です。
Example of data model enumeration

データ変換機能

職務 説明
TEXT (入力) 現在の Finance and Operations インスタンスのサーバーのロケール設定に従って書式設定されるテキスト文字列に変換して、指定された入力を返します。
実数型の値では、文字列変換が小数点第 2 位に制限されます。 Finance and Operations インスタンスのサーバーのロケールが [EN-US, TEXT (NOW ())] として定義されている場合、現在の Finance and Operations セッションの日付 12/17/2015 はテキスト文字列 ["12/17/2015 07:59:23 AM"] として返されます。
[TEXT (1/3) は「0.33」を返します]。
QRCODE (文字列) 指定された文字列の QR コード画像を base64 バイナリ形式で返します。 [QRCODE (「サンプル テキスト」)] は [U2FtcGxlIHRleHQ=] を返します。

データ収集機能

職務 説明
FORMATELEMENTNAME () 現在の形式の要素の名前を返します。 現在のファイルの出力の詳細を収集フラグを無効にすると空の文字列が返されます。 これらの関数の用途の詳細については、ER 棚卸および集計のために出力された形式の使用 (IT サービス/ソリューション コンポーネントの取得/開発業務プロセスの一部) タスク ガイドを参照してください。
SUMIFS (集計のためのキー文字列, 基準範囲 1 の文字列, 基準値 1 の文字列 [, 基準範囲 2 の文字列, 基準値 2 の文字列, …]) この形式の実行中に収集された、入力した条件 (範囲と値のペア) を満たす XML のノード (キーとして定義された名前を持つ) の合計値を返します。 現在のファイルの出力の詳細を収集フラグを無効にすると 0 が返されます。
SUMIF (集計のためのキー文字列, 基準範囲の文字列, 基準値の文字列) この形式の実行中に収集された、入力した条件 (範囲と値) を満たす XML のノード (キーとして定義された名前を持つ) の合計値を返します。 現在のファイルの出力の詳細を収集フラグを無効にすると 0 が返されます。
COUNTIFS (基準範囲 1 の文字列, 基準値 1 の文字列 [, 基準範囲 2 の文字列, 基準値 2 の文字列, …]) この形式の実行中に収集された、入力した条件 (範囲と値のペア) を満たす XML のノードの数を返します。 現在のファイルの出力の詳細を収集フラグを無効にすると 0 が返されます。
COUNTIF (基準範囲の文字列, 基準値の文字列) この形式の実行中に収集された、入力した条件 (範囲と値) を満たす XML のノードの数を返します。 現在のファイルの出力の詳細を収集フラグを無効にすると 0 が返されます。
COLLECTEDLIST (基準範囲 1 の文字列, 基準値 1 の文字列 [, 基準範囲 2 の文字列, 基準値 2 の文字列, …]) この形式の実行中に収集された、入力した条件 (範囲と値) を満たす XML のノードの値のリストを返します。 現在のファイルの出力の詳細を収集フラグを無効にすると空のリストが返されます。

その他 (ビジネス ドメインの特定の) 関数

職務 説明
CONVERTCURRENCY (数量, 換算元の通貨, 換算先の通貨, 日付, 会社) 特定の日付で指定された Finance and Operations の会社の設定を使用して換算元の通貨から換算先の通貨に指定された金額を変換します。 CONVERTCURRENCY (1, "EUR", "USD", TODAY(), "DEMF") は、DEMF 会社の設定に基づいて現在のセッションの日付の 1 ユーロに相当する額を米ドルで返します。
ROUNDAMOUNT (数値, 小数点以下の桁数, 丸めルール) 指定された丸めルールと小数点以下の桁数に従って指定された数量を丸めます。 [注記:] 丸めルールは Finance and Operations の [RoundOffType] 列挙の値として指定する必要があります。 model.RoundOff パラメーターが*切り捨てに設定されている場合、ROUNDAMOUNT (1000.787, 2, model.RoundOff)* は、値 1000.78 を返します。 model.RoundOff パラメータが標準または切り上げに設定されている場合、ROUNDAMOUNT (1000.787, 2, model.RoundOff) は、値 1000.79 を返します。
CURCredRef (数字) 指定された請求書番号の数字に基づいて、送金受取人参照情報を返します。 CURCredRef ("VEND-200002") は、"2200002" を返します。
MOD_97 (数字) 指定された請求書番号の数字に基づいて、MOD97 式として送金受取人参照情報を返します。 MOD_97 ("VEND-200002") は、"20000285" を返します。
ISOCredRef (数字) 指定された請求書番号の数字とアルファベット記号に基づいて、ISO 送金受取人参照情報を返します。 注:ISO 準拠ではないアルファベットの記号を削除するには、入力パラメータを変換してからこの関数に渡す必要があります。 ISOCredRef ("VEND-200002") は、"RF23VEND-200002" を返します。
CN_GBT_AdditionalDimensionID (文字列, 番号) 追加の財務分析コード ID を取得します。 分析コードはコンマで区切られた ID としてこの文字列に表されます。 番号は、この文字列で要求された分析コードの順序コードを定義します。 CN_GBT_AdditionalDimensionID ("AA,BB,CC,DD,EE,FF,GG,HH",3) は、「CC」を返します
GetCurrentCompany () 現在ユーザーがログインしている法人 (会社) のコードのテキスト表現を返します。 [GETCURRENTCOMPANY ()] は、ユーザーがログインした Finance and Operations の会社 [Contoso Entertainment System USA] に対する [USMF] を返します。
CH_BANK_MOD_10 (数値) 指定された請求書番号の数値に基づいて、MOD10 式として送金受取人参照情報を返します。 CH_BANK_MOD_10 ("VEND-200002") は、3 を返します
FA_SUM (固定資産コード, 価値モデル コード, 開始日, 終了日) 期間の固定資産額の準備済データ コンテナーを返します。 FA_SUM ("COMP-000001", “現行”, Date1, Date2) は、Date1 から Date2 の期間中で、価値モデル「現行」の固定資産「COMP-000001」の準備済データ コンテナーを返します。
FA_BALANCE (固定資産コード, 価値モデル コード, レポート年度, 報告日) 固定資産残高の準備済データ コンテナーを返します。 レポート年度は、Finance and Operations の列挙の値 [AssetYear] として指定される必要があります。 「FA_SUM ("COMP-000001", “現行”, AxEnumAssetYear.ThisYear, SESSIONTODAY ())」は、現在の 365 for Finance and Operations セッションの日付で価値モデル「現行」である固定資産「COMP-000001」の残高の準備済データ コンテナーを返します。
TABLENAME2ID (文字列) 指定されたテーブル名のテーブル ID の整数表現を返します。 [TABLENAME2ID (「イントラスタット」)] は [1510] を返します。
ISVALIDCHARACTERISO7064 (文字列) 指定された文字列が有効な国際銀行番号 (IBAN) を表す場合、ブール値 [TRUE] を返します。 それ以外の場合は、ブール値 [FALSE] を返します。 [ISVALIDCHARACTERISO7064 ("AT61 1904 3002 3457 3201")] は [TRUE] を返します。 [ISVALIDCHARACTERISO7064 ("AT61")] は [FALSE] を返します。

関数の一覧の拡張

ER では ER の式で使用される関数の一覧を拡張できます。 これにはエンジニアリングの実績がいくらか要求されます。 詳細については、「電子申告関数の一覧の拡張」を参照してください。

参照

電子申告の概要

電子申告 (ER) 関数の一覧の拡張