Commerce Data Exchange 実装ガイダンス

この記事は、Microsoft Dynamics 365 Commerce 環境に、データ同期 (Commerce Data Exchange、[CDX]) に関連する機能を実装するユーザーを対象としています。 ページ、設定、コンフィギュレーション、ベスト プラクティスなど、実装を計画する際に考慮すべき概要、実装のヒント、総合的なガイダンスを示します。

データの適切な構成と同期は、正しい実装とって非常に重要です。 ビジネス要件、IT インフラストラクチャ、および全体的な準備にかかわらず、データが正しく同期されていないと、環境全体が実質的に役に立たなくなります。 したがって、最優先事項は、完全な実装全体でデータをコンフィギュレーション、生成、同期、検証するために何が必要かを理解することです。 これは、Commerce Headquarters から Commerce Scale Unit を経由して、Store Commerce アプリ (オフライン データベースの有無にかかわらず) やその他の店舗内コンポーネントを使用する従来型の店舗にまで及びます。 CDX は、データベース間でデータを複製および同期する Commerce の機能です。 ただし、CDX はフィルタリングも可能であるため、一般的なデータ レプリケーション機能とは異なります。 したがって、CDX は、選択のために指定されたチャネルに固有のデータのみを生成したり、オフライン データベースから特定のテーブルをフィルター処理したり、使用されなくなったデータについて、期限切れの割引など、使用されなくなったデータのために期限切れレコードをフィルター処理することで、データ セットを最小限に抑えることができます。

この記事に進む前に、チャネル (店舗)、レジスターとデバイス、および Store Commerce アプリ オフライン データベースの概念を理解することが重要です。 したがって、この記事の最後にある 「デバイス管理実装ガイダンス」や「Commerce アーキテクチャの概要」などのリソースを確認することをお勧めします。

重要な Commerce Headquarters ページ

  • チャネル データベース – このページを使用して、Commerce Scale Unit (クラウドと自己ホスト型の両方) で使用されるチャネル データベースと、Store Commerce アプリで使用されるオフライン データベースを作成、確認、および編集します。 ここで作成する各データベースは、単一の物理データベース (つまり、1 対 1 [1:1] マッピングがあります) を参照します。 チャネル データベースまたはオフライン データベースは、チャネル データベース グループに関連付ける必要があります。 このページから、選択したチャネル データベースまたはオフライン データベースの Scheduler ジョブの完全同期を作成することもできます。
  • チャネル データベース グループ – このページを使用して、チャネル データベース グループを作成、確認、および編集します。 各グループは、1 つ以上のチャネルまたはオフライン データベースに関連付けられます。 データベース グループは、関連するすべてのチャネルおよびオフライン データベースによって必要とされ、CDX データの同期の一部として生成される必要があるすべての関連データを収集します。
  • チャネル プロファイル – このページを使用して、チャネル プロファイルを作成、確認、および編集します。 各チャネル プロファイルは、チャネル内で必要なネットワークベースの通信に関連する URL が格納されます。 チャネル プロファイルには、通常、Retail Server URL と Cloud POS URL があります。 多くの場合、メディア サーバー ベース URL もあります。 この URL は、POS、電子商取引、その他の Commerce チャネルで使用される画像のインターネット アドレス指定可能な場所です。 チャネル プロファイルは Commerce Scale Unit (クラウド) に対して自動的に生成されますが、Commerce Scale Unit (自己ホスト) のコンフィギュレーションおよびインストール手順の一部として手動で生成する必要があります。
  • オフライン プロファイル – このページを使用して、オフライン プロファイルを作成、確認、および編集します。 各オフライン プロファイルでは、オフライン モードに関連する設定をユーザーが構成できます。 たとえば、ユーザーがサインインする前に手動でオフライン モードに切り替え、詳細なオフライン切り替えを有効にして、オフライン同期を一時停止できるようにする設定を構成できます。 これらの設定については、この記事の後半と、この記事の最後に一覧表示されている関連記事で説明します。
  • Commerce チャネル スキーマ – このページを使用して、チャネル スキーマを作成、確認、および編集します。 既定では、AX7 という名前の 1 つのスキーマが既に作成され、使用可能になっています。 チャネル スキーマは、Commerce データの Commerce Headquarters データベースの読み取り方法を定義するために必要です。 また、オフライン データベースへのデータ同期から顧客関連データを除外する設定も含まれています。 この設定については、この記事の後半と、この記事の最後に一覧表示されている関連記事で説明します。
  • 配分スケジュール – このページを使用して、配分スケジュール ジョブを作成、確認、および編集します。 これらのスケジュール ジョブは、関連する Scheduler ジョブを実行するチャネル データベース グループを決定します (この一覧の次の項目を参照してください)。 スケジュール ジョブは有効としてマークでき、単方向のデータが関連付けられます。 通常、データがチャネルに送信されるように、方向は ダウンロード です。 既定で、すべての Commerce 関連ジョブが既に存在しており、生成された Commerce Scale Unit (クラウド) で使用する準備ができています。 このページから、選択したスケジュール ジョブのデルタ同期を作成することもできます。
  • Scheduler ジョブ – このページを使用して、スケジュール ジョブから選択したジョブを作成、確認、および編集します。 このジョブには、関連付けられている一連のサブジョブがあります。 また、チャネル スキーマ (通常は、既定の AX7 スキーマ) にも関連付けられています。 オフライン データベースへの同期からジョブを除外できます。
  • Scheduler サブジョブ – このページを使用して、サブジョブを作成、確認、および編集します。 Scheduler ジョブ ページに示すように、サブジョブは 1 つ以上のジョブに関連付けられています。 サブジョブは、Commerce Headquarters データベースの 1 つのテーブルに関連付けられています。 チャネル フィールド マッピングが表示され、データベース テーブルで使用されるすべての関連フィールドが一覧表示されます。
  • ダウンロード セッションアップロード セッション – これらのページを使用して、前述のページで生成されたデータ パッケージを通で作成された、ダウンロードまたはアップロード セッションを確認および編集します。 これらのページには、同期が必要なデータの行数、データが使用可能になった日時、同期された日時が表示されます。 また、データ パッケージの全体的なサイズも表示されます。 これらのページを使用して、ある程度データ パッケージの管理とトラブルシューティングを行うことができます。 たとえば、発生したエラーを表示したり、問題の原因となっているジョブをキャンセルまたは削除したりできます。 詳細については、Commerce Data Exchange ベスト プラクティス を参照してください。

