次の方法で共有


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

この記事は、Microsoft Dynamics 365 Commerce 環境に、データ同期 Commerce Data Exchange (CDX) に関連する機能を実装するユーザーを対象としています。 実装にあたってのベスト プラクティスのアドバイスを提供します。

データの構成と同期を適切に行うことは、実装が正しく機能するために非常に重要となります。 ビジネス要件、IT インフラストラクチャ、および全体的な準備にかかわらず、データが正しく同期されていないと、環境全体が実質的に役に立たなくなります。 したがって、Commerce headquarters から Commerce Scale Unit を経由してオフライン データベースを持つ Store Commerce アプリを使用する実店舗に至るまで、完全な実装の全体にわたってデータの設定、生成、同期、検証に必要なものを把握することが最優先事項です。

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

この記事の主な内容は以下の表にまとめました。最初の列にはタグの似た「関連する領域」のリストが含まれており、関心のある分野に関するベストプラクティスをすばやく見つけることができます。 新しい実装については、これらのテーブルをコピーし、さまざまなベスト プラクティスが完成したときにチェックできる場所にコピーしておくと役立つ場合があります。 このようにして、本番に移る前に可実装が準備されているかどうかを能な限り確認することができます。

次のコンフィギュレーションがリリースされましたが、一部の使用シナリオでは役に立たない可能性のあるロジックが変更されます。 これらの機能はテスト済ですが、完全に検証されていないシナリオもあります。 次の表では、機能の信頼性に関する情報を提供するために満期がリスト化されています。

機能は月によって変化しますので、特定の機能の満期や新しい機能が追加されたかどうかに関して、もう一度確認する価値があります。 次の機能のいずれかを適用するには、Retail と Commerce > 本社の設定 > パラメーター > コマース共有パラメーターの順に移動します。 左端のメニューで、コンフィギュレーション パラメーターを選択します。 表示されるページで、名前フィールドにキー (下の表に示す) を入力し、既定値を (下の表の説明列に示す) をフィールドに入力します。

機能 キー 説明 満期
遅延ダウンロード セッションを作成 CDX_ENABLE_DELAYED_OFFLINE_DOWNLOAD_SESSION_CREATION このパラメーターによって、ダウンロード セッションが作成されるのを、Store Commerce アプリ デバイスが有効になるまで遅らせます。 この遅延により、長い期間使用されない可能性がある不必要なダウンロード セッションは作成されません。 既定値は、0 で無効です。 機能を有効にするには、値を 1 に設定します。

(機能はバージョン 10.0.15 にリリースされました)
パッケージ注文の実施 CDX_ENABLE_DOWNLOAD_SESSION_DEPENDENCY_ENFORCEMENT このパラメータによって、ダウンロード セッション アプリケーションが順番に適用されます。 ダウンロード セッション アプリケーションが失敗した場合 (既定の値は 3 に定義された試行回数値で定義された試行回数の後に発生する場合)、そのセッションは一時中断としてマークされ、中断したセッションが再試行またはキャンセルされるまでセッション アプリケーションは続行されません。 このキーを使用して、以前に適用されたセッション (利用可または一時中断ではないセッション) を再実行することはできません。

この機能により、順不同でダウンロード セッションを適用した後に発生する固有のキー例外が原因で、ダウンロード セッションの失敗を防ぐことができます。 既定値は、0 で無効です。
中程度

(機能はバージョン 10.0.18 にリリースされました)
失敗時のロール バック CDX_ENABLE_ROLLBACK_ON_FAILURE このキーは既知問題のため、使用をお勧めしません。 オフライン データベースからチャンネル データベースに (P ジョブ配送スケジュールに基づいて) トランザクションを同期する場合、通常、レコードがマージされます。 つまり、トランザクション ID が重複するレコードが上書きされます。 この機能を使用すると、オフライン同期によってレコードが挿入されます。 この挿入により、上書きとエラー修正が防止され、問題を調査できます。 この時点で、オフライン トランザクションの投稿同期の消去が失敗し、挿入エラーが発生してオフライン同期が停止する可能性があります。このため、現在は機能設定を無効にすることをお勧めします。 既定値は 1 で、既定により有効です。 この値を 0 に変更することを強くお勧めします。 既知の問題が原因で、低いです。

(機能はバージョン 10.0.13 にリリースされました)

コンフィギュレーションの更新

Commerce スケジューラの基本コンフィギュレーション データを初期化する前に、次の手順を実施する必要があります。

  • サービス更新を適用します。
  • コンフィギュレーション キーに影響を与える Commerce の機能を有効にします。

基本コンフィギュレーション データを初期化するには、次の操作を行います。

  1. Retail とコマース > バックオフィスの設定 > コマース スケジューラ > コマース スケジューラの初期化の順に移動します。

    コマース スケジューラの基本構成データの初期化を続行するかどうかの確認を求められます。 更新のたびにこのアクションを実行することは、新しいテーブルまたは列の構成データを正しく設定する機能を管理するのに重要です。

  2. 既存のコンフィギュレーションの削除を行うパラメーターもあります。 有効に設定するよう明示的に指示されているか、またはコンフィギュレーションが失われても影響が生じない非運用環境で作業しているのでない限り、この設定はいいえのままにします。

