ビジネス ドキュメントのカスタム デザインを作成する

この記事では、純粋な拡張モデルを使用して、既存のアプリケーション ビジネス ドキュメントのカスタム レポート デザインを作成する方法について説明します。

Microsoft Dynamics 365 Finance には、カスタム ソリューションをサポートするためのツールの拡張セットが含まれています。 この記事では、純粋な拡張モデルを使用して、既存のアプリケーション ビジネス ドキュメントのカスタム レポート デザインを作成する手順について説明します。 カスタム レポート デザインをアプリケーション ドキュメントのインスタンスに関連付けるには、この記事で後述する手順に従います。 完了すると、ユーザーは、トランザクションの詳細に基づいて、必要に応じてカスタム デザインを選択するように印刷管理設定を構成できます。 次の図は、一般的なアプリケーションのカスタマイズを示しています。

一般的なアプリケーションカスタマイズワークフロー図のスクリーンショット。

知っている必要がある重要なこと

このソリューションを適用する前に、次の点に注意してください。

  • 印刷管理設定は、有効な法人に適用されます。 カスタム デザインを 1 つ以上の印刷管理設定に関連付けることができます。
  • 標準レポート デザインは、カスタム ソリューションと共に引き続き使用できます。 印刷管理設定を使用して、トランザクションの詳細に基づいて適切なデザインを選択します。
  • カスタム ビジネス プロセスのビジネス ドキュメントを導入する場合は、さらに多くの作業を行う必要があります。 カスタム ビジネス ドキュメント ソリューションの作成方法の詳細については、印刷管理の統合ガイド を参照してください。

ビジネス ドキュメントのカスタマイズ

次のチュートリアルでは、既存のアプリケーション ビジネス ドキュメントのカスタム レポート デザインを導入し、次に印刷管理を使用して新しいデザインを選択するプロセスを示します。 このソリューションには、Application Suite モデルの一部として標準アプリケーションで提供される販売の確認レポートのカスタム設計定義が含まれています。 拡張モデルでアプリケーションのカスタマイズを定義します。

  1. アプリケーション カスタマイズの新しいモデルを作成します。 拡張モデルに関する詳細については、 拡張機能およびオーバーレイによるカスタマイズ を参照してください。 この例では、 Application Suite、Application Platform、および Application Foundation パッケージを参照する Application Suite Extensions という名前のモデルを追加します。

  2. Microsoft Visual Studio で、新しいプロジェクトを作成します。 プロジェクトが拡張モデルに関連付けられていることを確認します。 次の図はプロジェクト設定を示します。

    Visual Studio の [プロジェクト設定] ダイアログのスクリーンショット。

  3. ビジネス ドキュメントのカスタム レポートのデザインを作成します。 カスタム ソリューションが正しいレポート データ コントラクトを使用していることを確認します。 アプリケーション エクスプ ローラーで、既存のアプリケーション スイート レポートを検索します。 このレポートの名前は SalesConfirm です。 それを右クリックし、[ プロジェクトで複製 ] を選択してカスタム ソリューションを作成します。

  4. レポートの名前を変更して、わかりやすい名前にします。 この例では、カスタム レポートの SalesConfirmExt を名前付けし、標準のソリューションと区別します。 プロジェクトをコンパイルしてレポートを展開し、変更にエラーがないことを確認します。

  5. 自由形式デザイナーを使用して、レポートのデザインをカスタマイズします。 レポートという名前のレポート デザインを選択し、右クリックして、精度デザイナーを開きます。 組織のビジネス要件を満たすように設計をカスタマイズします。 次の図は、Sales confirmation レポートのカスタム設計定義を示しています。

    レポート デザイナーの Sales 確認レポートのカスタム デザイン定義のスクリーンショット。

  6. 標準のレポート コントローラーを拡張する新しい X++ クラスを追加します。 クラスに、それが既存のアプリケーション レポートのハンドラーであることを適切に表す名前を付けます。 この例では、クラスの SalesConfirmControllerExt の名前を変更し、他のレポート コントローラーと区別します。

  7. 拡張クラスを使用して、カスタム デザインを読み込みます。 カスタム レポート デザインを参照するメインメソッドを追加します。 (標準ソリューションから main メソッドをコピーし、新しい Controller クラスへの参照を追加できます)。標準ソリューションを拡張するコードを次に示します。

    class SalesConfirmControllerExt extends SalesConfirmController
    {
        public static SalesConfirmControllerExt construct()
        {
            return new SalesConfirmControllerExt();
        }
        public static void main(Args _args)
        {
            SrsReportRunController formLetterController = SalesConfirmControllerExt::construct();
            SalesConfirmControllerExt controller = formLetterController;controller.initArgs(_args, ssrsReportStr(SalesConfirmExt, Report));
            if (classIdGet(_args.caller()) == classNum(SalesConfirmJournalPrint))
            {
                formLetterController.renderingCompleted += eventhandler(SalesConfirmJournalPrint::renderingCompleted);
            }
            formLetterController.startOperation();
        }
    }
    
  8. 新しいレポート ハンドラー (X++) クラスをプロジェクトに追加します。 クラスに、それが印刷管理に基づくドキュメントのハンドラーであることを適切に表す名前を付けます。 この例では、クラスの PrintMgtDocTypeHandlerExt の名前を変更し、他のオブジェクト ハンドラーと区別します。

  9. デリゲート ハンドラー メソッドを追加して、カスタム レポートの使用を開始します。 この例では、次のコードを使用して PrintMgtDocTypeHandlerExt クラスの getDefaultReportFormatDelegate メソッドを展開します。

    class PrintMgtDocTypeHandlersExt
    {
        [SubscribesTo(classstr(PrintMgmtDocType), delegatestr(PrintMgmtDocType, getDefaultReportFormatDelegate))]
        public static void getDefaultReportFormatDelegate(PrintMgmtDocumentType _docType, EventHandlerResult _result)
        {
            switch (_docType)
            {
                case PrintMgmtDocumentType::SalesOrderConfirmation:
                     _result.result(ssrsReportStr(SalesConfirmExt, Report));
                     break;
            }
        }
    }
    
  10. アプリケーションのレポートのメニュー項目を拡張します。 アプリケーション エクスプ ローラーで、既存のアプリケーション スイート メニュー項目を検索します。 このメニュー項目の名前は SalesConfirmation です。 右クリックし、[ 拡張機能の作成] を選択します。 デザイナーで新しい拡張オブジェクトを開き、 Object プロパティの値を SalesConfirmControllerExt に設定して、ユーザー ナビゲーションを拡張ソリューションにリダイレクトします。

  11. カスタム ビジネス ドキュメントを使用するため、印刷管理設定を更新してください。 この例では、売掛金勘定>設定>フォーム>フォーム設定の順に移動します。 [ 印刷管理] を選択し、ドキュメントの構成設定を見つけて、カスタム デザインを選択します。 次の図は、変更がコンパイルされた後の印刷管理設定を示しています。

    カスタム デザインの選択を示すコンパイル後の印刷管理設定のスクリーンショット。

これで、ビジネス ドキュメントのカスタマイズが完了しました。 アプリケーションでトランザクションを処理するとき、ビジネス ドキュメントのカスタム レポート デザインがユーザーに提示されるようになります。