データ同期の概要

Scheduler ジョブが実行されると、チャネル データベース グループは、累積サブジョブに一覧表示されているフィールドから、それ自身に関連付けられているすべてのチャネルまたはオフライン データベースに関連するデータを選択します。 このデータ選択の結果は、データ パッケージです。 データ パッケージは、1 つまたは複数のファイルをまとめて圧縮したもので、1 つ以上の出力先データベースに適用する必要があるデータが含まれています。 このデータは、以前に選択されたすべてのデータか、通常は選択されたデータのデルタのいずれかです。 出力先データベースには、チャネル データベースまたはオフライン データベースのいずれかを指定できます。

データが生成され、特定の方向 (ダウンロードまたはアップロード) にフローします。 タイミングを設定し、同期するデータを選択する最善の方法を理解するには、Commerce Headquarters のさまざまなページがどのように使用され、データ生成がどのように行われるかを理解することが重要です。 データの生成が正常に行われると、パフォーマンスが向上し、Commerce Headquarters の使用率が低下します。

次の図は、Commerce Headquarters のさまざまなページと、それらが互いにどのように関連しているかを示しています。 (これらのページの説明については、前のセクションを参照してください。) CDX データの生成は、これらすべてのページで完全に構成されている場合にのみ発生します。 データは、ダウンロードまたはアップロードできます。 データ同期の状態は、headquarters の 2 つの異なるページ: ダウンロード セッションおよびアップロード セッションに表示されます。 CDX データの生成は、headquarters を通じて行われ、同期 (ダウンロード) されます。 オフライン中に生成される Modern Point of Sale (POS) トランザクション データは、データを同期 (アップロード) する必要があります。

Commerce Data Exchange 関連マップ。

