Commerce Data Exchange 実装ガイダンス

この記事は、Microsoft Dynamics 365 Commerce環境でデータ同期(Commerce Data Exchange、[CDX])に関連する機能を実装するユーザー向けです。 実装を計画する際に考慮する必要がある概要、実装のヒント、ガイダンスが示されています。 ページ、セットアップ、構成、ベスト プラクティスなどについて説明します。

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

この記事を読む前に、チャネル(ストア)、レジスターとデバイス、そしてストアコマースのオフラインデータベースの概念を理解していることを確認してください。 そのため、デバイス管理の実装ガイドやコマース アーキテクチャの概要など、この記事の最後にあるリソースの一部を確認してください。

重要な Commerce Headquarters ページ

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

データ同期の概要

スケジューラー・ジョブを実行すると、チャネル・データベース・グループは、累積サブジョブにリストされているフィールドから、関連するすべてのチャネルまたはオフライン・データベースの関連データを選択します。 このデータ選択により、データ パッケージが作成されます。 データ パッケージは、一緒に圧縮されたファイルまたは複数のファイルです。 これには、1 つ以上のコピー先データベースに適用する必要があるデータが含まれています。 このデータは、以前に選択されたすべてのデータか、通常は選択されたデータのデルタのいずれかです。 出力先データベースには、チャネル データベースまたはオフライン データベースのいずれかを指定できます。

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

次の図は、コマース本社のさまざまなページと、それらがどのように相互に関連しているかを示しています。 CDXのデータ生成は、これらすべてのページで完全に設定されていなければ実現できません。 データは、ダウンロードまたはアップロードできます。 本社の 2 つの異なるページ ( セッションのダウンロード と セッションのアップロード) でデータ同期の状態を表示できます。 CDX データの生成は、headquarters を通じて行われ、同期 (ダウンロード) されます。 オフラインで生成される現代のPOS(POS)取引データは、データの同期(アップロード)が必要です。

Commerce Data Exchange アソシエーション マップの図。

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

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

パッケージ管理

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

一般に、パッケージは自動的に再試行して、処理を行います。 ただし、さまざまなシナリオにより、パッケージが何らかの方法でスタックし、それ自体が無限に再試行されますが、成功しない可能性があります。 これらのシナリオでパッケージ アプリケーション プロセスのトラブルシューティングを行う際には、ジョブを削除するか、手動で再試行する機能が役立ちます。

これらの機能はCommerceバージョン10.0.12以降で利用可能です。

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

オフラインの詳細

この機能は、オフライン プロファイルで構成できます。 以下の3つの関連する設定があります。

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

オフライン データの除外

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

  • [ スケジューラ ジョブ ] ページで、オプションを [はい ] に設定して、ジョブに対して生成されたすべてのデータ パッケージがオフライン データベースに同期されないようにします。 チャネル データベース ページから除外されたジョブに対して完全データ同期コマンドを実行すると、オフライン データベース内の関連テーブルが空になります (つまり、以前に存在していたすべてのデータが消去されます)。
  • Scheduler サブジョブで、オプションをはいに設定し、サブジョブを含むジョブの関連テーブルがオフライン データベースに同期されないようにします。 たとえば、チャネル データベース SQL テーブル DIRPARTYTABLE は、3 つの異なるスケジューラ ジョブによって同期されます。 したがって、 DIRPARTYTABLE テーブルを除外すると、3 つのジョブすべてによってデータがオフライン データベースに同期されなくなります。 この例表(DIRPARTYTABLE)は、オフラインデータベースに保存されるスタッフ関連データにとって非常に重要ですので除外しないでください。