メモ

Commerce バージョン 10.0.24 リリース以降、Commerce スケジューラは Commerce 本部の更新後に自動的に実行するように設定できます。 Commerce 本部でこの機能を有効にするには、ワークスペース > 機能管理に移動し、本部の機能が更新された後に "Commerce スケジューラの初期化" を実行する機能を有効にしてください。

便利な構成

関連する領域 ベスト プラクティス
  • パラメーター
  • コマース スケジューラ
  • 再試行
小売とコマース > バックオフィスの設定 > パラメーター > コマース スケジューラー パラメーターに移動し、試行回数3 に設定します。 このフィールドの値が大きすぎる場合は、利用率の高い時間帯にダウンロード セッションが失敗する可能性があります。 また、完全なデータセットの生成サイクル間隔の日単位0 に確認 (または設定) します。 これは、完全なデータセットの生成は、時間以外に必要とされない限り発生しないことを意味します。 これらの値を設定することにより、CDX を予定した方法で機能させることができ、エラーの発生またはパフォーマンスの問題を減らすことができます。
  • 機能プロファイル
  • データのリテンション期間
  • 返品ポリシー
小売とコマース > チャネル設定 > POS 設定 > POS プロファイル > 機能プロファイル に移動し、続いて機能セクションで、トランザクションの存在日数を返品ポリシーに対して定義されている値と同じか、またはそれに近い値に設定します。 たとえば、返品ポリシーに 30 日以内の返品可能と記載されている場合は、このフィールドを 3031 に設定したり、または、通常のポリシーを超える特別な例外が可能な場合は 60 に設定します (この場合は通常の返品ポリシー期間の倍になるため、通常のポリシーの制限を超えてもより迅速な返品が可能となります)。
  • チャネル データベース グループ
  • 配送スケジュール
  • オフライン プロファイル
  • 一時停止
  • データ
  • ダウンロード
新たに生成された端末に割り当てる "ダミー" のデータベース グループ (どの配布スケジュール ジョブにも関連付けられていないグループ)、またはオフライン同期の一時停止 オプションが はい に設定されている特別なオフライン プロファイルのいずれかを持つことを強くお勧めします。 このようにして、データ生成は、必要なときにシステムが最も可用性が高い時に行うことができます。 (ただし、システムによっては必要に応じて何度か一時停止する場合があります。)

テーブルとインデックスの圧縮の有効化

メモ

Commerce Version 10.0.29 では、インデックスの圧縮を自動化するための機能が追加されました。 次のガイダンスは、その機能がオフになっている場合、またはテーブルのみを対象にしています。 詳細については、Commerce オフライン実装を参照してください。

この記事を読む前に、Commerce Data Exchange 実装ガイダンスのオンプレミス データベース コンポーネント (CSU の一部としてオフライン データベースおよびチャンネル データベース) で使用される SQL Server の各種の推奨バージョンについて読み取る方をお勧めします。 Store Commerce アプリのオフライン データベースおよび CSU のチャンネル データベース (セルフホスト型) など、テーブル/インデックスの圧縮を、その上の施設のデータベースで有効にすることが重要です。 この機能は、SQL Server 2016 SP1 Express、SQL Server 2017 Express、SQL Server 2019 Express および以降でのみサポートされます。 まだ SQL Server Express 2014 を実行している場合は、新しいバージョンにアップグレードする必要があります。 ディスク領域を使用して、トップ テーブルのレポートを作成します (SQL Server Management Studio > レポート > スタンダード レポート > トップ テーブルによるディスク用途)。 その後、レポートの上部にある各テーブルおよびインデックスの圧縮を有効にできます。 基本コマンドを次に示します。

ALTER TABLE [ax].<table_name> REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE)
ALTER INDEX <index1_name> ON [ax].<table_name> REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE)
ALTER INDEX <index2_name> ON [ax].<table_name> REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE)

圧縮からメリットを頻繁に受けるテーブルの例として、この例では ax.INVENTDIM を使用します。

sp_helpindex 'ax.INVENTDIM'

上記のクエリには、選択したテーブルのすべてのインデックスが表示されます (そのリストはコマンドの次のセットで以下に示します)。 そのクエリに基づいて、最初にこの記事で示した基本的なコマンドを使用して、テーブルと関連のすべてのコマンドを圧縮できます。

ALTER TABLE [ax].[INVENTDIM] REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE)
ALTER INDEX [I_-65082180_-588450352] ON [ax].[INVENTDIM] REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE)
ALTER INDEX [I_-65082180_-997209838] ON [ax].[INVENTDIM] REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE)
ALTER INDEX [IX_INVENTDIM_DATAAREAID_CONFIGID_INVENTSIZEID_INVENTCOLORID_INVENTSTYLEID_INVENTLOCATIONID] ON [ax].[INVENTDIM] REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE)
ALTER INDEX [IX_INVENTDIM_DATAAREAID_INVENTLOCATIONID] ON [ax].[INVENTDIM] REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE)
ALTER INDEX [IX_INVENTDIM_DATAAREAID_INVENTLOCATIONID_RECID] ON [ax].[INVENTDIM] REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE)
ALTER INDEX [IX_INVENTDIM_INVENTLOCATIONID_INVENTSITEID_LICENSEPLATEID_WMSLOCATIONID_WMSPALLETID_CONFIGID] ON [ax].[INVENTDIM] REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE)
ALTER INDEX [IX_INVENTDIM_RECID] ON [ax].[INVENTDIM] REBUILD PARTITION = ALL WITH (DATA_COMPRESSION = PAGE)