次の図は、ダウンロードとアップロードのデータ フローを示しています。 CDX を使用して生成されたデータ パッケージは下向にフローします。 生成されたデータ パッケージは、設定されたチャネル データベース グループに基づいて、Commerce Scale Unit と Store Commerce アプリのオフライン データベースに適用できます。 トランザクション データは、Store Commerce アプリのオフライン データベースから Commerce Scale Unit のチャネル データベースに上向きにフローします。 チャネル データベースに格納されたすべてのトランザクション データは、headquarters データベースにアップロードされます。

データ フローのダウンロードとアップロード。

Package Management の概要

パッケージが作成されると、処理されて、Azure Storage に送信され、チャネルまたはオフライン データベースにダウンロードする準備が整います。 作成から完全なアプリケーションまでのすべての段階で、これらのパッケージは、ダウンロード セッション ページで詳細な一覧として表示できます。 同様に、トランザクションがアップロードされると、アップロード セッション ページが表示されます。 これらのページでは、さまざまな段階において、ある程度までパッケージを管理できます。

一般に、パッケージは自動的に再試行して、処理を行います。 ただし、さまざまなシナリオによって、何らかの原因でパッケージが停止し、無限に再試行を繰り返しますが、成功または完全に失敗することはありません。 これらのシナリオでパッケージ アプリケーション プロセスのトラブルシューティングを行う際には、ジョブを削除するか、手動で再試行する機能が役立ちます。

これらの機能すべては、バージョン 10.0.12 以降 で利用できます。

機能名 説明
オフラインの詳細 この機能は、オフライン プロファイルの一連の設定で構成されます。 これらの設定により、追加のオフライン切り替えシナリオを使用できるようになり、ユーザーが POS にサインインする前にオフライン モードに切り替える機能を提供し、強化された Commerce Headquarters の可用性テストが可能になるため、より頻繁にオフライン モードに切り替え、より簡単にオンライン状態に簡単に戻すことができます。
オフライン データの除外 この機能は、データ サイジングの改善とも呼ばれます。 オフライン データベースから除外する必要があり、今後同期してはいけない特定のデータにフラグを設定する機能を提供します。 また、オフライン データベースからすべての顧客関連データを完全に削除するためにも使用されます。
強制バッチ処理と完全同期で繰り返しの使用不可 バージョン 10.0.11では、バッチ処理を使用しない限り、配分スケジュール ページから 今すぐ実行 コマンドを実行できません。 この変更は、環境が最も頻繁に使用された時間帯にジョブが実行された場合に発生するパフォーマンス上の問題のために行われました。 この機能拡張の一部として行われた別の変更では、Commerce Headquarters の チャネル データベース ページから 完全なデータの同期 コマンド (完全なジョブの同期) が実行されると、繰り返しを使用できません。 実行できるのは 1 回のみです。

オフラインの詳細

この機能は、オフライン プロファイルで構成できます。 3 つの設定が関連しています:

  • サインイン前のオフライン手動切り替えを許可する – この設定により、Store Commerce アプリのユーザーは、POS にサインインする前にオフライン モードに切り替えることができます。 これは、サインインが完了する前にタイムアウトが発生する可能性がある場合や、Commerce Scale Unit (クラウドまたは自己ホスト) からの非定型の応答コードが発生している場合のシナリオで役立ちます。 この設定を有効にすると、オフライン データベースを使用している Store Commerce アプリのユーザーが、POS サインイン ページから 設定 メニューにアクセスできるようになります。 このメニューには、オフライン モードに切り替えるための新しいオプションが含まれています。 このオプションを選択すると、ユーザーは、Commerce Scale Unit への呼び出しによって最初にログインする必要がなく、オフライン データベースに対して直接サインインできます。
  • 詳細なオフライン切り替えの有効化 – この設定により、Store Commerce アプリをさらに簡単かつ頻繁に、オフライン モードに切り替えることができます。 通常、Store Commerce アプリはオンライン状態を維持しようとし、機能を続行するためにこのようなスイッチが必要になった場合にのみオフライン モードに切り替えます。 この設定を有効にすると、Store Commerce アプリは、特にサインインや POS 操作への遅延とみなされる可能性のある追加の Commerce Scale Unit の応答を含むシナリオで、より頻繁に切り替えることができます。 この設定は、オンラインのみの機能の可用性を維持するより速度を優先するシナリオ (headquarters への接続を必要とするギフト カードでの支払など) で最も重要です。
  • システムの正常性チェックの間隔 (分) – この設定は、説明した 詳細なオフライン切り替えの有効化 設定のサブ機能として機能します。 通常、この設定がオフで、Store Commerce アプリがオフライン モードの場合、POS は オフライン プロファイルの構成に基づいて特定の時間だけ待機し、次に発生する操作呼び出し中に Commerce Scale Unit への再接続を試みます。 この詳細なオフラインの正常性チェックは、オンラインの可用性を確認し、オンライン機能が再び使用可能になるとすぐに切り替える、より頻繁な操作に依存しない方法を提供します。

