Traduction du contenu du message d'un workflow (GESAWA) en fonction de la langue du client

SOLVED

Bonjour,

J'essaie de rendre dynamique le contenu d'un mail de "workflow" en fonction de la langue du client (X3 V6)

Pour ce faire je me suis créée une table diverse et j'y ai mis mon texte en français que j'ai ensuite traduit pour l'ensemble des langues adressées (ce qui me permettra de le corriger en fonction des souhaits de chacune des comptabilité client en filiale). 

MC1 va me donner l'objet du mail et MC2 à MC8 le corps du mail:

SELECT
langue_0, ident2_0 , texte_0 from atextra where codfic_0 like 'ATABDIV' AND ZONE_0 = 'LNGDES' and ident2_0 between 'MC1' and 'MC8' and ident1_0='6136' .

FRA donnerait ceci:

MC1 Relance Client
MC2 Bonjour,
MC3 Vous trouverez dans le fichier
MC4 joint votre lettre de relance
MC5 client
MC6 Cordialement,
MC7 Le Service Comptabilité

ENG ceci:

MC1 Customer recovery
MC2 Dear customer,
MC3 You will find in the attached
MC4 file your reminder letter.

etc... pour GER, SPA, ITA, etc...

je ne vois pas quoi coller dans GESAWA (règles de workflow) et comment conditionner le comportement dynamique du message de workflow.

j'ai trouvé dans l'aide en ligne une fonction intéressante AFNC.TEXTRA(code_table, code_champ, valeur_clé_1, valeur_clé_2) qui s'approche de mon besoin, mais ça ne donne rien si je colle par exemple AFNC.TEXTRA(ATABDIV,LNGDES,6136,MC1) .

En outre je ne vois pas comment se fera la lien avec la langue (celle de connexion ou celle du client).

aide en ligne :

la table ATEXTRA définit les données traduisibles stockées dans des tables. Un tel texte est identifié par une clé qui intègre la table dans laquelle on gère les
données associées au texte, le code du champ texte correspondant, et la clé de la fiche correspondante.
Pour accéder à ce type de message dans la langue courante de connexion, on peut, depuis la calculatrice, utiliser la fonction AFNC.TEXTE avec la syntaxe suivante :
Func AFNC.TEXTRA(code_table, code_champ, valeur_clé_1, valeur_clé_2)
Cette table est gérée par les développeurs applicatifs pour l'essentiel, mais certaines tables du superviseur (les tables diverses, par exemple) y ont recours.

La table ATEXTRA sert à stocker les textes traduisibles associés à des fiches dans lesquels des intitulés doivent pouvoir varier en fonction de la langue. Dans le dictionnaire de données, les rubriques qui font appel à ce type de texte utilisent des types de données dont le code commence par AX.

Un champ déclaré avec ce type n'est pas réellement stocké dans la table, mais on retrouve, dans la table ATEXTRA, des lignes identifiées par le code de la table, le champ, la clé de la fiche (et bien sûr la langue), qui contiennent le texte en question.

Par exemple, dans le cas d'une table diverse (identifiée par un numéro, par exemple le numéro 23 et contenant un code, par exemple le code COD), la clé identifiant l'intitulé correspondant (champ LNGDES) pour la langue FRA, sera composée des éléments suivants :

ATABDIV,LNGDES,FRA,23,COD

Tout texte de ce type peut être saisi dans des écrans et traduit en ligne grâce à une fonction dédiée.

  • 0
    SUGGESTED

    Bonjour, 

    Je vois deux questions dans votre post: 

    1. Comment faire apparaître un texte de ATEXTRA dans l'objet / le corps de mon email lors de l'envoi du workflow? 

    2. Comment retrouver la langue du client destinataire? 

    1. Comment faire apparaître un texte de ATEXTRA dans l'objet / le corps de mon email lors de l'envoi du workflow? 

    L'objet du workflow attend directement une formule. Vous pouvez donc y coller, pour avoir le texte en français : 

    func AFNC.TEXTRALAN("FRA", "ATABDIV", "LNGDES", "6136", "MC1")

    En anglais, ce serait:

    func AFNC.TEXTRALAN("ENG", "ATABDIV", "LNGDES", "6136", "MC1")

    En revanche, le corps du message attend un champ texte. Pour y concaténer vos formules, il faudra donc les entourer de deux barres verticales: |. (Avec mon clavier: Alt Gr + 6).

    Pour écrire "Bonjour, Vous trouverez dans le fichier joint votre lettre de relance", il faudra coller dans le corps du message: 

    |func AFNC.TEXTRALAN("FRA", "ATABDIV", "LNGDES", "6136", "MC2")|
    |func AFNC.TEXTRALAN("FRA", "ATABDIV", "LNGDES", "6136", "MC3")| |func AFNC.TEXTRALAN("FRA", "ATABDIV", "LNGDES", "6136", "MC2")|

            

    2. Comment retrouver la langue du client destinataire? 

    La langue du client est renseignée dans la table BPARTNER (champ "LAN"). Il faut donc joindre cette table à votre modèle de données si elle n'est pas déjà ouverte dans le contexte d'appel de votre workflow, et la faire pointer sur le client en question. 

    Pouvez-vous me donner plus de précisions sur le contexte d'appel du workflow ? Est-ce un workflow de type objet, et si oui, quel objet? Si possible, il me faudrait une capture d'écran de l'onglet Général de la règle de workflow.

    Ensuite, dans les appels à TEXTRALAN ci-dessus, il vous faudra remplacer "FRA" ou "ENG" par [F:BPR]LAN, comme ici: 

     func AFNC.TEXTRALAN([F:BPR]LAN, "ATABDIV", "LNGDES", "6136", "MC1")

    Bien à vous,

    Léa

    PS: Je suis malheureusement sur une V11, j'espère que le fonctionnement sera le même en V6...  

  • 0 in reply to Lea Fanchon

    Bonjour Léa, 

    Pour ce qui est de l'objet ça fonctionne parfaitement avec la langue trouvée dans BPARTNER (client espagnol anglophone), merci !

    Pour le corps non pour l'instant, donc je creuse en fonction de ce que je trouve dans d'autres workflow standard v6. je donne la réponse plus tard. 

  • +1 in reply to paul69erp
    verified answer

    Bonjour Paul,

    Super pour l'objet. 

    Pour le corps du message, il faut bien entourer chaque instruction par des |, et ne pas en mettre juste un au début et un à la fin. Si vous collez ceci dans le corps du mail, ça ne marche toujours pas ? :

    |func AFNC.TEXTRALAN([F:BPR]LAN, "ATABDIV", "LNGDES", "6136", "MC2")|
    |func AFNC.TEXTRALAN([F:BPR]LAN, "ATABDIV", "LNGDES", "6136", "MC3")| |func AFNC.TEXTRALAN([F:BPR]LAN, "ATABDIV", "LNGDES", "6136", "MC2")|

  • 0 in reply to Lea Fanchon

    maintenant c'est ok pour le corps du mail, tout fonctionne donc dynamique mail + état PDF, c'est vriament super. Merci infiniment !

  • 0 in reply to paul69erp

    Merci Paul :) Super