次の方法で共有


Application update 10.0.11 での電子申告フレームワーク API の変更

この記事では、Microsoft Dynamics 365 Finance バージョン 10.0.11 で電子申告 (ER) フレームワークのアプリケーション プログラミング インターフェイス (API) がどのように変更されたかについて説明します。

送信ドキュメントの生成に対して形式マッピングを実行する API

出荷ドキュメント を生成するには、ER 形式マッピングを実行する必用があります。 ほとんどの ER 形式のマッピングには、データ モデル 型のデータ ソースが含まれています。 実行時には、特定の モデル マッピングが、データソースが設定されている データモデル の実装として識別される必要があります。

ER フレームワークの 初期 API を使用してソースコードの実行ポイントから ER 形式のマッピングを呼び出すと、モデル マッピング コンポーネントを含む、対応する ER 構成の設定(既定のモデルマッピング フラグと国/地域コード)を考慮したモデル マッピングが見つかります。 詳細については、国のコンテキスト依存 ER モデル マッピングを構成する を参照してください。

場合によっては、X++ コードの特定の場所から ER 形式のマッピングが呼び出された場合、最も適切なモデル マッピングを検索するための追加の基準を指定する必要があります。 たとえば、ER 形式マッピングは、2 つのモデル マッピングを持つデータ モデルを使用して設定されています。 最初のモデルマッピングは、現在使用可能なすべての実行ポイントから、この ER 形式のマッピングを呼び出すたびに円滑に実行されるようにするため、既定のモデルマッピングとしてマークされています。 X + + では、この ER 形式マッピングを呼び出す新たな実行ポイントを実装します。 この方法では、この呼び出しの他の条件(指定された引数や現在のアプリケーション インスタンスの利用可能なリソースなど)によって、そのモデルマッピングの方がより良いパフォーマンスを発揮すると判断されるため、データモデルに2番目のモデルマッピングを使用するように強制します。

この設定を完了するには、統合ポイントを使用してモデル マッピングを構成します。 データソース ウィンドウでは、この統合ポイントのコンポーネントとして、モデル マッピングの単一のデータソースを選択できます。 続いて 編集 を選択して、このデータ ソースのプロパティを変更します。

編集を選択して、このデータ ソースのプロパティを変更します。

データソースのプロパティ ダイアログ ボックスで、統合ポイント オプションを はい に設定すると、データソースを統合ポイントのコンポーネントとしてマークできます。

統合ポイント オプションの設定。

ER フレームワークの新しい API を使用して ER 形式のマッピングを呼び出し、特定の統合ポイントを含むように設定されたモデル マッピングを強制的に使用することができます。 次の例では、この新しい API の使用方法を解説します。

using Microsoft.Dynamics365.LocalizationFramework;
using Microsoft.Dynamics365.LocalizationFramework.XppSupportLayer;

class ERIntegrationPointCodeSamples extends RunBaseBatch
{
    private ERFormatMappingId formatMappingId;

    public void run()
    {
        var runner = ERObjectsFactory::createFormatMappingRunByFormatMappingId(this.formatMappingId, 'OutboundFileName', true);
        var integration_point = new ERIntegrationPointFactory().WithObjectIntegrationPoint('SalesInvoiceDP').ToIntegrationPoint();
        /// new ERIntegrationPointFactory().WithTableRecordsIntegrationPoint(tableName)
        /// new ERIntegrationPointFactory().WithTableIntegrationPoint(tableName)
        /// new ERIntegrationPointFactory().WithObjectIntegrationPoint(className)
        /// new ERIntegrationPointFactory().WithClassIntegrationPoint(className)
        runner.withIntegrationPoint(integration_point).run();
    }
}

メモ

  • モデルマッピング統合ポイントのコンポーネントとしてマークできるのは、テーブル レコードテーブルクラスオブジェクトタイプのデータソースのみです。
  • 現在、モデルマッピング統合ポイントの構成要素として使用できるデータ ソースは単一のものに限られています。
  • その他の既存の基準に加えて、統合ポイントは最適なモデル マッピングの選択時に考慮されます。
  • 実行時に、実行中の ER 形式のマッピングに適用可能なモデル マッピングの中から、要求された統合ポイントを持つモデル マッピングが複数検出された場合は、エラーが発生します。

フォーマット マッピング ルックアップを表示する API

ER フレームワークの 初期の API は、ER 形式のマッピングを検索するために使用されます。 データ モデル名とコンテナー名をテキスト定数として使用します。 このルックアップでは、以下すべての条件を満たす one data model の ER 形式マッピングのみを提供しています:

  • この名前は指定されています。
  • その基準は ER 構成リストで最初に満たされています。

ER フレームワークの新しい API により、構成された統合ポイントを使用して同じルックアップを実装することができます。 このルックアップは、指定された統合ポイントを持つモデル マッピングが利用可能な データモデル タイプのデータソースを含むすべての ER 形式のマッピングを提供します。 このルックアップで提供される ER 形式のマッピングは、データソースとして異なるモデル マッピングを使用することができます。

次の例では、この新しい API の使用方法を解説します。

using Microsoft.Dynamics365.LocalizationFramework;
using Microsoft.Dynamics365.LocalizationFramework.XppSupportLayer;

class ERIntegrationPointCodeSamples extends RunBaseBatch
{
    private ERFormatMappingId formatMappingId;

    public void formatMappingLookup(FormReferenceControl _referenceGroupControl)
    {
        var integration_point = new ERIntegrationPointFactory().WithIntegrationPointKey('SalesInvoiceDP').ToIntegrationPoint();
        ERObjectsFactory::createFormatMappingTableLookupForIntegrationPoint(
            integration_point,
            _referenceGroupControl
            ).performFormLookup();
    }
}