オフライン データの除外

この機能はバージョン 10.0.11 でリリースされ始め、バージョン 10.0.12 で完全な機能セットが完成しました。 この機能は、オフライン データベースに同期されるデータの量を減らすことを目的としています。 Commerce Headquarters の Scheduler ジョブ ページと Scheduler サブジョブ ページで、オフライン データベースから除外 というオプションを使用すると、データをオフライン データベースに同期するときにデータ (テーブル) を除外できます。

  • Scheduler ジョブ ページで、はい にオプションを設定し、ジョブ用に生成されたすべてのデータ パッケージがオフライン データベースに同期されないようにします。 チャネル データベース ページから除外されたジョブに対して 完全データ同期 コマンドが実行されると、オフライン データベースの関連テーブルが空になります (つまり、既に存在していたデータはすべてクリアされます)。
  • Scheduler サブジョブで、オプションをはいに設定し、サブジョブを含むジョブの関連テーブルがオフライン データベースに同期されないようにします。 たとえば、チャネル データベースの SQL テーブル DIRPARTYTABLE は、3 つの異なる Scheduler ジョブによって同期されます。 したがって、DIRPARTYTABLE テーブルを除外すると、3 つのジョブすべてによって、そのデータがオフライン データベースに同期されなくなります。 (このテーブル例 (DIRPARTYTABLE) は、オフライン データベースに格納されているスタッフ関連データにとって重要なので、除外することはお勧めしません)。

この機能は、行レベルのフィルター処理の最初のステップでもあります。 Commerce Headquarters の Commerce チャネル スキーマ ページには、共有顧客データ テーブルのフィルター という新しいオプションが含まれています。 (コマース チャネル スキーマ ページを開くには、小売とコマース > 本社の設定> コマース スケジューラ > チャネル データベース グループに移動し、コマース チャネル スキーマ フィールドで値を選択します。既定値は、AX7 です。) オプションをはいに設定すると、共有テーブル内のすべての顧客データにフラグが設定されます。 この設定は、Microsoft 作成の標準テーブル (カスタム作成のテーブルではないテーブル) に対してのみ機能します。 このオプションを はい に設定すると、以下のメッセージが表示されます: 「チャネル データ分布のレコードからのみ顧客データが削除されます。 顧客データを含むすべてのスケジュール ジョブも、オフライン同期をスキップするようにマークする必要があります。」次に、はいまたはいいえのどちらかを選択できます。 このメッセージは、すべての顧客データ ジョブで オフライン データベースから除外 オプションも はい に設定する必要があることを確認するためのものです。 (既定では、唯一の顧客データ ジョブは 1010 ジョブです。)

このフィルター処理の例を次に示します。 DIRPARTYTABLE テーブルは、顧客と従業員の両方に使用されます。 共有顧客データ テーブルのフィルターはい に設定すると 、行レベルのすべての顧客レコードに対して、オフライン データベースとの同期を行わないことを示すフラグが設定されます。 オフラインデータベースから除外 オプションも はい に設定すると、すべての顧客データがオフライン データベースへの同期から除外されます。

実装の考慮事項

