API Bulk (import/export de données)
Migrations, chargements d’ouverture, fichiers d’interface mensuels — quand le nombre d’enregistrements se compte en milliers, l’outil adapté est l’API Bulk standard (et son visage plus convivial, Data Loader). Sur les objets REDA Financials, elle se comporte exactement comme REST, en conservant intacte une propriété essentielle : chaque déclencheur s’exécute sur chaque ligne ; les documents chargés en masse sont donc de vrais documents — numérotés, validés, prêts à être comptabilisés.
La méthode de chargement qui fonctionne
Chargez dans l’ordre des dépendances, en brouillon
Les données de référence d’abord (comptes, produits, comptes généraux — généralement via l’interface ou la configuration, pas en masse), puis les en-têtes de documents (Brouillon), puis les lignes. Conservez votre référence source dans le champ Référence pour la traçabilité et l’idempotence.
Comptabilisez lors d’un second passage
Une mise à jour en masse qui fait passer refin__Status__c à 'Posted' (la valeur d’API du statut Comptabilisé) exécute le moteur complet pour chaque enregistrement. Vous pouvez aussi comptabiliser depuis l’interface avec la Comptabilisation en masse — même mécanique, avec un tableau de résultats lisible par un humain. Dans les deux cas, les échecs sont traités enregistrement par enregistrement : les réussites sont conservées, et le fichier d’erreurs indique la raison exacte de chaque échec.
Vérifiez en comptable, pas en ingénieur
Un nombre de lignes identique est nécessaire, mais pas suffisant : exécutez la balance générale et rapprochez-la du système source. Le guide de migration fournit la liste de contrôle complète.
Conseils de réglage pour les objets comptables
- La comptabilisation est l’étape lourde — le moteur de taxes, les écritures dans le grand livre et les validations s’exécutent pour chaque document. Utilisez des tailles de lot modérées lors du passage de comptabilisation (commencez autour de 50 à 100 documents par lot et observez) plutôt que de pousser au maximum ; le mode série évite la contention de verrous sur les parents partagés comme les entités et les séquences.
- La numérotation des documents sous charge est sûre — les séquences attribuent les numéros de façon atomique ; des insertions parallèles ne dupliqueront pas de numéros. Si vous conservez plutôt les numéros de l’ancien système, renseignez explicitement le champ Nom : son unicité est validée.
- Les exports sont simples — une requête Bulk sur n’importe quel objet
refin__; le grand livre (refin__Accounting_Transaction__c) s’exporte proprement pour alimenter un entrepôt de données.
L’API Bulk 2.0, appel par appel
Le cycle de vie standard d’une tâche, appliqué aux objets refin__ :
| Étape | Méthode et point de terminaison |
|---|---|
| Créer une tâche d’ingestion | POST /services/data/v65.0/jobs/ingest (le corps de la requête indique l’objet, par exemple refin__Purchase_Invoice__c, et l’opération) |
| Téléverser le CSV | PUT /services/data/v65.0/jobs/ingest/{jobId}/batches |
| Lancer le traitement | PATCH /services/data/v65.0/jobs/ingest/{jobId} avec l’état UploadComplete |
| Interroger régulièrement le statut | GET /services/data/v65.0/jobs/ingest/{jobId} |
| Récupérer les résultats | GET …/{jobId}/successfulResults et …/{jobId}/failedResults |
| Exporter à grande échelle | POST /services/data/v65.0/jobs/query avec votre requête SOQL |
Le passage de comptabilisation est le CSV le plus simple que vous enverrez jamais — des Id d’enregistrement et un seul champ :
Id,refin__Status__c
a0Y8d000002GhIjEAK,Posted
a0Y8d000002GhIkEAK,Posted
a0Y8d000002GhIlEAK,Posted
Chaque ligne en échec est consignée dans failedResults avec le message de validation du package, mot pour mot, dans la colonne d’erreur — la même phrase que lirait un utilisateur, prête pour votre feuille de rapprochement.
Le chargement d’ouverture de Meridian, en chiffres
Lors de la mise en production de l’entité britannique de Meridian Properties Group, la bascule a consisté en trois tâches Bulk exécutées à la suite un samedi : 1 830 en-têtes de factures de vente ouvertes (Brouillon), leurs 2 614 lignes, puis le passage de comptabilisation. La tâche de comptabilisation a renvoyé 1 821 réussites et 9 échecs — tous avec le même message, concernant une période qui n’avait pas été ouverte pour les plus anciennes factures de l’ancien système. L’équipe a ouvert la période, relancé un CSV de 9 lignes et rapproché la balance générale de l’ancien système avant le déjeuner du dimanche. La leçon qu’elle en a retenue : le fichier d’erreurs est la liste des corrections à faire — courte, littérale et limitée.
Erreurs courantes à éviter
| Erreur | Pourquoi c’est un problème | À faire plutôt |
|---|---|---|
| Charger les lignes avant que leurs en-têtes soient terminés | Les lignes font référence à des en-têtes qui n’existent pas encore — une avalanche d’échecs sur les champs de relation | Enchaînez les tâches : en-têtes terminés, puis lignes, puis passage de comptabilisation |
| Pousser le parallélisme au maximum lors du passage de comptabilisation | La comptabilisation est l’étape lourde ; les lots parallèles se disputent les verrous sur les parents partagés (entités, séquences, périodes) | Mode série ou concurrence modérée pour la comptabilisation ; observez, puis augmentez |
| S’attendre à un « mode de chargement de données » qui ignore la validation | Il n’en existe pas — les 52 déclencheurs du package s’exécutent sur chaque ligne Bulk, sans indicateur de contournement, délibérément | Préparez des données conformes aux règles ; les règles sont le produit |
| Charger des documents historiques dans des périodes déjà clôturées | Chaque ligne est bloquée par le contrôle de clôture | Ordonnez la migration : chargez et comptabilisez l’historique d’abord, définissez les dates de clôture en dernier |
| Considérer la parité du nombre de lignes comme un succès | Toutes les lignes sont chargées, mais la comptabilité reste fausse — les montants, les devises ou les correspondances de comptes généraux peuvent être systématiquement erronés | Rapprochez la balance générale du système source avant de considérer le travail comme terminé |
Pour aller plus loin
- Soldes d’ouverture et migration des données — la méthodologie.
- Comptabilisation en masse — l’équivalent, dans l’interface, du passage de comptabilisation.
- API REST pour les données comptables — l’équivalent enregistrement par enregistrement.
Questions fréquentes
Le même moteur en coulisses — Data Loader pour les chargements ponctuels ou manuels (l’habitude de votre partenaire de mise en œuvre), Bulk 2.0 pour les pipelines programmatiques. Le comportement des déclencheurs et la méthode décrite ci-dessus sont identiques.
Elles sont nettement réparties, pas corrompues : les réussites sont des documents complets, les échecs n’ont tout simplement pas eu lieu (atomicité par enregistrement). Corrigez les causes indiquées dans le fichier d’erreurs et relancez uniquement ces lignes — l’idempotence fondée sur la Référence rend les relances sûres.
Oui — les objets d’imputation se chargent comme n’importe quels enregistrements, avec tous les contrôles de concordance appliqués ligne par ligne. Chargez-les une fois les deux côtés comptabilisés, ou mieux : laissez l’imputation automatique associer les documents une fois ceux-ci chargés.
Aucune limite stricte n’est publiée — le coût de la comptabilisation varie selon le nombre de lignes par document, la complexité fiscale et les dimensions. Commencez modérément (50 à 100 documents par lot, en série), surveillez la durée de la tâche et les éventuelles erreurs de verrouillage lors d’un test à blanc en sandbox au volume de production, puis augmentez en vous fondant sur les faits plutôt que sur l’optimisme.
La même chose qu’une personne effectuant ce travail : l’ensemble d’autorisations du package correspondant aux documents chargés, plus une licence utilisateur REDA — le contrôle de licence s’applique aux enregistrements effectués via l’API Bulk comme à tous les autres. Rien de plus, rien de moins.
Cet article vous a-t-il été utile ?