この機能は、行レベルのフィルター処理の最初のステップでもあります。 コマース本社の コマース チャネル スキーマ ページには、 共有顧客データ テーブルのフィルターという名前の新しいオプションが含まれています。 Commerceチャネル スキーマページを開くには、Retail and Commerce>Headquarters setup>Commerceスケジューラー>チャネル データベース グループに移動し、Commerceチャネル スキーマフィールドで値を選択します。 デフォルト値は AX7です。 オプションを 「はい」に設定することで、共有テーブル内のすべての顧客データにフラグを立てることができます。 この設定は標準的なMicrosoft作成テーブル(カスタム作成されていないテーブル)にのみ適用されます。 このオプションを 「はい」に設定すると、「これによりオフラインデータパッケージのレコードからのみ顧客データが削除されます」というメッセージが表示されます。 顧客データは引き続きチャネルデータベースと同期しています。 顧客データを含むすべてのスケジュール ジョブも、オフライン同期をスキップするようにマークする必要があります。」次に、はいまたはいいえのどちらかを選択できます。 このメッセージは、すべての顧客データジョブについて「 オフラインデータベースからの除外 」オプションを 「はい 」に設定するよう注意喚起しています。 デフォルトでは、1010のジョブだけが顧客データのジョブです。

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

コマースチャネルスキーマのページには、同じオプションデータフィルタリングセクション内にナンバープレートIDオプションを含むフィルターインベントリ寸法も含まれています。 このオプションを 「はい」に設定すると、ナンバープレートIDを含む在庫次元レコードはオフラインデータベースから除外されます。

Important

フィルター 共有顧客データテーブル および ナンバープレートIDを含むフィルターインベントリ次元 はオフラインデータベースにのみ適用されます。 彼らはCommerce Scale Unit(チャネル)データベースに同期されたデータをフィルタリングしません。 チャネルデータベースは常にフルでフィルタリングされていないデータセットを受け取ります。 チャネルデータベースに到達するデータを制限する必要がある場合は、スケジューラジョブやサブジョブ設定など別の仕組みを使いましょう。

実装に関する考慮事項

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

  • スケジューラーのジョブカレンダーを作成:各ジョブはどのくらいの頻度で行われますか? 各ジョブは 1 日に何回発生しますか? 大規模で重要でない仕事は、全体の環境があまり使われていないオフライン時間帯にしか行われないのでしょうか? カレンダー(物理的または仮想的)を作成することで、ジョブがパフォーマンスに影響を与える他のワークロード(例えばステートメントの投稿)、稼働時間、外部データのバッチ処理、そして指定時間(またはCDXジョブのように一日中頻繁に)にデータをプッシュまたはプルするカスタマイズなど、どのように交差するかを学ぶことができます。

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

  • 高度なオフライン:前述の高度なオフライン機能は役立ちますが、小売組織の優先事項や価値観に合った場合にのみ使用してください。 高度なオフライン正常性チェック間隔はオンライン時間を最大化するのに役立ちますが、コマース本社またはコマース スケール ユニットが何らかの理由で応答不能になったり使用できなくなったりすると、レジスタが強制的にオフライン モードにプッシュされます。 タイムアウトや再試行応答の繰り返しを待たずにオフライン モードにすばやく切り替えることで、レジスタのパフォーマンスを最大限に高めることができます。 ただし、ロイヤルティ操作、より多くの支払い方法、顧客注文などの操作を可能にするために、可能な限りオンラインを維持しようとする標準のシームレスオフライン モデルに対して、このアプローチを理解して管理する必要があります。

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

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

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

    また、新しいチャンネルデータベースやオフライン対応のレジスタ(この場合はオフラインデータベースが作成されます)、さらには新しく使われていないCommerce Scale Units(クラウドまたはセルフホスト)を設定するためのダミーチャンネルデータベースグループを持つのも役立ちます。 このダミーグループは配布スケジュールジョブに紐づいていないため、関連するものに対してデータ生成は一切起こりません。 時間と実装の進展に伴い、関連するエンティティ(例えばチャネル[ストア]やオフラインデータベースのレジスタ)を正しいデータベースグループに再関連付けしてください。 この方法の代わりに、前に説明した オフライン同期の一時停止 機能を使用します。

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

SQL Serverのバージョンや使い方について詳しく知りたい方は、Commerce Offline Implementation and Troubleshoot(オフライン実装とトラブルシューティング)をご覧ください。

その他のリソース