Vous êtes ici :
Événements de réplication granulaire
Le système B2C Commerce déclenche des événements de réplication granulaire lorsque la tâche de réplication granulaire se termine, échoue partiellement ou échoue totalement. La réplication granulaire fonctionne au niveau de chaque objet (produits, tables de prix, éléments de contenu) plutôt qu’au niveau du processus de réplication en bloc, de sorte que ses événements signalent les identifiants d’objet individuels qui ont réussi et ceux qui ont échoué.
Disponible en : B2C Commerce version 26.7 et ultérieure.
ID d’événement
| Identifiant d’événement | Description | Lorsqu’il est tiré |
|---|---|---|
sf.cc.replication.granular.completed
|
La réplication granulaire s’est terminée avec succès | Lorsque la tâche de réplication granulaire se termine sans erreur cible et sans aucun objet non démarré, non publié et non invalidé |
sf.cc.replication.granular.failed
|
La réplication granulaire a complètement échoué | Lorsque la tâche se termine dans un état d’erreur et qu’aucun objet de cette exécution n’a réussi |
sf.cc.replication.granular.incomplete
|
Réplication granulaire complétée par un mélange de réussites et d’échecs | Lorsque la tâche se termine dans un état d’erreur, mais qu’au moins un objet de cette exécution a réussi |
En-têtes HTTP
Les événements de réplication granulaire utilisent les en-têtes standard de la plateforme Commerce Cloud documentés dans En-têtes HTTP communs pour les événements B2C Commerce, avec x-sf-cc-event-id défini sur l’ID d’événement de réplication granulaire (par exemple, sf.cc.replication.granular.completed).
Structure de la charge utile JSON — champs communs
| Champ | Type | Requis | Description |
|---|---|---|---|
processId
|
entier | Oui | ID d’exécution de tâche de l’exécution de réplication granulaire |
type
|
string | Oui | Toujours le GRANULAR littéral ; Distingue les événements de réplication granulaire des événements de réplication au niveau du processus |
targetSystem
|
string | Oui | Nom du système cible, généralement Development ou Production |
État
|
string | Oui | État final de la tâche (voir États de processus granulaires) |
Succès
|
booléen | Oui |
vrai uniquement pour les événements terminés ; Faux pour les événements ayant échoué et incomplets |
startDate (en anglais)
|
string | Oui | Horodatage ISO-8601 du début de la tâche ; chaîne vide lorsqu’aucune heure de début de tâche n’a été enregistrée |
endDate
|
string | Oui | Horodatage ISO-8601 de l’émission de l’événement |
Champs spécifiques à l’événement
| Événement | Champs supplémentaires |
|---|---|
sf.cc.replication.granular.completed
|
objets: listes par suivi des identifiants d’objet qui se sont terminés avec succès |
sf.cc.replication.granular.failed
|
errorState (toujours GRANULAR_REPLICATION_FAILURE) et failedObjects: listes par suivi des objets qui ont échoué, chacun avec un identifiant et un état
|
sf.cc.replication.granular.incomplete
|
errorState (toujours GRANULAR_REPLICATION_INCOMPLETE), successfulObjects et failedObjects
|
États granulaires du processus
Le champ état indique l’état final de la tâche de réplication granulaire.
| Valeur | Description |
|---|---|
TERMINÉ
|
Tous les objets en file d’attente exportés, importés et invalidés proprement |
ÉCHEC
|
La tâche s’est terminée par une erreur et n’a produit aucun objet satisfaisant |
INCOMPLET
|
La tâche s’est terminée par une erreur, mais au moins un objet a réussi (résultat partiel) |
Regroupements d’objets
Les champs de charge utile objects, successfulObjects et failedObjects partagent la même structure à trois compartiments, un compartiment par type traçable.
| Champ | Type | Requis | Description |
|---|---|---|---|
Produits
|
tableau | Oui | Entrées par produit |
Tables de prix
|
tableau | Oui | Entrées par table de prix |
contenuAssets
|
tableau | Oui | Entrées par élément de contenu |
Les entrées réussies (dans objects et successfulObjects) contiennent une chaîne d’identifiant. Les entrées ayant échoué (dans failedObjects) contiennent une chaîne d’identification et un code d’état lisible par machine.
Valeurs de l’état de défaillance
Le champ d’état de chaque entrée failedObjects contient un code lisible par machine.
| Valeur | Description |
|---|---|
EXPORT_ERROR
|
Échec de l’exportation à partir du système source pour cet objet |
IMPORT_ERROR
|
Échec de l’importation dans le système cible pour cet objet |
NOT_FINISHED
|
L’objet a été mis en file d’attente ou exporté, mais n’a jamais atteint son état final |
TARGET_ERROR
|
Le système cible a signalé une erreur pour cet objet après l’exportation |
NOT_INVALIDATED objets n’apparaissent pas dans failedObjects. Lorsqu’un objet est importé avec succès mais que l’étape d’invalidation du cache ne se termine pas, l’objet est tout de même signalé dans les listes de réussite (objects ou successfulObjects). Un nombre non invalidé non nul au niveau de la tâche est ce qui provoque l’émission par la tâche d’un événement sf.cc.replication.granular.incomplete plutôt que d’un événement terminé. Exemple : événement de réplication granulaire réussi
{
"processId » : 456,
"type » : « GRANULAR »,
"targetSystem » : « Production »,
"état » : « 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"
}
Exemple : échec d’un événement de réplication granulaire
{
"processId » : 456,
"type » : « GRANULAR »,
"targetSystem » : « Production »,
"état » : « 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"
}
Exemple : événement de réplication granulaire incomplet
{
"processId » : 456,
"type » : « GRANULAR »,
"targetSystem » : « Production »,
"état » : « 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"
}
Notes d’implémentation de la réplication granulaire
-
typeest la chaîne littéraleGRANULAR ;le flux de réplication granulaire par objet est distinct des types d’événementsRéplication,PublicationetCode*au niveau du processus. -
processIdest l’identifiant d’exécution de la tâche de réplication granulaire, et non l’UUID du processus. -
endDateindique la date d’émission de l’événement, et non l’heure de fin de la tâche finale. -
errorStateestGRANULAR_REPLICATION_FAILURE pour lesévénements ayant échoué etGRANULAR_REPLICATION_INCOMPLETEpour les événements incomplets. - Chaque regroupement d’objets (
products,priceTables,contentAssets) est toujours présent dans la charge utile, même s’il est vide. - Les valeurs d’état de défaillance sont des codes lisibles par machine, et non du texte localisé.
- Chaque type d’événement est contrôlé à la fois par la propriété d’événement de réplication globale et par une bascule de fonctionnalité par événement (une pour les événements terminés, échoués et incomplets). Si l’une ou l’autre est désactivée, l’événement n’est pas envoyé.
