詳細情報:
粒度の細かいレプリケーション イベント
B2C Commerce システムは、きめ細かなレプリケーションジョブが完了したとき、部分的に失敗したとき、または完全に失敗したときに、きめ細かいレプリケーションイベントを発生させます。粒度の細かいレプリケーションは、一括レプリケーション処理レベルではなく、オブジェクトごとのレベル (商品、価格テーブル、コンテンツアセット) で動作するため、そのイベントによって、成功した個々のオブジェクト ID と失敗したオブジェクト ID がレポートされます。
使用可能なソリューション:B2C Commerce リリース 26.7 以降。
イベント ID
| イベント ID | 説明 | 発射時 |
|---|---|---|
sf.cc.replication.granular.completed
|
きめ細かなレプリケーションが正常に完了しました | 粒度の細かいレプリケーションジョブが、ターゲットエラーなしで終了し、開始されていないオブジェクト、パブリッシュされていないオブジェクト、無効化されていないオブジェクトがゼロの場合 |
sf.cc.replication.granular.failed
|
きめ細かなレプリケーションが完全に失敗しました | ジョブがエラー状態で終了し、この実行で成功したオブジェクトがない場合 |
sf.cc.replication.granular.incomplete
|
成功と失敗が混在するきめ細かなレプリケーション | ジョブがエラー状態で終了したが、この実行で少なくとも 1 つのオブジェクトが成功した場合 |
HTTP ヘッダー
粒度の細かいレプリケーションイベントでは、「B2C Commerce イベントの一般的な HTTP ヘッダー」に記載されている標準の Commerce Cloud プラットフォームヘッダーを使用し、x-sf-cc-event-idを粒度の高いレプリケーションイベント ID ( 例: sf.cc.replication.granular.completed ) に設定します。
JSON ペイロード構造 — 共通フィールド
| フィールド | タイプ | 必要あり | 説明 |
|---|---|---|---|
プロセス ID
|
integer | あり | 粒度の細かいレプリケーション実行のジョブ実行 ID |
type
|
string | あり | 常にリテラルGRANULAR;きめ細かなレプリケーション・イベントとプロセス・レベルのレプリケーション・イベントを区別 |
targetSystem (ターゲットシステム)
|
string | あり | ターゲット・システム名(通常は「開発」または「本番」) |
state
|
string | あり | ジョブの最終状態 (「詳細なプロセスの状態」を参照) |
成功
|
ブール値 | あり |
完了したイベントに対してのみtrue。失敗したイベントと不完全なイベントの場合は false |
開始日
|
string | あり | ジョブ開始の ISO-8601 タイムスタンプ。ジョブの開始時刻が記録されていない場合の空の文字列 |
終了日
|
string | あり | イベントが発行されたときの ISO-8601 タイムスタンプ |
イベント固有のフィールド
| イベント | 追加フィールド |
|---|---|
sf.cc.replication.granular.completed
|
objects : 正常に完了したオブジェクト ID の追跡可能なリスト |
sf.cc.replication.granular.failed
|
errorState (常にGRANULAR_REPLICATION_FAILURE ) とfailedObjects : 失敗したオブジェクトの追跡可能なリストで、それぞれにIDとステータスがあります。
|
sf.cc.replication.granular.incomplete
|
errorState (常にGRANULAR_REPLICATION_INCOMPLETE )、successfulObjects、およびfailedObjects
|
きめ細かなプロセス状態
stateフィールドは、粒度の細かいレプリケーションジョブの最終状態を示します。
| 値 | 説明 |
|---|---|
完了しました
|
キューに入れられたすべてのオブジェクトは、クリーンにエクスポート、インポート、および無効化されます |
失敗
|
ジョブはエラーで終了し、正常なオブジェクトは生成されませんでした |
不完全
|
ジョブはエラーで終了したが、少なくとも 1 つのオブジェクトが成功した (部分的な結果) |
オブジェクトバケット
objects、successfulObjects、failedObjectsの各ペイロードフィールドは、同じ 3 バケット構造 (追跡可能なタイプごとに 1 つのバケット) を共有します。
| フィールド | タイプ | 必要あり | 説明 |
|---|---|---|---|
products
|
配列 | あり | 商品ごとのエントリ |
価格テーブル
|
配列 | あり | 価格テーブルごとのエントリ |
コンテンツアセット
|
配列 | あり | コンテンツアセットごとのエントリ |
成功したエントリ ( objectsおよびsuccessfulObjects ) にはid文字列が含まれます。失敗したエントリ ( failedObjects内) には、id文字列と機械可読ステータスコードが含まれます。
失敗ステータス値
各failedObjectsエントリのstatusフィールドには、機械可読コードが含まれています。
| 値 | 説明 |
|---|---|
EXPORT_ERROR
|
このオブジェクトのソース システムからのエクスポートに失敗しました |
IMPORT_ERROR
|
このオブジェクトのターゲット・システムへのインポートに失敗しました |
NOT_FINISHED
|
オブジェクトはキューに入れられたかエクスポートされたが、完了状態に達しなかった |
TARGET_ERROR
|
ターゲット・システムは、エクスポート後にこのオブジェクトのエラーを報告しました |
NOT_INVALIDATEDオブジェクトはfailedObjectsには表示されません。オブジェクトが正常にインポートされても、キャッシュ無効化ステップが完了しない場合でも、オブジェクトは成功リスト ( objectsまたはsuccessfulObjects ) でレポートされます。ゼロ以外のジョブレベルの無効化されていないカウントは、ジョブが完了イベントではなくsf.cc.replication.granular.incompleteイベントを発行する原因です。例: 粒度の細かいレプリケーション イベントの成功
{
"processId": 456,
"type":"GRANULAR",
"targetSystem":"Production",
"state":"COMPLETED",
"success": true,
"objects": {
"products": [
{ "id": "prod-001" }
],
"priceTables": [
{ "id": "prod-001@usd-prices" }
],
"contentAssets": []
},
"startDate":"2026-03-11T22:13:20Z",
"endDate":"2026-03-11T22:13:25Z"
}
例: 粒度の細かいレプリケーションの失敗イベント
{
"processId": 456,
"type":"GRANULAR",
"targetSystem":"Production",
"state":"FAILED",
"success": false,
"errorState":"GRANULAR_REPLICATION_FAILURE",
"failedObjects": {
"products": [
{ "id": "prod-001", "status":"TARGET_ERROR" }
],
"priceTables": [],
"contentAssets": []
},
"startDate":"2026-03-11T22:13:20Z",
"endDate":"2026-03-11T22:13:25Z"
}
例: 不完全な粒度の細かいレプリケーション イベント
{
"processId": 456,
"type":"GRANULAR",
"targetSystem":"Production",
"state":"INCOMPLETE",
"success": false,
"errorState":"GRANULAR_REPLICATION_INCOMPLETE",
"successfulObjects": {
"products": [
{ "id": "prod-001" }
],
"priceTables": [
{ "id": "prod-001@usd-prices" }
],
"contentAssets": []
},
"failedObjects": {
"products": [
{ "id": "prod-002", "status":"IMPORT_ERROR" }
],
"priceTables": [
{ "id": "prod-003@eur-prices", "status":"NOT_FINISHED" }
],
"contentAssets": []
},
"startDate":"2026-03-11T22:13:20Z",
"endDate":"2026-03-11T22:13:25Z"
}
きめ細かなレプリケーションの実装に関する注意事項
-
typeはリテラル文字列GRANULAR;オブジェクトごとの粒度の細かいレプリケーションフローは、プロセスレベルのレプリケーション、パブリケーション、およびコード*イベントタイプとは異なります。 -
processIdは、プロセス UUID ではなく、詳細なレプリケーションジョブの実行 ID です。 -
endDateは、最終的なジョブの終了時刻ではなく、イベントが発行された時刻を反映します。 -
errorStateは、失敗したイベントの場合はGRANULAR_REPLICATION_FAILURE、不完全なイベントの場合はGRANULAR_REPLICATION_INCOMPLETEです。 - 各オブジェクトバケット (
products、priceTables、contentAssets) は、空の場合でも常にペイロードに存在します。 - エラーステータス値は機械可読コードであり、ローカライズされたテキストではありません。
- 各イベントの種類は、グローバル レプリケーション イベント プロパティとイベントごとの機能トグル (完了、失敗、および未完了のイベントに対してそれぞれ 1 つ) の両方によってゲートされます。どちらかが無効になっている場合、イベントは送信されません。
