次の方法で共有


USER INPUT PARAMETER タイプのデータ ソース値をソース コードから開始する

ER モデル マッピングと ER 形式のコンポーネントを設計する際は、ユーザー入力パラメータータイプのデータ ソースを使い、ER 形式の回が始まる前にランタイムで提供される必要な値を取得します。 このダイアログ ボックスは、必要なパラメーターを別のページに入力した場合、または ER フォーマットを無人 (バッチ) モードで実行した場合に、プログラムを使用してオフにすることができます。 ER ダイアログ ボックスがオフになっている場合、ソース コードからユーザー入力パラメーター タイプのデータ ソース値を開始する必要があります。

送信する電子ドキュメントの形式のコンポーネント

送信ドキュメントを生成するには、ER 形式をコンフィギュレーションします。 この形式をコンフィギュレーションすると、送信ドキュメントに入力するために使用されるデータ ソースとして ER データ モデルが選択されます。 ER モデル マッピングをコンフィギュレーションして、選択したデータ モデルが実行時にアプリケーション データによってどのように入力されるかを指定します。 モデル マッピングを設計するときは、データ ソースを指定して、さまざまなソースから目的の値を収集しし、それらをデータ モデルに入力します。 特に、ユーザー入力パラメーター タイプのデータ ソースを使用して、ER 形式を最初に実行したときに表示される ER ユーザー ダイアログ ボックスでユーザーが入力した値をデータ モデルに入力できます。

送信ドキュメントを生成するようにコンフィギュレーションされた ER 形式の場合、ERObjectsFactory クラスの createFormatMappingRunByFormatMappingId() メソッドの _showPromptDialog パラメーターを使用して、ER ダイアログ ボックスをプログラムでオフにすることができます。 この場合、ソースコードからユーザー入力パラメーター タイプのデータ ソースの値を開始する必要があります。 それには、次のパターンを使用します。

ERModelDefinitionInputParametersAction Obj = new ERModelDefinitionInputParametersAction();
Obj.addParameter(<path to an ER data source>, <data source value>);
ERObjectsFactory::createFormatMappingRunByFormatMappingId(formatMappingID, fileName, false)
            .withParameter(Obj)
            .run();

送信ドキュメントを生成するようにコンフィギュレーションされている ER フォーマットの場合、ER データ ソースへのパスは、スラッシュ (/) 文字で区切られた接頭語と接尾語から構成されます。 接頭語は、実行中の ER 形式に存在するモデル タイプのデータ ソースの名前を表します。 接尾語は、関連するデータ モデルの実装として ER 形式を実行することで使用されるモデル マッピングに存在するユーザー入力パラメータータイプのデータ ソースへパスを表わします。

ヒント

データ ソース パスのノードは、スラッシュ (/) 文字で区切られ ます。 ERPath::Combine() メソッドを使用して、パスを作成します。

詳細については、例として使用できる BankPaymBalanceXML アプリケーション クラスのソース コードを確認してください。 グローバル リポジトリから、このアプリケーション クラスを使用して Finance インスタンスに呼び出されるBLWI 形式 (BE) ER 形式 コンフィギュレーションインポートします。 基準 BLWI モデルのコンフィギュレーションは、インポートされた ER 形式のコンフィギュレーションと共に自動的にインポートされます。

    /// <summary>
    /// Runs export via ER solution.
    /// </summary>
    [Microsoft.Dynamics.BusinessPlatform.SharedTypes.InternalUseOnlyAttribute]
    protected void runER()
    {
        const str erParmEmail = 'model/parameters.Email';
        const str erParmFromDate = 'model/parameters.FromDate';
        const str erParmToDate = 'model/parameters.ToDate';
        const str erParmSurveyCode = 'model/parameters.SurveyCode';

        ERModelDefinitionInputParametersAction modelDefinitionInputParametersAction = new ERModelDefinitionInputParametersAction();

        modelDefinitionInputParametersAction.addParameter(erParmEmail, email)
            .addParameter(erParmFromDate, fromDate)
            .addParameter(erParmToDate, toDate)
            .addParameter(erParmSurveyCode, BankPaymBalanceSurvey::find(surveyCodeRecId).SurveyCode);

        ERObjectsFactory::createFormatMappingRunByFormatMappingId(tradeBLWIParameters.ERFormatMappingID, fileName)
            .withFileDestination(fileDestination)
            .withParameter(modelDefinitionInputParametersAction)
            .run();
    }

