Aller au contenu

Comptabiliser des écritures de journal NetSuite

Comptabilisez dans NetSuite des écritures de journal issues de tables de projet PlaidCloud avec l’étape de workflow Post NetSuite Journal Entry. Ce guide construit un lot à partir d’une table d’en-tête et d’une table de lignes, le prévisualise sans toucher à NetSuite, puis le comptabilise et relit le résultat.

  • Une connexion NetSuite opérationnelle, avec un rôle autorisé à créer des écritures de journal (accès Create sur l’enregistrement Journal Entry, en plus de la configuration REST/OAuth décrite dans le guide de lecture).
  • Deux tables source dans votre projet :
    • Une table d’en-tête avec une ligne par écriture de journal.
    • Une table de lignes avec une ou plusieurs lignes de débit/crédit par écriture de journal.
  1. Créez ou importez une table d’en-tête avec une ligne par écriture de journal. Elle doit au minimum contenir :

    Colonne Correspond à Obligatoire
    Un identifiant de journal ID du journal Oui
    La filiale NetSuite Filiale Oui
    La date de l’écriture Date de comptabilisation Oui
    La devise NetSuite Devise Non
    Un mémo au niveau de l’écriture Mémo Non
    Un ID externe fourni par l’appelant ID externe Non
  2. Créez ou importez une table de lignes avec une ou plusieurs lignes par écriture de journal, partageant le même identifiant de journal que sa ligne d’en-tête :

    Colonne Correspond à Obligatoire
    L’identifiant de journal ID du journal Oui
    Le compte du grand livre Compte Oui
    Le montant au débit (0 s’il n’y en a pas) Débit Oui
    Le montant au crédit (0 s’il n’y en a pas) Crédit Oui
    Un mémo au niveau de la ligne Mémo Non
    Département, classe, emplacement, entité Département / Classe / Emplacement / Entité Non
  3. Regroupez les montants dans ces deux tables au niveau auquel vous comptabilisez (une écriture par jour, par document, par lot) à l’aide de vos étapes de table habituelles (un pivot, une agrégation avec regroupement ou une jointure). L’ID du journal est ce qui relie un ensemble de lignes à sa ligne d’en-tête : construisez-le comme une clé unique par écriture de journal et partagée par toutes les lignes qui en font partie.

  1. Ajoutez une étape Post NetSuite Journal Entry à votre workflow.

  2. Dans l’onglet Connexion, définissez Connexion NetSuite sur votre connexion NetSuite et choisissez un Environnement.

  3. Dans l’onglet Données :

    • Définissez Table d’en-tête d’écriture de journal et Table de lignes d’écriture de journal sur les tables que vous avez construites ci-dessus.
    • Laissez Test Only Mode coché pour l’instant ; voir Prévisualiser et valider.
    • Laissez Continue posting remaining entries if one entry fails coché, sauf si vous préférez qu’un lot s’arrête net à sa première écriture erronée.
    • Laissez Submit Asynchronously désactivé, sauf si vous avez précisément besoin du mode d’acceptation asynchrone de NetSuite pour un lot à gros volume ; voir Soumission asynchrone ci-dessous.
    • Définissez Table de résultat de comptabilisation sur une table que PlaidCloud peut créer ou écraser. Vous en aurez besoin à chaque exécution, pas seulement la première ; voir Lire la table de résultat.
  4. Dans l’onglet Mappage des en-têtes, mappez les colonnes de votre table d’en-tête à ID du journal, Filiale, Date de comptabilisation et, si vous les avez, Devise, Mémo et ID externe. Utilisez Filtres des en-têtes si vous souhaitez ne comptabiliser qu’un sous-ensemble des lignes d’en-tête.

  5. Dans l’onglet Mappage des lignes, mappez les colonnes de votre table de lignes à ID du journal, Compte, Débit, Crédit et, si vous les avez, Mémo, Département, Classe, Emplacement et Entité. Utilisez Filtres des lignes de la même façon.

Avec Test Only Mode coché, exécutez l’étape. PlaidCloud construit chaque écriture de journal à partir de vos données mappées et effectue les mêmes contrôles qu’avant une comptabilisation (débits et crédits équilibrés, champs obligatoires renseignés, date de comptabilisation valide), sans effectuer le moindre appel à NetSuite. Rien n’est comptabilisé.

  1. Exécutez l’étape (voir Exécuter une seule étape d’un workflow).

  2. Ouvrez la table de résultat et vérifiez que chaque ligne que vous comptiez comptabiliser affiche status = validated. Toute ligne indiquant error mentionne l’ID du journal de l’écriture et le problème, le plus souvent une écriture déséquilibrée, un compte manquant, ou une filiale ou une date de comptabilisation vide.

  3. Corrigez les données source (ou vos mappages et filtres) pour chaque ligne error et exécutez à nouveau jusqu’à ce que le lot soit validé sans erreur.

Une fois qu’un lot est validé sans erreur, décochez Test Only Mode et exécutez à nouveau l’étape. Cette fois, PlaidCloud comptabilise réellement chaque écriture validée dans NetSuite.

Submit Asynchronously envoie chaque écriture avec l’en-tête d’acceptation asynchrone de NetSuite, au lieu d’attendre une création suivie d’une relecture synchrones. NetSuite met l’écriture en file d’attente et répond immédiatement ; PlaidCloud l’enregistre comme pending avec une référence de soumission plutôt que comme posted ou error.

La table de résultat contient une ligne par écriture de journal tentée, quel que soit le mode dans lequel l’étape s’est exécutée :

Colonne Description
journal_id L’ID du journal issu de votre table d’en-tête.
external_id L’ID externe utilisé pour cette tentative de comptabilisation (voir ci-dessous).
internal_id L’ID interne NetSuite de l’écriture créée, ou la référence de soumission asynchrone tant qu’elle est pending. Vide en Test Only Mode et en cas d’erreur.
status validated, posted, pending (Submit Asynchronously a fait accepter l’écriture mais NetSuite ne l’a pas encore confirmée) ou error.
message Détail de l’erreur pour error. Vide pour posted/validated.

Construisez les étapes en aval (une notification sur toute ligne error, une jointure avec votre table d’en-tête pour enregistrer internal_id) à partir de cette table plutôt qu’à partir du statut d’exécution de l’étape elle-même, car une écriture erronée dans un gros lot ne fait pas échouer l’ensemble de l’étape lorsque Continue posting remaining entries est activé.

Chaque écriture est comptabilisée avec un ID externe déterministe construit à partir de votre projet, de la connexion, de l’ID du journal, de la date de comptabilisation et des montants de ses lignes. Réexécuter l’étape sur une écriture inchangée réutilise ce même ID externe, et la gestion native des ID externes de NetSuite évite de créer un doublon : réexécuter un workflow après un échec transitoire est donc sans risque pour les écritures qui n’ont pas changé.