Guide · Imports CSV · Clés métier
Comment éviter les doublons en important à nouveau le même CSV ?
Réponse courte
Identifiez chaque opération par une clé métier et un périmètre de destination stables, adoptez toute ligne déjà soumise pendant l’enregistrement et vérifiez chaque résultat. Ritoko ignore normalement les clés confirmées et met en revue les écritures incertaines, mais son journal local ne garantit pas l’absence de doublons.
Mis à jour le
À quoi ressemble une bonne clé métier ?
Une clé représente l’opération métier plutôt que la position d’une ligne dans un fichier. Pour créer un client, une adresse e-mail peut convenir si la destination la considère unique. Pour une facture, préférez une référence de facture externe. Pour un rapport mensuel, incluez le compte et la période afin que les opérations d’octobre et de novembre soient distinctes.
Les numéros de ligne, horodatages générés à chaque exécution et noms de fichiers changent lorsque vous réorganisez ou réexportez les données. Ils ne permettent pas d’identifier fiablement la même opération. Choisissez et normalisez les identifiants avant le lot, en conservant les zéros initiaux lorsqu’ils ont un sens.
Comment distinguer les comptes et les destinations ?
La déduplication repose sur le nom du workflow, items.scope et la clé métier. Définissez le périmètre à partir de la destination, du compte et de l’opération. L’URL du back-office seule ne suffit pas si plusieurs comptes utilisent cette URL. Le nom du fichier d’entrée ne doit pas servir de périmètre.
"items": {
"from": "{{param.input}}",
"key": "{{item.InvoiceReference}}",
"scope": "{{param.base}}|{{param.account}}|create-invoice"
}Cet extrait illustre un workflow de facturation ; ses paramètres et ses contrôles de destination doivent aussi être définis. Un périmètre vide partage les clés entre plusieurs contextes et peut faire ignorer des lignes légitimes dans un autre compte. Corrigez l’avertissement de périmètre vide avant un vrai lot.
Que faire de la ligne créée pendant l’enregistrement de la tâche ?
Cette ligne existe déjà avant le début de la reprise. Après avoir enregistré le workflow, utilisez run_adopt avec la ligne d’entrée complète et exacte et une note de preuve. L’adoption exécute les vérifications et inscrit la ligne soumise dans le journal pour que le prochain lot puisse l’ignorer. Ne soumettez pas à nouveau la ligne de démonstration tant que l’adoption ou son résultat n’est pas réglé.
Testez la procédure sur un petit lot autorisé. Vérifiez la clé métier, le périmètre, l’étape irréversible commit et le contrôle expect propre à la ligne avant de traiter le reste.
Que se passe-t-il si je relance le lot ou modifie le fichier ?
- Une clé confirmée avec les mêmes données de ligne est normalement ignorée.
- Des données différentes pour une clé terminée sont bloquées ; la procédure de création ne devient pas silencieusement une mise à jour.
- Les clés répétées dans un même fichier d’entrée sont rejetées avant traitement.
- Une clé incertaine reste bloquée, y compris lors d’une répétition explicite.
repeat: true ou l’option CLI --repeat relance volontairement les éléments terminés. Utilisez-la uniquement si répéter l’effet est voulu. Changer le nom du workflow ou supprimer le journal peut aussi effacer le contexte qui empêchait une répétition.
Pour une API HTTP distante qui documente la prise en charge des clés d’idempotence, Ritoko peut envoyer un en-tête Idempotency-Key stable. Cet en-tête n’aide que si le service destinataire respecte son contrat. Les imports indépendants, la saisie manuelle et une autre installation ne sont pas suivis par ce journal. Consultez le contrat du workflow.
Questions fréquentes
Une clé fondée sur l’adresse e-mail garantit-elle l’absence de doublons ?
Non. La clé doit correspondre à l’identité métier de la destination, et le périmètre et les contrôles doivent être corrects. Le journal de Ritoko ne suit pas non plus les soumissions indépendantes.
Puis-je utiliser le nom du CSV comme périmètre ?
Non. Utilisez la destination, le compte et les paramètres de l’opération. Un nouveau nom de fichier ne doit pas faire passer une opération existante pour une nouvelle.