Envoyer des alertes des factures à plusieurs clients

  • Envoyer des alertes des factures à plusieurs clients

    Posté par Kamalo sur 17 janvier 2025 à 15h23

    Bonjour,

    J’ai un tableau Excel partagé sur Sharepoint qui contient les factures de plusieurs clients. le but du flux que je cherche est d’envoyer toutes les factures impayées à chaque client à part dans une seule table HTML par courriel (une table peut contenir plusieurs lignes des factures).

    J’ai fait un essai et j’ai un problème que le flux pour chaque ligne de facture envoie la table au client si j’ai 3 lignes de factures va envoyer les 3 lignes et 3 courriels doublons au même client.

    voici mon essai :

    1- Déchlencheur

    2- List rows present in a table

    3- Apply to each en utilisant output de l’étape précédente

    4- Au sein de même Apply to each :

    4-1 une condition générale des factures impayées

    4-2 Si la condition est vrai un switch qui vérifie le nom du client

    4-2-1 si le nom du client = ABCD alors

    4-2-2 Filter array qui vise à filtrer le nom du client

    4-2-3 Créer une table HTML

    4-2-4 Format de la table

    4-2-5 envoyer le courriel.

    Pour les autres clients les étapes à partir 4-2-1 se répète dans chaque cas de switch.

    Cette méthode me donne des courriels doublons par exemple si j’ai 3 lignes de factures pour un client le flux va envoyer 3 rappels courriels qui contient la même table au même client.

    Merci d’avance de me proposer une solution pour ce problème.

    R3dKap a répondu Il y a 11 heures, 40 minutes 2 Membres · 1 Réponse
  • 1 Réponse
  • R3dKap

    Membre
    17 janvier 2025 à 18h39

    Salut @Kamalo,

    C’est normal : l’action d’envoi de mail se trouve à l’intérieur de la boucle 4-2 et donc un mail est envoyé à chaque ligne de facture… 😉

    Ton problème est plus compliqué que tu ne le penses 😅 car tes lignes de factures concernent plusieurs clients différents et tes lignes sont sûrement mélangées entres les différents clients. Donc, il va falloir :

    • trier les lignes pour les regrouper par clients (en profiter pour ne récupérer que les factures impayées)
    • gérer ce que l’on appelle une rupture sur le client dans la boucle qui va balayer les lignes

    Grosso modo il faut que tu procèdes ainsi :

    1. Lister les lignes de factures : ici, en une seule opération tu peux spécifier à la fois de filtrer les factures impayées (paramètre Requête de filtre) et de les trier par client (paramètre Trier par)
    2. Initialiser une variable de chaîne qui va contenir l’HTML de la liste du tableau des factures d’un client (par ex. strHtmlTabFactures)
    3. Initialiser une variable de chaîne qui va contenir le nom du précédent client (par ex. strClientPrec)
    4. Boucler sur les lignes identifiées à l’étape 1 et pour chaque ligne :
      1. Si le client de la ligne en cours est différent du client précédent strClientPrec et que strClientPrec n’est pas vide alors :
        1. Envoyer le mail au client en intégrant au message Html du mail les lignes du tableau qui liste les factures strHtmlTabFactures, c’est à dire quelque chose comme : <html>…..<body>Bonjour, blablabla<table>strHtmlTabFactures</table>Merci, bonne journée</body></html>
        2. On vide strHtmlTabFactures puisqu’on est sur un nouveau client
      2. Sinon (on est soit sur un nouveau client ou sur le même client que précédemment et donc il faut construire la ligne du tableau pour la facture concernée) :
        1. On ajoute à la variable de chaîne strHtmlTabFactures le <tr>…</tr> qui va bien pour y renseigner les éléments de la facture
        2. Dans strClientPrec on met le client de la ligne en cours
    5. Après la boucle, il faut gérer l’envoi du mail pour le dernier client et donc simplement refaire ici la même action d’envoi du mail qu’en 4.1.1 ci-dessus

    Est-ce que tu vois l’idée ?

Connectez-vous pour répondre.