注
Dynamics 365 Commerce の小売インタレストグループは、Yammer から Viva Engage に移行しました。 新しい Viva Engage コミュニティにアクセスできない場合は、このフォーム (https://aka.ms/JoinD365commerceVivaEngageCommunity) に入力して追加し、最新のディスカッションに参加してください。
この記事は、Microsoft Dynamics 365 Commerce 環境でデータ同期 (Commerce Data Exchange、[CDX]) に関連する機能を実装するユーザーを対象としています。 実装を計画する際に考慮する必要がある概要、実装のヒント、ガイダンスが示されています。 ページ、セットアップ、構成、ベスト プラクティスなどについて説明します。
データの適切な構成と同期は、正しい実装とって非常に重要です。 ビジネス要件、IT インフラストラクチャ、および全体的な準備にかかわらず、データが正しく同期されていないと、環境全体が実質的に役に立たなくなります。 したがって、最優先事項は、完全な実装全体でデータをコンフィギュレーション、生成、同期、検証するために何が必要かを理解することです。 このプロセスは、コマース 本社からコマース スケール ユニットを通じて、Store Commerce アプリ (オフライン データベースありまたはオフラインなし) やその他の店舗内コンポーネントを使用する実店舗に移行します。 CDX は、データベース間でデータを複製および同期する Commerce の機能です。 ただし、CDX はフィルタリングも可能であるため、一般的なデータ レプリケーション機能とは異なります。 そのため、CDX は、選択に指定したチャネルに固有のデータのみを生成し、オフライン データベースから特定のテーブルをフィルター処理し、期限切れの割引など、使用されなくなったデータの期限切れのレコードをフィルター処理することで、データ セットを最小限に抑えるのに役立ちます。
この記事に進む前に、チャネル (店舗)、レジスターとデバイス、および Store Commerce アプリ オフライン データベースの概念を理解することが重要です。 そのため、デバイス管理の実装ガイドやコマース アーキテクチャの概要など、この記事の最後にあるリソースの一部を確認してください。
重要なコマース本社ページ
- チャネル データベース – このページを使用して、Commerce Scale Unit (クラウドと自己ホスト型の両方) で使用されるチャネル データベースと、Store Commerce アプリで使用されるオフライン データベースを作成、確認、および編集します。 ここで作成する各データベースは、1 つの物理データベースを参照します (つまり、1 対 1 の [1:1] マッピングがあります)。 チャネル データベースまたはオフライン データベースをチャネル データベース グループに関連付ける必要があります。 このページから、選択したチャネル データベースまたはオフライン データベースの Scheduler ジョブの完全同期を作成することもできます。
- チャネル データベース グループ – このページを使用して、チャネル データベース グループを作成、確認、および編集します。 各グループは、1 つ以上のチャネルまたはオフライン データベースに関連付けられます。 データベース グループは、関連するすべてのチャネルおよびオフライン データベースに必要なすべての関連データを収集する役割を担います。 このデータは、CDX データ同期の一部として生成する必要があります。
- チャネル プロファイル – このページを使用して、チャネル プロファイルを作成、確認、および編集します。 各チャネル プロファイルには、チャネルに必要なネットワーク ベースの通信に関連する URL が格納されます。 チャネル プロファイルには、通常、Retail Server URL と Cloud POS URL があります。 多くの場合、Media Server ベース URL もあります。 この URL は、POS、E コマース、およびその他のコマース チャネルが使用する、インターネットでアドレス指定可能な画像の場所です。 チャネル プロファイルはコマース スケール ユニット (クラウド) に対して自動的に生成されますが、Commerce Scale Unit (セルフホステッド) の構成とインストール手順の一部として手動で生成する必要があります。
- オフライン プロファイル – このページを使用して、オフライン プロファイルを作成、確認、および編集します。 各オフライン プロファイルでは、オフライン モードに関連する設定をユーザーが構成できます。 たとえば、ユーザーがサインインする前に手動でオフライン モードに切り替え、詳細なオフライン切り替えを有効にして、オフライン同期を一時停止できるようにする設定を構成できます。 これらの設定については、この記事の後半と、この記事の最後に一覧表示されている関連記事で説明します。
- Commerce チャネル スキーマ – このページを使用して、チャネル スキーマを作成、確認、および編集します。 既定では、 AX7 という名前の 1 つのスキーマが既に作成され、使用できます。 コマース データのコマース本社データベースの読み取り方法を定義するには、チャネル スキーマが必要です。 また、オフライン データベースへのデータ同期から顧客関連データを除外する設定も含まれています。 この設定については、この記事の後半と、この記事の最後に一覧表示されている関連記事で説明します。
- 配布スケジュール – このページを使用して、配布スケジュール ジョブを作成、確認、および編集します。 これらのスケジュール ジョブは、関連する Scheduler ジョブを実行するチャネル データベース グループを決定します (この一覧の次の項目を参照してください)。 スケジュールジョブをアクティブとしてマークし、1つのデータ方向をそれに関連付けることができます。 通常、データがチャネルに送信されるように、方向は ダウンロード です。 既定で、すべての Commerce 関連ジョブが既に存在しており、生成された Commerce Scale Unit (クラウド) で使用する準備ができています。 このページから、選択したスケジュール ジョブのデルタ同期を作成することもできます。
- Scheduler ジョブ – このページを使用して、スケジュール ジョブから選択したジョブを作成、確認、および編集します。 このジョブには、関連付けられている一連のサブジョブがあります。 また、チャネル スキーマ (通常は、既定の AX7 スキーマ) にも関連付けられています。 同期からオフライン データベースへのジョブを除外できます。
- Scheduler サブジョブ – このページを使用して、サブジョブを作成、確認、および編集します。 Scheduler ジョブ ページに示すように、サブジョブは 1 つ以上のジョブに関連付けられています。 サブジョブは、Commerce Headquarters データベースの 1 つのテーブルに関連付けられています。 チャネル フィールド マッピングが表示され、データベース テーブルで使用されるすべての関連フィールドが一覧表示されます。
- セッションのダウンロード と セッションのアップロード – これらのページを使用して、前に説明したページを介して生成されたデータ パッケージを使用して作成したダウンロード セッションまたはアップロード セッションを確認および編集します。 これらのページには、同期が必要なデータの行数、データが使用可能になった日時、同期された日時が表示されます。 また、データ パッケージの全体的なサイズも表示されます。 これらのページを使用して、ある程度データ パッケージの管理とトラブルシューティングを行うことができます。 たとえば、発生したエラーを表示したり、問題の原因となっているジョブを取り消したり削除したりできます。 詳細については、Commerce Data Exchange ベスト プラクティス を参照してください。
データ同期の概要
スケジューラー・ジョブを実行すると、チャネル・データベース・グループは、累積サブジョブにリストされているフィールドから、関連するすべてのチャネルまたはオフライン・データベースの関連データを選択します。 このデータ選択により、データ パッケージが作成されます。 データ パッケージは、一緒に圧縮されたファイルまたは複数のファイルです。 これには、1 つ以上のコピー先データベースに適用する必要があるデータが含まれています。 このデータは、以前に選択されたすべてのデータか、通常は選択されたデータのデルタのいずれかです。 出力先データベースには、チャネル データベースまたはオフライン データベースのいずれかを指定できます。
データが生成され、特定の方向 (ダウンロードまたはアップロード) にフローします。 タイミングを設定し、同期するデータを選択する最善の方法を理解するには、Commerce Headquarters のさまざまなページがどのように使用され、データ生成がどのように行われるかを理解することが重要です。 データの生成が正常に行われると、パフォーマンスが向上し、Commerce Headquarters の使用率が低下します。
次の図は、コマース本社のさまざまなページと、それらがどのように相互に関連しているかを示しています。 (これらのページの説明については、前のセクションを参照してください。) CDX データの生成は、これらすべてのページで完全に構成されている場合にのみ発生します。 データは、ダウンロードまたはアップロードできます。 本社の 2 つの異なるページ ( セッションのダウンロード と セッションのアップロード) でデータ同期の状態を表示できます。 CDX データの生成は、headquarters を通じて行われ、同期 (ダウンロード) されます。 オフライン中に生成される Modern Point of Sale (POS) トランザクション データは、データを同期 (アップロード) する必要があります。
次の図は、ダウンロードとアップロードのデータ フローを示しています。 CDX を使用して生成されたデータ パッケージは下向にフローします。 生成されたデータ パッケージは、設定されたチャネル データベース グループに基づいて、Commerce Scale Unit と Store Commerce アプリのオフライン データベースに適用できます。 トランザクション データは、Store Commerce アプリのオフライン データベースから Commerce Scale Unit のチャネル データベースに上向きにフローします。 チャネル データベースに格納されたすべてのトランザクション データは、headquarters データベースにアップロードされます。
パッケージ管理
パッケージを作成すると、システムによってパッケージが処理され、Azure Storage に送信され、チャネルまたはオフライン データベースにダウンロードする準備が整います。 これらのパッケージは、作成から完全なアプリケーションまでのすべての段階で、[ セッションのダウンロード ] ページで詳細な一覧として表示できます。 同様に、トランザクションがアップロードされると、[ セッションのアップロード ] ページがあります。 これらのページでは、さまざまな段階において、ある程度までパッケージを管理できます。
一般に、パッケージは自動的に再試行して、処理を行います。 ただし、さまざまなシナリオにより、パッケージが何らかの方法でスタックし、それ自体が無限に再試行されますが、成功しない可能性があります。 これらのシナリオでパッケージ アプリケーション プロセスのトラブルシューティングを行う際には、ジョブを削除するか、手動で再試行する機能が役立ちます。
CDX 関連の重要な機能
これらの機能すべては、バージョン 10.0.12 以降 で利用できます。
| 機能名 | 説明 |
|---|---|
| 高度なオフライン | この機能は、オフライン プロファイルの一連の設定で構成されます。 これらの設定により、オフライン切り替えシナリオが増え、ユーザーが POS にサインインする前にオフライン モードに切り替え、コマース本社の可用性テストを強化できるため、オフライン モードに切り替える頻度が高く、オンライン状態に簡単に戻ることができます。 |
| オフライン データの除外 | この機能は、データサイズの改善とも呼ばれます。 オフライン データベースから除外する必要があり、今後同期してはいけない特定のデータにフラグを設定する機能を提供します。 また、オフライン データベースからすべての顧客関連データを完全に削除するためにも使用されます。 |
| 強制バッチ処理と完全同期で繰り返しの使用不可 | バージョン 10.0.11では、バッチ処理を使用しない限り、配分スケジュール ページから 今すぐ実行 コマンドを実行できません。 この変更は、環境が最も頻繁に使用されている時間帯にジョブが実行された場合に発生するパフォーマンスの問題が原因で行われました。 この機能拡張の一部として行われた別の変更では、Commerce Headquarters の チャネル データベース ページから 完全なデータの同期 コマンド (完全なジョブの同期) が実行されると、繰り返しを使用できません。 実行できるのは 1 回のみです。 |
高度なオフライン
この機能は、オフライン プロファイルで構成できます。 3 つの設定が関連しています:
- サインイン前のオフライン手動切り替えを許可する – この設定により、Store Commerce アプリのユーザーは、POS にサインインする前にオフライン モードに切り替えることができます。 サインインが完了する前にタイムアウトが発生する場合や、Commerce Scale Unit (クラウドまたはセルフホステッド) からの非定型応答コードが発生しているシナリオで役立ちます。 この設定を有効にすると、オフライン データベースを使用している Store Commerce アプリ ユーザーは、[POS サインイン] ページから [設定] メニューにアクセスできます。 このメニューには、オフライン モードに切り替えるための新しいオプションが含まれています。 このオプションを選択すると、ユーザーは、Commerce Scale Unit への呼び出しによって最初にログインする必要がなく、オフライン データベースに対して直接サインインできます。
- 詳細なオフライン切り替えの有効化 – この設定により、Store Commerce アプリをさらに簡単かつ頻繁に、オフライン モードに切り替えることができます。 通常、Store Commerce アプリはオンライン状態を維持しようとし、機能を続行するためにこのようなスイッチが必要になった場合にのみオフライン モードに切り替えます。 この設定を有効にすると、特にサインインや追加のコマース スケール ユニットの応答を含むシナリオで、POS 操作の遅延と見なされる可能性があるシナリオで、Store Commerce アプリはより頻繁に切り替えることができます。 この設定は、オンラインのみの機能の可用性を維持するより速度を優先するシナリオ (headquarters への接続を必要とするギフト カードでの支払など) で最も重要です。
- システム正常性チェック間隔 (分) – この設定は、[ オフライン切り替えの詳細設定を有効にする] 設定のサブ機能として機能します。 通常、この設定がオフで、Store Commerce アプリがオフライン モードの場合、POS は オフライン プロファイルの構成に基づいて特定の時間だけ待機し、次に発生する操作呼び出し中に Commerce Scale Unit への再接続を試みます。 この詳細なオフラインの正常性チェックは、オンラインの可用性を確認し、オンライン機能が再び使用可能になるとすぐに切り替える、より頻繁な操作に依存しない方法を提供します。
オフライン データの除外
この機能はバージョン 10.0.11 でリリースされ始め、バージョン 10.0.12 で完全な機能セットが完成しました。 この機能は、オフライン データベースに同期するデータの量を減らすのに役立ちます。 Commerce 本社の Scheduler ジョブ と Scheduler サブジョブ ページで、[ オフライン データベースから除外] という名前のオプションを使用すると、オフライン データベースにデータを同期するときにデータ (テーブル) を除外できます。
- [ スケジューラ ジョブ ] ページで、オプションを [はい ] に設定して、ジョブに対して生成されたすべてのデータ パッケージがオフライン データベースに同期されないようにします。 チャネル データベース ページから除外されたジョブに対して完全データ同期コマンドを実行すると、オフライン データベース内の関連テーブルが空になります (つまり、以前に存在していたすべてのデータが消去されます)。
- Scheduler サブジョブで、オプションをはいに設定し、サブジョブを含むジョブの関連テーブルがオフライン データベースに同期されないようにします。 たとえば、チャネル データベース SQL テーブル DIRPARTYTABLE は、3 つの異なるスケジューラ ジョブによって同期されます。 したがって、 DIRPARTYTABLE テーブルを除外すると、3 つのジョブすべてによってデータがオフライン データベースに同期されなくなります。 (このサンプル テーブル (DIRPARTYTABLE) は、オフライン データベースに格納されるスタッフ関連のデータにとって重要であるため、除外しないことをお勧めします)。
この機能は、行レベルのフィルター処理の最初のステップでもあります。 コマース本社の コマース チャネル スキーマ ページには、 共有顧客データ テーブルのフィルターという名前の新しいオプションが含まれています。 (コマース チャネル スキーマ ページを開くには、小売とコマース > 本社の設定> コマース スケジューラ > チャネル データベース グループに移動し、コマース チャネル スキーマ フィールドで値を選択します。既定値は、AX7 です。) オプションをはいに設定すると、共有テーブル内のすべての顧客データにフラグが設定されます。 この設定は、Microsoft 作成の標準テーブル (カスタム作成のテーブルではないテーブル) に対してのみ機能します。 このオプションを はい に設定すると、以下のメッセージが表示されます: 「チャネル データ分布のレコードからのみ顧客データが削除されます。 顧客データを含むすべてのスケジュール ジョブも、オフライン同期をスキップするようにマークする必要があります。」次に、はいまたはいいえのどちらかを選択できます。 このメッセージは、すべての顧客データ ジョブで オフライン データベースから除外 オプションも はい に設定する必要があることを確認するためのものです。 (既定では、唯一の顧客データ ジョブは 1010 ジョブです。)
このフィルター処理の例を次に示します。 DIRPARTYTABLE テーブルは、顧客と従業員の両方に使用されます。 [ 共有顧客データ テーブルのフィルター処理 ] を [はい] に設定すると、行レベルのすべての顧客レコードに、オフライン データベースと同期してはならないことを示すフラグが設定されます。 [ オフライン データベースから除外 ] オプションも [はい] に設定されている場合、すべての顧客データがオフライン データベースへの同期から除外されます。
実装の考慮事項
このセクションでは、実装の計画を開始するときに考慮する構成について説明します。 ここで説明する機能は、データ管理とデータ構成に関連しています。 ここで提供されているガイダンスを読む前に、 Commerce Data Exchange のベスト プラクティスを確認してください。
Scheduler ジョブ カレンダーを作成 する – 各ジョブはどのくらいの頻度で実行されますか? 各ジョブは 1 日に何回発生しますか? 大規模で重要でないジョブは、環境全体が頻繁に使用されていない時間外にのみ発生しますか? カレンダー (好きなように物理または仮想) を作成すると、ジョブがパフォーマンスに影響を与える他のワークロードとどのように交差するか (ステートメントの投稿など)、操作時間、外部データのバッチ処理、指定した時刻 (または CDX ジョブと同様に 1 日を通して頻繁に) データをプッシュまたはプルするカスタマイズの詳細を学習できます。
オフライン同期の一時停止 – 小売組織が拡大するにつれて、このオフライン プロファイル機能を最大限に活用する必要があります。 成長は良好ですが、現在運用中のビジネスに対するパフォーマンスへの影響を最小限に抑えるために、データ生成を管理します。 この機能を使用すると、チャネル、レジスター、およびデータベースを作成することができますが、レジスターが使用されるずっと前から、パフォーマンスに影響を与える大量のデータ生成を必要としません。
高度なオフライン – 前述の高度なオフライン機能は役に立ちますが、小売組織の優先順位と値に合っている場合にのみ使用します。 高度なオフライン正常性チェック間隔はオンライン時間を最大化するのに役立ちますが、コマース本社またはコマース スケール ユニットが何らかの理由で応答不能になったり使用できなくなったりすると、レジスタが強制的にオフライン モードにプッシュされます。 タイムアウトや再試行応答の繰り返しを待たずにオフライン モードにすばやく切り替えることで、レジスタのパフォーマンスを最大限に高めることができます。 ただし、ロイヤルティ操作、より多くの支払い方法、顧客注文などの操作を可能にするために、可能な限りオンラインを維持しようとする標準のシームレスオフライン モデルに対して、このアプローチを理解して管理する必要があります。
オフライン データの除外 – 一般に、小さなデータ セットは通常、大規模なデータ セットよりも速くなります。 データベース全体のサイズを減らす必要がある場合 (たとえば、SQL Express では10 ギガバイト [GB] のデータベースしか許可されていない場合) や、POS 端末がオフライン モード中に一般的な操作の一部として照会するデータの量を最小限に抑える必要がある場合は、オフライン データベースの機能に関連しないデータを除外することは重要です。
この機能は、小売組織の業務要件に応じて大きく異なります。 したがって、カスタマイズが機能するために必要なデータや、標準的な日常業務に必要なデータを把握しておくことが重要です。 たとえば、顧客をトランザクションにアタッチする必要がない場合は、オフライン データベースから顧客を除外します。
チャネル データベース グループ – 少なくとも、2 つのチャネル データベース グループが存在する必要があります。1 つは、最初に使用する Commerce Scale Unit (Cloud) 用で、もう 1 つは使用する任意またはすべてのオフライン データベース用です。 大規模な小売企業では、関連するチャネル (店舗) のデータの類似性に基づいて分離された、複数のオフライン中心のチャネル データベース グループを持つ場合があります。
さらに、新しいチャネル データベースの構成に使用できる "ダミー" チャネル データベース グループ、オフライン サポートを持つレジスタ (この場合はオフライン データベースが作成されます)、新しいが未使用の Commerce Scale Units (クラウドまたはセルフホステッド) を用意すると便利です。 この "ダミー" グループは配布スケジュール ジョブに関連付けられていないため、関連付けられているものに対してデータ生成は行われません。 時間と実装の進行状況として、関連付けられているエンティティ (チャネル [ストア] など) を再関連付けし、オフライン データベースを正しいデータベース グループに登録します。 この方法の代わりに、前に説明した オフライン同期の一時停止 機能を使用します。
SQL Server のバージョンとライセンス
SQL Server のバージョンおよびこれらの使用方法の詳細については、Commerce のオフライン実装実装とトラブルシューティング を参照してください。
追加リソース
Commerce Data Exchange のトラブルシューティング
Commerce Data Exchange ベスト プラクティス