価格変更追跡機能に関するバッチ ジョブの問題

この記事では、Microsoft Dynamics 365 Commerceでの価格変更追跡バッチ ジョブに関する一般的な問題の解決策について説明します。

現象

Microsoft Dynamics 365 Commerce価格変更追跡機能は、バックグラウンドで実行されるバッチ ジョブをトリガーします。 バッチ ジョブに関する一般的な問題を次に示します。

  • 価格変更追跡バッチ ジョブには長い時間がかかります。
  • 価格変更追跡バッチ ジョブが多数トリガーされ、キューで待機しています。

解決方法

問題を解決するには、次の手順に従います。

手順 1: バッチ ジョブの作成を停止する

より多くのバッチ ジョブの作成を停止するには、次の手順に従います。

  1. コマース本社で、 小売およびコマース>本社のセットアップ>パラメーター>コマース共有パラメーター>価格と割引に移動します。
  2. [ 価格変更の追跡] で、グリッドからすべての法人を削除し、[保存] を選択 します
  3. アプリケーション オブジェクト サーバー (AOS) を再起動します。

一般に、価格変更追跡機能を有効にする前に 、価格変更追跡バッチ ジョブのバッチ グループを指定 することをお勧めします。 このアクションにより、既定のバッチ ジョブ プールをブロックするのではなく、価格変更追跡バッチ ジョブの AOS インスタンスへの影響が制限されます。

手順 2: 既存のバッチ ジョブを停止してクリアする

既存のバッチ ジョブを停止してクリアするには、コマース本社データベースで次の SQL スクリプトを実行します。

-- find the existing executing jobs
select count(*) from BATCH where CAPTION like '%Price change%' and status = 2 --executing
select count(*) from BATCHJOB where CAPTION like '%Price change%' and status = 2 --executing

-- update the job status (DO NOT update to 0-Hold status; when the batch service restarts, they will be picked up again.) 
update BATCH set STATUS = 3 where CAPTION like '%Price change%' and STATUS = 2 --set to error
Update BATCHJOB set STATUS = 3 where CAPTION like '%Price change%' and STATUS = 2 --set to error

-- clear the jobs
delete from BATCH where CAPTION like '%Price change%' and status = 3 --error
delete from BATCHJOB where CAPTION like '%Price change%' and status = 3 --error