emailfromDate、および toDate 変数は、ER 形式が呼び出される前に ER ダイアログ ボックス以外のページに入力された値を格納するために使用されます。 このクラスの runER() メソッドは、これらの変数を使用して複数のデータ ソースの値を開始する ER 形式のマッピングを実行します。 このようなデータ ソースのすべてのパスの接頭語 (サンプル コードの erParmEmailerParmFromDate、または erParmToDate 定数など) は、モデル タイプ (モデル 値) の形式データ ソースの名前として定義されます。

「モデル」 データ ソースを含む「BLWI 形式 (BE)」コンフィギュレーションのデータ ソースの一覧を示す ER 形式デザイナー。

このようなデータ ソースのすべてのパスの接尾語は、実行時に使用されるモデル マッピングの関連データ ソースへのパスとして定義されます。 サンプル コードでは、parameters.Emailparameters.FromDate、または parameters.ToDate を含めることができます。

「ユーザー入力パラメーター」 タイプのデータ ソースを含む「BLWI モデル マッピング」 コンフィギュレーションのデータ ソースの一覧を示す ER モデル マッピング デザイナー。

受信電子ドキュメントの形式のコンポーネント

実行 し、インバウンド ドキュメントを解析およびアプリケーション データを更新する ER 形式の構成も可能です。 この形式には、受信ドキュメントのコンテンツに基づいてアプリケーション データを更新するために使用される宛先タイプのモデル マッピングを参照する形式マッピングが含まれている必要があります。 このタイプのモデル マッピングでは、ユーザー入力パラメーター タイプのデータ ソースを使用して、実行時に ER ユーザー ダイアログ ボックスから値を取得し、アプリケーション データの更新に使用することもできます。

受信ドキュメントを解析するために ER 形式が実行される場合、ERObjectsFactory クラスの createMappingDestinationRunByImportFormatMappingId() メソッドの _showPromptDialog パラメーターを使用して、ER ダイアログ ボックスをプログラムでオフにすることができます。

受信ドキュメントを解析するようにコンフィギュレーションされている ER 形式の場合、ER データ ソースへのパスは、実行中の ER 形式から呼び出されてアプリケーション データを更新する宛先タイプのモデル マッピングに存在するユーザー入力パラメーター タイプのデータ ソースへのパスとして構築されます。

詳細については、例として使用できる BankStatementImportBatch アプリケーション クラスのソース コードを確認してください。

        var integrationPoint = classStr(ERTableDestination) + '#' + tableStr(BankStatementDocumentEntity);
        ERmodelDefinitionInputParametersAction inputParameters = new ERmodelDefinitionInputParametersAction();
        inputParameters.addParameter('$ExecutionID', _executionID)
            .addParameter('$gerConfigName', _gerConfigName)
            .addParameter('$AccountId', bankAccount);

        var runner = ERObjectsFactory::createMappingDestinationRunByImportFormatMappingId(_erModelMappingId, integrationPoint);
        runner.withParameter(inputParameters);
        runner.init();
        
        if (runner.promptsContractedModelMapping())
        {
            var parameters = runner.getParameters();
            var traverser = new ERModelDefinitionParametersTraverser(parameters);
            while (traverser.moveNext())
            {
                ERIImportFormatDataSourceContract current = ERCast::asObject(traverser.current()) as ERIImportFormatDataSourceContract;
                if (current)
                {
                    current.parmInputDataStream(File::UseFileFromURL(DMFStagingWriter::getDownloadURLFromFileId(_uploadedStatement)));
                }
            }
        }

        runner.runUnattended();

$ExecutionID$gerConfigName、および $AccountId データ ソースの値を開始するために使用される _executionID_gerConfigName、および bankAccount 変数に注意してください。

グローバル リポジトリから、このアプリケーション クラスを使用して Finance インスタンスに呼び出される Camt.053 形式の ER 形式 コンフィギュレーションをインポートします。 口座取引明細書モデルのコンフィギュレーションは、インポートされた ER 形式のコンフィギュレーションと共に自動的にインポートされます。 さらに、アプリケーション データの更新に使用するモデル マッピングを含む口座取引明細書のマッピング先 ER コンフィギュレーションをインポートします。

「ユーザー入力パラメーター」 タイプのデータ ソースを含む「口座取引明細書のマッピング先」コンフィギュレーションのデータ ソースの一覧を示す ER モデル マッピング デザイナー。

制限

実行時に使用される ER モデル マッピングでコンフィギュレーションされたユーザー入力パラメーター タイプのデータ ソース値のみを開始できます。 ER 形式でコンフィギュレーションされたユーザー入力パラメーター タイプのデータ ソース値は、ソース コードから開始できません。

追加リソース

電子申告 (ER) の概要

受信ドキュメントの受信を許可