適切なデータベース サイズに到達するまで、レポートのトップ テーブルに対して、このセクションを繰り返すことをお勧めします。

パフォーマンスに影響を与えるプラクティス

関連する領域 ベスト プラクティス
  • チャネル データベース グループ
  • オフライン プロファイル
  • 一時停止
  • データ
  • ダウンロード

オフライン データベースが使用できるように、データが必要になるまではオフライン データベース用のデータを生成しないでください。 次のシナリオでは、なぜこのベスト プラクティスが重要なのかを示しています。

関連するチャネル データベースのグループに追加された新しい Store Commerce アプリのオフライン データベースは、データベースの完全な同期が行われた後の既存のダウンロード セッションをすべて継承します。 オフライン端末を持つ Store Commerce アプリ インスタンスが新たに 100 個作成され、2 ヶ月間完全な同期が発生していません。 20 分ごとに実際に変更があるのは、5 つのスケジューラ ジョブだけです。 (たとえば、これらの変更には価格と割引、または頻繁に更新される顧客が含まれる場合があります)。このシナリオでは、新たに作成された端末が有効化されているか、このデータを適用できるかどうかに関わらず、最大で 200 万のダウンロード セッションがただちに生成され、適用する必要があります。

多くの場合、このタイプの例外的なデータ生成は大規模であり、パフォーマンスに影響します。 稼働率の高い (最も忙しい時間) 時間帯の場合、環境のパフォーマンスが著しく損なわれることになります。 そのため、新たに生成された端末に割り当てる "ダミー" のデータベース グループ (どの配布スケジュール ジョブにも関連付けられていないグループ) を持つか、またはオフライン プロファイルで使用するオフライン同期の一時停止 オプションを はい に設定することを強くお勧めします。 オフライン同期の一時停止オプションを はいに設定することで、オフライン プロファイルを使用したすべてのデータ生成を停止できます。 そのため、データの生成は必要となったタイミングでのみ行われ、システムの可用性が高い状態でのみ行われます。 (ただし、システムによっては必要に応じて何度か一時停止する場合があります。)

  • 配送スケジュール
  • スケジューラ ジョブ
  • アップロード
P-ジョブ (アップロード バッチ ジョブ) は複数実行できません。 並行して発生する可能性のある P- ジョブ アップロードの一括ジョブが複数作成された場合、アップロードされたトランザクションのデータを適用している間にテーブル ロックや遅延 (パフォーマンスの低下) が発生する可能性があります。 同時に複数のジョブを実行する必要はありません。 頻繁に発生する可能性が考えられます。
  • パラメーター
  • コマース スケジューラ
  • データベースの事後同期
Retail と Commerce> 本社の設定> パラメーター> コマース スケジューラー パラメーターの順にクリックします。 データベース同期の転記下位ヘッダーの下に、さまざまな理由でパフォーマンスに影響を与える可能性がある 2 つのフィールドがあります。

同期完了後不要なマスター データをクリーン アップするによって、CDX のダウンロード セッションが実行されるたびに店舗の業務手順のマスター データのストライピングを実行します。 この手順により、パッケージの生成に含まれるものの、特定の店舗 (チャネル) のメンバーとして特定のデバイスのオフライン機能には必要ない不要なレコードは削除されます。 この機能は、オフライン データベースに格納されているデータを最小限に抑えるのに役立ちます。 Express バージョンの SQL を使用する場合、データベースが小さいほうがパフォーマンスを向上させ、サイズの問題を最小限にすることができます。 一部のカスタム SQL ビューで、この機能を認識していないテーブル間の依存関係が発生し、機能にエラーが生じる可能性がある場合は、最初にサンドボックス内のこの機能をテストすることをお勧めします。

データベース統計の自動最適化によって、チャネル データベースに適用される CDX ダウンロード セッション内の各テーブルのテーブル統計で更新が実行されます。 古いテーブル統計において、断片化されたインデックスよりも大きいパフォーマンスの問題が発生します。 有効になっている場合、コンフィギュレーション パラメーターに特定のフラグを追加することもお勧めします。 これを使用する場合は、Retail と Commerce > 本社の設定 > パラメーター > コマース共有パラメーターの順にクリックし、コンフィギュレーション パラメーター一覧に移動して、新しいフラグ CDX_ENABLE_UPDATE_STATISTICS_FOR_REQUIRED_TABLE1 を入力します。 将来のリリースでこのコンフィギュレーション パラメーターがすべての環境に自動的に追加されますが、その存在を確認するのが重要であることに注意してください。

追加リソース