Intégration avec les flux Salesforce
La plupart des automatisations REDA Financials ne demandent aucun code : les flux lisent et écrivent les objets comptables comme n’importe quels enregistrements, la comptabilisation est une simple mise à jour de champ, et le package fournit une action prête à l’emploi pour générer des PDF. Voici la boîte à outils déclarative.
L’action du package : « Generate PDF Document »
Dans le sélecteur d’actions des flux, sous la catégorie REDA Financials : fournissez-lui un Source Record ID et le Source Object API Name (par ex. refin__Sales_Invoice__c) ; elle génère le PDF, le joint et renvoie Success / Content Version ID / Content Document ID / Public URL / Error Message. Compatible avec le traitement en masse dans les boucles. Usages classiques : générer selon une planification, joindre le document à vos propres flux d’e-mail, produire le document dès qu’une condition d’un flux déclenché par un enregistrement est remplie.
Le package fournit deux actions invocables : celle-ci, et Create E-Invoice Trail sous la catégorie E-Invoicing (voir Développement Apex sur REDA). Une surface réduite, entièrement documentée. Sa propre description : « Generates a PDF for the given source transaction record and attaches it as a File. »
| Entrée | Obligatoire | Description fournie par le package (texte exact) |
|---|---|---|
| Source Record ID | Oui | « The Id of the source transaction record (SI, CR, CD, CM, PO). » |
| Source Object API Name | Oui | « Fully qualified API name of the source object (e.g. refin__Sales_Invoice__c). » |
| Sortie | Ce que vous obtenez |
|---|---|
| Success | Vrai/faux pour chaque ligne — vérifiez-le avant d’utiliser les autres sorties |
| Content Version ID / Content Document ID | Le fichier généré, déjà joint à l’enregistrement source en tant que fichier Salesforce |
| Public URL | Renseignée uniquement « if the Entity has Auto Public URL enabled; null otherwise » — la formulation du package parle de l’Entité, mais l’indicateur que lit le code est refin__Auto_Public_URL__c (« Générer une URL publique pour les PDF ») sur le Territoire du document, résolu document → Entité → Territoire — construisez vos liens d’e-mail de manière conditionnelle |
| Error Message | La raison lorsque Success est faux ; si des entrées manquent, l’action renvoie textuellement « sourceRecordId and sourceObjectApiName are required. » |
Objets source pris en charge — exactement quatre, plus un cas particulier : refin__Sales_Invoice__c, refin__Cash_Receipt__c, refin__Cash_Disbursement__c, refin__Purchase_Order__c ; les avoirs sont traités comme un type de facture de vente (refin__Sales_Invoice_Type__c), transmettez donc pour eux le nom de l’objet facture de vente. Dans les boucles, l’action est réellement compatible avec le traitement en masse : les requêtes sont regroupées par objet, générées en masse, et les résultats sont renvoyés dans l’ordre d’entrée — une ligne en erreur échoue seule, avec son propre Error Message.
refin__Auto_Gen_PDF_Sales_Invoice__c, refin__Auto_Gen_PDF_Cash_Receipt__c, refin__Auto_Gen_PDF_Cash_Disbursement__c, refin__Auto_Gen_PDF_Purchase_Order__c, refin__Auto_Gen_PDF_Credit_Memo__c. Si « chaque facture comptabilisée reçoit un PDF » constitue toute l’exigence, activez l’option ; réservez l’action de flux à la génération conditionnelle ou planifiée.
refin.PDFGeneratorAPI (et à refin.EInvoiceTrailCreator) : tout utilisateur disposant de l’un des ensembles d’autorisations REDA Financials peut donc exécuter l’action. Un utilisateur d’exécution qui n’en possède aucun — un flux exécuté sous un compte de service, par exemple — a toujours besoin que la classe lui soit accordée explicitement. Testez dans une sandbox avec l’utilisateur d’exécution réel avant de déployer le flux.
Comptabiliser (et plus encore) depuis un flux
| Opération dans le flux | Ce qui se passe |
|---|---|
Créer refin__Sales_Invoice__c + lignes (Brouillon) | Un vrai brouillon — numéroté, prérempli avec les valeurs par défaut, validé |
Mettre à jour refin__Status__c → 'Posted' | Le moteur de comptabilisation complet — taxe, retenue à la source, taux, tous les contrôles (un refus fait tomber le flux en erreur avec le message exact : prévoyez un chemin d’erreur) |
| Créer un enregistrement d’imputation | Impute un encaissement ou un avoir en appliquant toutes les règles de concordance |
| Flux déclenché par un enregistrement sur un changement de statut | Votre logique de notification ou d’intégration au moment comptable (se déclenche aussi bien sur les modifications faites dans l’interface que via l’API) |
Définir refin__Auto_Apply_Receipt__c = true sur un encaissement comptabilisé | Déclenche l’imputation automatique de cet encaissement — les champs indicateurs de ce type sont des points d’entrée conçus pour les flux |
Trois flux à reprendre sans hésiter
- Le pont d’approbation : votre processus d’approbation personnalisé se termine en définissant le Statut d’approbation sur « Approuvé » et le Statut sur « Comptabilisé » — le document passe de la demande aux livres comptables, sans aucun clic.
- L’alerte grosse facture : flux déclenché par un enregistrement sur Facture de vente, condition d’entrée Statut = Comptabilisé ET Total > 50 000, action = notifier le canal du contrôleur de gestion.
- La chasse aux PDF manquants : un flux planifié recherche les factures comptabilisées sans PDF (champ PDF généré le vide) et les fait passer en boucle dans Generate PDF Document.
Un flux concret chez Meridian : le dossier de bienvenue du locataire
Meridian Properties Group envoie chaque première facture nouvellement comptabilisée avec son PDF en pièce jointe. Un seul flux déclenché par un enregistrement sur refin__Sales_Invoice__c : condition d’entrée Statut passé à Comptabilisé ; un élément Décision vérifie qu’il s’agit de la première facture comptabilisée du client ; l’action Generate PDF Document s’exécute avec l’Id de l’enregistrement et refin__Sales_Invoice__c ; une décision tolérante aux erreurs sur Success crée deux branches — vrai poursuit vers l’action d’e-mail avec le Content Document joint, faux consigne l’Error Message dans une requête destinée à l’équipe des comptes fournisseurs. Temps de construction total : un après-midi, sans Apex, résistant aux mises à niveau par conception.
Erreurs courantes à éviter
| Erreur | Pourquoi c’est un problème | Faites plutôt ceci |
|---|---|---|
| Aucun chemin d’erreur sur la mise à jour de comptabilisation | Une période clôturée fait tomber en erreur toute l’exécution du flux — ainsi que tout ce qu’elle avait en cours | Chaque élément de mise à jour du statut reçoit un connecteur d’erreur qui achemine le message exact vers un endroit lu par une personne |
| Utiliser la sortie Public URL sans condition | Elle vaut null sauf si l’option Générer une URL publique pour les PDF est activée sur le Territoire du document — votre modèle d’e-mail envoie un lien vide | Créez une branche selon la sortie, ou utilisez plutôt la pièce jointe Content Document |
| Transmettre une facture d’achat à Generate PDF Document | Les factures d’achat ne font pas partie des objets pris en charge (facture de vente, encaissement, décaissement, bon de commande, avoir via la facture de vente) — la ligne échoue | Consultez la liste des objets pris en charge ; les factures fournisseurs n’ont pas besoin de PDF destinés aux clients |
| Modifier des enregistrements comptabilisés depuis un flux avant enregistrement | Les documents comptabilisés sont verrouillés pour tout le monde — le flux tombe en erreur sur les champs qui ne font pas partie de la liste autorisée des champs de workflow | Limitez les modifications sur le même enregistrement aux brouillons ; réagissez aux enregistrements comptabilisés, ne les réécrivez pas |
| Dupliquer l’automatisation du package dans vos propres flux | La génération récurrente, l’imputation automatique et les instantanés de balance âgée s’exécutent déjà via le Planificateur d’opérations — un flux parallèle entre en concurrence avec eux | Consultez les douze cartes de l’onglet Opérations avant de construire ; étendez, ne dupliquez pas |
Pour aller plus loin
- API Streaming (événements en temps réel) — l’équivalent piloté par les événements.
- Développement Apex sur REDA — quand les flux atteignent leurs limites.
- Planificateur d’opérations — l’automatisation que le package exécute déjà pour vous.
Questions fréquentes
C’est le fonctionnement prévu : un contrôle de comptabilisation a refusé l’opération (période clôturée, approbation en attente, déséquilibre…). Le message d’erreur en donne la raison exacte ; transmettez-le à une personne ou corrigez les données en amont. Ne relancez jamais à l’aveugle : le contrôle bloquera de nouveau.
Les recommandations standard s’appliquent : avant enregistrement pour les ajustements de champs sur le même enregistrement lorsqu’il est en brouillon (les enregistrements comptabilisés sont de toute façon verrouillés), après enregistrement pour les réactions (notifications, enregistrements associés). Ne luttez pas contre l’automatisation propre au package : réagissez aux états finaux.
Le service de calcul est une surface Apex ; depuis un flux, la voie pratique consiste à créer le document en brouillon (la taxe s’affiche en aperçu dans le formulaire ; les montants deviennent définitifs à la comptabilisation). Si vous avez réellement besoin du calcul brut dans un flux, une fine surcouche invocable autour de GlobalTaxService suffit : une classe Apex de dix lignes — voir Développement Apex sur REDA.
Parce que les objets sont l’API : créer, mettre à jour et changer le statut des enregistrements couvre la comptabilisation, l’imputation et les réactions sans actions sur mesure. La génération de PDF et la création d’un historique de facturation électronique sont les deux tâches qui nécessitaient vraiment d’être intégrées au package — tout le reste relève de flux standard sur des enregistrements standard.
Uniquement si vous utilisez la Synchronisation des taux de change dans une organisation multidevise : le package écrit les taux quotidiens via ce flux installé séparément, car les taux de change datés n’existent que lorsque la gestion avancée des devises est activée. S’il manque, la synchronisation vous l’indique textuellement : « The \"Create_Dated_Conversion_Rate\" Flow is not installed. FX Rate Sync requires this Flow to write DatedConversionRate records. Please install the REDA FX Rate Sync component. »
Cet article vous a-t-il été utile ?