電子申告 (ER) のフォーミュラ デザイナー
この記事では、電子申告 (ER) でのフォーミュラ デザイナーの使用方法を説明します。 ER の特定の電子ドキュメントの形式を設計する場合、データを変換する式を使用して、ドキュメントのフルフィルメントおよび書式設定の要件を満たすことができます。 これらの式は、Microsoft Excel の式と類似しています。 計算式では、テキスト、日時、数学、論理式、詳細、データ種類の変換関数、および他のビジネス ドメイン固有の関数など、さまざまなタイプの関数がサポートされています。
フォーミュラ デザイナーの概要
ER はフォーミュラ デザイナーをサポートします。 したがって、設計時に次のタスクに使用できる式を実行時にコンフィギュレーションできます。
- アプリケーション データベースから受信し、ER 形式のデータ ソースとして設計された ER データ モデルに入力する必要があるデータを変換します。 (たとえば、これらの変換にはフィルタ処理、グループ化、およびデータ型の変換が含まれる可能性があります。)
- 特定の ER フォーマットのレイアウトや条件に従って電子ドキュメントを生成するため、フォーマット データを送信する必要があります。 (たとえば、書式設定は、要求された言語またはカルチャ、またはエンコードに従って行われる可能性があります)。
- 電子ドキュメントを作成するプロセスを制御します。 (たとえば、式は、実行しているデータによってフォーマットの特定の要素の出力を有効または無効にできます。これらはドキュメントの作成プロセスを中断したり、またはユーザーにメッセージをスローすることもできます。)
次のいずれかのアクションを実行する際 フォーミュラ デザイナー ページを開くことができます。
- データ モデルのコンポーネントへのデータ ソース項目のバインド。
- 形式コンポーネントへのデータ ソース項目のバインド。
- データ ソースの一部である計算済フィールドのメンテナンス完了。
- ユーザー入力パラメーターの可視性条件と編集可能条件を定義します。
- ユーザー入力パラメーターの規定値を定義します。
- 形式の変換の設計。
- 形式のコンポーネントに有効にする条件の定義。
- 形式のファイル コンポーネントに対するファイル名の定義。
- プロセス制御検証の条件の定義。
- プロセス制御検証のメッセージ テキストの定義。
データ バインディング
ER フォーミュラ デザイナーを使用して、データ ソースから受信したデータを変換する式を定義し、実行時に次の方法でデータ コンシューマーにデータを入力できるようにすることができます。
- アプリケーション データ ソースとランタイム パラメーターから ER データ モデルへ
- ER データ モデルから ER 形式へ
- アプリケーション データ ソースとランタイム パラメーターから ER 形式へ
次の図は、このタイプの式の設計を示しています。 この例では、式はイントラスタット テーブルの Intrastat.AmountMST フィールドの値を小数点以下 2 桁に丸め、丸めた値を返します。
次の図は、このタイプの式を使用できる方法を示しています。 この例では、入力された式の結果が、税申告モデル データ モデルの Transaction.InvoicedAmount コンポーネントに反映されます。
実行時に、デザインされた計算式 ROUND (Intrastat.AmountMST, 2)
は、イントラスタット テーブルの各レコードの AmountMST フィールドの値を小数点以下 2 桁に丸めます。 税レポート データ モデルの Transaction.InvoicedAmount コンポーネントで丸めの値を入力します。
データの書式設定
ER フォーミュラ デザイナーは、電子ドキュメント生成の一部として送信できるよう、データ ソースから受信されたデータを書式設定する式を定義するのに使用できます。 フォーマットに対して再使用すべき、標準的なルールとして適用されるはずの書式設定があります。 この場合、フォーマット式を持つ名前付きの変換として、書式設定のコンフィギュレーションで 1 度の書式設定を導入することができます。 この名前付き変換は、作成したフォーマット式に従って出力を書式設定する必要がある多くの形式コンポーネントに後でリンクできます。
次の図は、このタイプの変換の設計を示しています。 この例では、TrimmedString 変換は、先頭および末尾にあるスペースを削除することにより 文字列 データ型の受信データを切り詰めます。 その後、切り詰めた文字列を返します。
次の図は、このタイプの変換を使用できる方法を示しています。 この例では、いくつかの形式のコンポーネントは、実行時に生成する電子ドキュメントにテキストを出力として送信します。 これらすべての形式のコンポーネントは、名前で TrimmedString 変換へと参照します。
前の図のpartyName コンポーネントなどの形式コンポーネントが TrimmedString変換を参照する場合、変換は生成する電子ドキュメントへの出力としてテキストを送信します。 このテキストには、先頭および末尾にあるスペースは含まれません。
個別に適用する必要のある形式の場合、特定形式コンポーネントのバインディングの個別の式として導入できます。 次の図は、このタイプの式を示しています。 この例では、partyType の形式コンポーネントは、データ ソースの Model.Company.RegistrationType フィールドからの受信データを大文字テキストに変換する式を介してデータ ソースにバインドされます。 式は、そのテキストを出力として、電子ドキュメントに送信します。
プロセス フローの制御
ER フォーミュラ デザイナーは、電子ドキュメントを生成するプロセス フローを制御する式を定義するために使用できます。 実行できるタスクは次のとおりです。
- ドキュメント作成のプロセスを停止する必要がある場合を判断する条件を定義します。
- 停止したプロセスに対してユーザーにメッセージを作成する式を指定するか、または報告書作成のプロセスに関する実行ログ メッセージをスローする式を指定します。
- 電子ドキュメント生成のファイル名と作成の管理条件を指定します。
プロセス フロー制御の各ルールは、個々の検証として設計されています。 次の図は、このタイプの検証を示しています。 この例のコンフィギュレーションの説明を次に示します。
- 検証は、XML ファイルの生成中に INSTAT ノードが作成されたときに評価されます。
- トランザクションのリストが空である場合、検証の実行プロセスを停止し、FALSE を返します。
- 検証では、ユーザーの優先的に使用する言語でラベル SYS70894 のテキストを含むエラー メッセージを返します。
ER フォーミュラ デザイナーを使用して、生成する電子ドキュメントのファイル名を生成し、ファイル作成プロセスを制御することもできます。 次の図は、このタイプのプロセス フロー制御の設計を示しています。 この例のコンフィギュレーションの説明を次に示します。
- model.Intrastat データ ソースからのレコードの一覧はバッチに分かれています。 バッチごとに、最大1,000 レコードが含まれています。
- 出力は、作成されたバッチごとに XML 形式のファイル 1 つを含む zip ファイルを作成します。
- 式はファイル名とファイル名拡張子を連結して、生成する電子ドキュメントにファイル名を返します。 2 番目のバッチ以降すべてのバッチには、ファイル名の接尾語としてバッチ ID が表示されます。
- 式は、(TRUE を返すことで) 少なくともレコードを 1 つ含むバッチのファイル作成プロセスを有効にします。
ドキュメント コンテンツ コントロール
ER フォーミュラ デザイナーを使用して、実行時に生成される電子ドキュメントに入れるデータを制御する式を構成できます。 式は、実行しているデータおよび構成されたロジックに応じて、フォーマットの特定の要素の出力を有効または無効にできます。 これらの式は、操作デザイナー ページのマッピング タブの有効フィールドで、単一のフォーマット要素に対して入力できます。 ブール値を返すロジック条件として式を入力できます。
- 条件が True を返す場合、現在のフォーマット要素が実行されます。
- 条件が False を返す場合、現在のフォーマット要素はスキップされます。
次の図は、このタイプの式を示しています。 (Microsoft が提供する ISO20022 口座振替 (NO) バージョン 11.12.11 例として使用されます。) XMLHeader 形式コンポーネントは、ISO 20022 XML メッセージ標準に従って、口座振替メッセージの構造を記述するようにコンフィギュレーションされています。 XMLHeader/Document/CstmrCdtTrfInitn/PmtInf/CdtTrfTxInf/RmtInf/Ustrd 形式コンポーネントは、生成されたメッセージに Ustrd XML 要素を追加し、送金情報を非構造化形式で次の XML 要素のテキストとして配置するように構成されています。
- PaymentNotes コンポーネントは、支払票のテキストを生成するために使用されます。
- DelimitedSequence コンポーネントは、現在の口座振替の決済に使用されるコンマ区切りの請求書番号を生成します。
メモ
PaymentNotes および DelimitedSequence コンポーネントは疑問符を使用してラベル付けされます。 疑問符は、コンポーネントの使用が条件付きであることを示します。 この場合、コンポーネントの使用は次の条件に基づいています。
PaymentNotes コンポーネントに定義されている
@.PaymentsNotes <> ""
式は、(TRUE を返すことにより) そのテキストが現在の口座振替に対して空白でない場合、Ustrd XML 要素に支払票のテキストを入力することができます。DelimitedSequence コンポーネント用に定義された
@.PaymentsNotes = ""
式により、(TRUE を返すことにより) その口座振替の支払票のテキストが空白の場合、現在の口座振替の決済に使用される請求書番号のコンマ区切りリストをUstrd XML 要素に入力することができます。
この設定に基づいて、各債務者の支払いに対して生成されるメッセージ Ustrd XML 要素には、支払票のテキスト、またはそのテキストが空白の場合は、支払い決済に使用される請求書番号のコンマ区切りのリストが含まれます。
フォーミュラ記述の支援
データ ソース ナビゲーター
構造化されたデータ ソースの要素を表すフォーミュラを編集できます。 構造化されたデータ ソースの要素へのパスを 相対パス として表示するように ER パラメーターを構成した場合、使用される階層ツリー構造の絶対パスの残りの部分ではなく、"at" (@) 記号がフォーミュラに 表示 されます。 絶対パスのこの残りの部分は、編集可能な要素の親要素を指しています。 Finance バージョン 10.0.30 以降 では、フォーミュラ デザイナー ページの データ ソース ウィンドウで、@ に移動 オプションを選択して、データ ソース ツリーのカーソルを編集可能な要素の親である要素に配置できます。 折りたたまれたすべての昇順要素の構造は、必要に応じて自動的かつ再帰的に展開されます。 この展開により、編集可能な要素の基本要素をすばやく視覚化し、データ ソース ツリー内の編集可能な要素の兄弟を観察して、必要に応じてそれぞれを編集可能なフォーミュラで使用することができます。
データ ソースの選択
フォーミュラ デザイナー ページの左側にある データ ソース ウィンドウで、編集可能なフォーミュラに入力するデータ ソースの要素を選択します。 次に データ ソースの追加 を選択します。 選択した要素が編集可能なフォーミュラのテキストに追加されます。
ヒント
既定のフォーミュラ エディターで データ ソースの追加 オプションを使用すると、選択した要素が常にフォーミュラ テキストの末尾に追加されます。 詳細なフォーミュラ エディター で同じ操作を行うと、選択した要素が現在のカーソル位置にあるフォーミュラ テキストに挿入されます。
組み込み関数の選択
フォーミュラ デザイナー ページの右側にある 関数 ウィンドウで、編集可能なフォーミュラに入力する ER 組み込み関数を選択します。 次に 関数の追加 を選択します。 選択した関数が編集可能なフォーミュラのテキストに追加されます。
ヒント
既定のフォーミュラ エディターで 関数の追加 オプションを使用すると、選択した関数が常にフォーミュラ テキストの末尾に追加されます。 詳細なフォーミュラ エディター で同じ操作を行うと、選択した関数が現在のカーソル位置にあるフォーミュラ テキストに挿入されます。
構成された式の検証
フォーミュラ デザイナー ページで, テストを選択して、構成された式の動作を検証します。
式の引数の値が必要な場合、フォーミュラ デザイナー ページからテスト式ダイアログ ボックスを開くことができます。 ほとんどの場合、構成されたバインドは設計時に実行されないため、これらの引数は手動で定義する必要があります。 フォーミュラ デザイナー ページで, テスト結果タブには、構成された式の実行結果が表示されます。
次の例は、対外貿易ドメイン用に構成された式をテストして、イントラスタット商品コードに数字のみが含まれていることを確認する方法を示しています。
この式をテストする場合、テスト式ダイアログ ボックスを使用して、テスト用のイントラスタット商品コードの値を指定できます。
イントラスタット商品コードを指定して OK を選択すると、フォーミュラ デザイナー ページのテスト結果タブには、構成された式の実行結果が表示されます。 その後、結果が受け入れられるかどうかを評価できます。 結果が受け入れられない場合は、式を更新して再度テストできます。
一部の数式は設計時にテストできません。 たとえば、式は、テスト結果タブに表示できないデータ種類の結果を返す場合があります。この場合、式をテストできないことを示すエラー メッセージが表示されます。