このセクションでは、実装の計画を開始する際に考慮する必要がある構成について説明します。 ここで説明する機能は、データ管理とデータ構成に関連しています。 ここに記載されているガイダンスを読む前に、Commerce Data Exchange のベスト プラクティス を読むことを強くお勧めします。

  • Scheduler ジョブ カレンダーの作成 – 各ジョブはどれぐらいの頻度で発生しますか? 各ジョブは 1 日あたり何回発生しますか? 重要ではない大規模なジョブは、環境全体が頻繁に使用されていない時間外にのみ発生しますか? カレンダー (必要に応じて、物理的または仮想的のいずれか) を作成することにより、ジョブがどのようにパフォーマンスに影響を与える他のワークロード (明細書の転記など)、工程時間、外部データのバッチ処理、指定された時間に (または CDX ジョブのように 1 日を通して頻繁に) データをプッシュまたはプルするカスタマイズと交差するかの詳細を知ることができます。

  • オフライン同期の一時停止 – 小売組織が拡大するにつれて、このオフライン プロファイル機能を最大限に活用する必要があります。 成長は良いことですが、データ生成を管理して、現在稼働しているビジネスへのパフォーマンス上の影響を最小限にする必要があります。 この機能を使用すると、チャネル、レジスター、およびデータベースを作成することができますが、レジスターが使用されるずっと前から、パフォーマンスに影響を与える大量のデータ生成を必要としません。

  • オフラインの詳細 – 前述のオフラインの詳細機能を使用すると便利ですが、小売組織の優先順位と値に適合する場合にのみ使用します。 詳細なオフライン正常性チェックは、オンライン時間の最大化に役立ちますが、Commerce Headquarters または Commerce Scale Unit が何らかの理由で応答しなくなったり、利用できなくなったりした場合は、レジスターをオフライン モードにプッシュする方がより効果的になります。 タイムアウトや繰り返しの再試行応答を待たずに、オフライン モードにすばやく切り替えることにより、レジスターのパフォーマンスを最大化することは重要です。 ただし、このアプローチは、ロイヤルティ操作、追加の支払方法、顧客注文などの業務を可能するために、可能な限りオンライン状態を維持しようとする標準のシームレスなオフライン モデルに対して理解および管理する必要があります。

  • オフライン データの除外 – 一般に、小さなデータ セットは通常、大規模なデータ セットよりも速くなります。 データベース全体のサイズを減らす必要がある場合 (たとえば、SQL Express では10 ギガバイト [GB] のデータベースしか許可されていない場合) や、POS 端末がオフライン モード中に一般的な操作の一部として照会するデータの量を最小限に抑える必要がある場合は、オフライン データベースの機能に関連しないデータを除外することは重要です。

    この機能は、小売組織の業務要件に応じて大きく異なります。 したがって、カスタマイズが機能するために必要なデータや、標準的な日常業務に必要なデータを把握しておくことが重要です。 たとえば、顧客をトランザクションに関連付ける必要がない場合は、顧客をオフライン データベースから除外できます。

  • チャネル データベース グループ – 少なくとも 2 つのチャネル データベース グループが存在する必要があります: 1 つは使用される初期の Commerce Scale Unit (クラウド) 用であり、もう 1 つは使用される任意またはすべてのオフライン データベース用です。 大規模な小売企業では、関連するチャネル (店舗) のデータの類似性に基づいて分離された、複数のオフライン中心のチャネル データベース グループを持つ場合があります。

    また、新しいチャネル データベースの構成に使用できる "ダミー" のチャネル データベース グループ、オフライン サポートのあるレジスター (この場合、オフライン データベースが作成されます)、そして場合によっては新しいが未使用の Commerce Scale Unit (クラウドまたは自己ホストのいずれか) があると便利です。 この "ダミー" グループは、配送スケジュール ジョブに関連付けられていないので、関連付けられているものに対してデータ生成は発生しません。 時間と実装が進むにつれて、関連付けられているエンティティ (たとえば、チャネル [店舗] やオフライン データベースの登録など) は、正しいデータベース グループに再関連付けされます。 このアプローチの優れた代替策、おそらくは改善策として、前述の オフライン同期の一時停止 機能を使用することです。

SQL Server のバージョンとライセンス

SQL Server のバージョンおよびこれらの使用方法の詳細については、Commerce のオフライン実装実装とトラブルシューティング を参照してください。

追加リソース

Commerce Data Exchange のトラブルシューティング

Commerce Data Exchange ベスト プラクティス

Commerce のオフライン実装とトラブルシューティング

Dynamics 365 Commerce アーキテクチャの概要

ストア内トポロジの選択

デバイス管理実装ガイダンス

Commerce Scale Unit のコンフィギュレーションとインストール (自己ホスト)