8-Personnalisation Avancée
Contexte et objectif
L'exploitation des champs personnalisés (custom fields) sortants (vers Yooz) et entrants (vers X3). L'utilisation des points d'entrée pour les adaptations spécifiques (ex: forcer un code taxe, modifier le compte centralisateur).
Ce chapitre intervient sur ces phases de l’implémentation :
| ▼ | ▼ | |||||
|---|---|---|---|---|---|---|
| Avant-vente | Initialisation | Cadrage | Installation | Paramétrage | Recette | Mise en production |
1 Champs Yooz personnalisés
Le connecteur Sage X3 pour Yooz prend en charge la fonctionnalité des champs personnalisés de Yooz, tant pour les flux sortants que pour les flux entrants.
- Pour les flux sortants (Sage X3 > Yooz), vous pouvez renseigner jusqu’à 10 champs personnalisés Yooz pour chaque objet/document suivant :
- Fournisseurs (GESBPS)
- Clients (GESBPC)
- Dimensions analytiques (GESCCE)
- Comptes (GESGAC)
- Utilisateurs (GESAUS)
- Taux d’imposition (GESTVT)
- Conditions de paiement (GESTPT)
- Articles (GESITM)
- Commandes d’achat/réceptions (GESPOH/GESPTH) – jusqu’à 10 champs personnalisés Yooz pour l’en-tête et les lignes.
- Retours fournisseurs (GESPND) – jusqu’à 10 champs personnalisés Yooz pour l’en-tête et les lignes.
- Pour les flux entrants (Yooz > Sage X3), vous pouvez envoyer jusqu’à 10 champs personnalisés Yooz vers Sage X3 pour les factures suivantes :
- Factures d’achat (GESPIH)
- Factures comptables fournisseurs (GESBIS)
- Commandes d’achats (GESPOH)
- Réceptions (GESPTH)
Les champs personnalisés sont soumis aux contraintes imposées par les normes Sage X3 ou par le contexte spécifique de l’application.
Champs personnalisés Yooz flux sortant
Paramétrage > Exploitation > Imports/Exports > Champs personnalisés Yooz flux sortant

- Ajoutez l'objet sur lequel vous souhaitez configurer un champ personnalisé.
- Sélectionnez un emplacement compris entre 1 et 10.
- Entrez une formule qui va renvoyer une chaîne de caractères. (Vous pouvez utiliser l’assistant de formule pour vous aider si besoin)
Exemple pour indiquer l'année de création dans le champ personnalisé n° 1 du formulaire « Fournisseur » de Yooz (cf: ligne 1 de la capture d’écran ci-dessus)
Une fois les champs personnalisés Yooz configurés, les modifications apportées à ces champs seront transmises à Yooz lors du prochain envoi (tâche récurrente ou manuellement via le service web).

Champs personnalisés Yooz flux entrant
Paramétrage > Exploitation > Imports/Exports > Champs personnalisés Yooz flux entrant

- Sélectionnez le modèle correspondant, par exemple XRJ31PIH pour les factures, XRJ31BIS pour les factures de tiers, etc.
- Sélectionnez la table X3 que vous souhaitez enrichir avec les données provenant de Yooz.
- Sélectionnez le champ de position présent dans l'importation ; il y a 10 positions disponibles pour chaque table.
- Sélectionnez le champ X3 que vous souhaitez remplir avec les données provenant de Yooz.
Exemple pour indiquer les désignations et les codes affaires à la fois dans l’en-tête et à la ligne (cf: ligne 1 à 4 de la capture d’écran ci-dessus)
En important ce fichier :

On retrouve bien dans l’en-tête :

Et dans la ligne :

2 Points d'entrée
Plusieurs points d'entrée ont été mis en place pour permettre un développement spécifique via le connecteur Yooz.
XRJ31BICLIB
PARAM_ETAT
Ce point d'entrée est appelé juste avant l'impression du PDF de la facture fournisseur à envoyer à Yooz.
Si vous souhaitez ajouter un nouveau paramètre à l'impression :
[L]NBPAR += 1 : [L]TBPAR([L]NBPAR) = 'societe' : [L]TBVAL([L]NBPAR) = [F:SIH]CPY
Tables renseignées avec des valeurs significatives :
- COMPANY [F:CPY]
- FACILITY [F:FCY]
- GACCDUDATE [F:DUD]
- SINVOICE [F:SIH]
- XRJ31YOOZSUI [F:XRJ31YS]
---
PE_CHANGEBIC
Ce point d'entrée permet de modifier le contenu de la facture tiers client.
Voici la liste des variables que vous pouvez modifier
- [L]YZ_PURCHASE_ORDER_NUMBER - BT-13
- [L]YZ_MARKET_NUMBER - BT-12
---
XRJ31IMPBIS
=ACTION
Ce script est appelé en tant que script spécifique pour l'import des factures fournisseurs depuis Yooz. Pour chaque action de cet import (IMPORT, IMP_ZONE, ..), un point d'entrée du même nom est appelé.
---
XRJ31IMPPIH
=ACTION
Ce script est appelé en tant que script spécifique pour l'import des factures d'achat depuis Yooz. Pour chaque action de cet import (IMPORT, IMP_ZONE, …), un point d'entrée du même nom est appelé.
DEF_UOM
Ce point d'entrée vous permet de modifier [M:PIH3]UOM(nolign-1) d'une ligne diverse qui est remplie avec 'UN' par défaut.
---
XRJ31IMPPOH
=ACTION
Ce script est appelé en tant que script spécifique pour l'import des commandes d'achat depuis Yooz. Pour chaque action de cet import (IMPORT, IMP_ZONE, …), un point d'entrée du même nom est appelé.
---
XRJ31IMPPTH
=ACTION
Ce script est appelé en tant que script spécifique pour l'import des réceptions d'achat depuis Yooz. Pour chaque action de cet import (IMPORT, IMP_ZONE, …), un point d'entrée du même nom est appelé.
---
XRJ31PNDLIB
SPEFLD
Ce point d'entrée permet de modifier le contenu des retours d'achat.
Voici la liste des variables que vous pouvez modifier
- [L]YBPSNUM - Le fournisseur
---
XRJ31SIHLIB
PARAM_ETAT
Ce point d'entrée est appelé juste avant l'impression du PDF de la facture de vente à envoyer à Yooz.
Si vous souhaitez ajouter un nouveau paramètre à l'impression :
[L]NBPAR += 1 : [L]TBPAR([L]NBPAR) = 'sitedeb' : [L]TBVAL([L]NBPAR) = [F:SIV]SALFCY
Tables renseignées avec des valeurs significatives :
- COMPANY [F:CPY]
- FACILITY [F:FCY]
- SINVOICE [F:SIH]
- SINVOICEV [F:SIV]
- GACCDUDATE [F:DUD]
- XRJ31YOOZSUI [F:XRJ31YS]
---
PE_CHANGESIH
Ce point d'entrée permet de modifier le contenu de la facture de vente.
Voici la liste des variables que vous pouvez modifier
- [L]YZ_PURCHASE_ORDER_NUMBER - BT-13
- [L]YZ_MARKET_NUMBER - BT-12
---
XRJ31YOOZLIB
BEFNEWSUI
Le connecteur utilise une file d'attente pour lister tous les éléments à envoyer à Yooz, et ces éléments seront envoyés lors de l'exécution de la fonction XRJ31EXE (généralement en tant que tâche récurrente).
Ce point d'entrée est appelé avant l'ajout d'un enregistrement dans la file d'attente.
Une transaction est ouverte, le point d'entrée est appelé juste avant l'écriture *write [F:XRJ31YS]*.
Si vous souhaitez ignorer cette création :
[L]XRJ31SKIP = 1
Si vous souhaitez générer un nouveau chrono :
Call NUMERO('YOOZ','',date$,'',[F:XRJ31YS]CHRONO,WRET) From SUBANM
Tables renseignées avec des valeurs significatives :
- XRJ31YOOZSUI [F:XRJ31YS]
PE_CHANGEPO
Ce point d'entrée permet de modifier le contenu de la commande d'achat.
Voici la liste des variables que vous pouvez modifier
- [L]YBPSNUM - Le fournisseur
- [L]YFCY - Le site
- [L]YITMDES - La description de l’article
[L]XRJ31WTRAIT contient le script appelant
3 Développements spécifiques
Certains développements spécifiques sont communs à de nombreux clients ; voici quelques exemples faciles à mettre en œuvre
Envoi de commandes sans reçu
Si vous souhaitez envoyer des commandes sans attendre de reçu, définissez la valeur 2 pour le champ XRJ31SKPRCP dans PORDER.
Par exemple, si vous souhaitez envoyer toutes les commandes par défaut, vous pouvez utiliser/ajouter le script suivant dans le script SPEPOH. Cela vous permet de filtrer le comportement si nécessaire.
$ACTION
Case ACTION
When "INICRE" : Gosub INICRE
Endcase
Return
$INICRE
[F:POH]XRJ31SKPRCP=2
Return
Ne vous inquiétez pas : la commande ne sera pas envoyée immédiatement. Elle suivra le flux standard, ce qui signifie que vous devrez tout de même signer et imprimer le bon de commande.
---
Forcer le code fiscal (TVA) lors de l’importation d’une facture basée sur un bon de commande
Lorsque vous souhaitez importer des factures d’achat liées à un bon de commande et que vous souhaitez forcer le code TVA importé (champ PINVOICED.VAT) plutôt que de laisser le système standard le recalculer, vous pouvez :
- Créer un point d’entrée sur le processus standard TRTX3 (contactez votre intégrateur si vous avez besoin d’aide à ce sujet).
- Utiliser le script suivant pour appeler le point d’entrée standard ALIVATCOD
# Script : YTRTX3PE
# 2026-08-24 JAT : YOOZX3-1109 : check that the value is not empty
$ACTION
Case ACTION
When "ALIVATCOD" : Gosub ALIVATCOD
Endcase
Return
$ALIVATCOD
If GIMPORT & dim([F:AOE]OBJ)>0 & find([F:AOE]OBJ,"PIH")
If !clalev([F:XRJ31FI]) : Local File XRJ31SPEFLDI [F:XRJ31FI] : Endif
Filter [XRJ31FI] Where TEMPLATE=[F:AOE]EXT & TABLE="PINVOICED"
For [F:XRJ31FI]
If find([F:XRJ31FI]FLD,"VAT","VAT(0)")
If evalue("GIMP("+right$([F:XRJ31FI]POSITION,2)+")") <> '' # 2026-08-24 JAT
[L]TAXES(0) = evalue("GIMP("+right$([F:XRJ31FI]POSITION,2)+")")
GPE=1
Endif
Endif
Next
Endif
Return
Then, configure the "Yooz custom fields in" connector function as follows (function code : GESXRJ31FI):

Ajouter les comptes comptables de l’article lors de l’export
Lors du transfert des articles de Sage X3 vers Yooz, si vous souhaitez récupérer les comptes d’achat définis sur le code comptable de l’article, les éléments suivants doivent être configurés :
- Vérifier que le traitement XRJ31YOOZLIB est à jour. - Dans la fonction « Yooz custom fields out flows » ( code : GESXRJ31FO), ajouter une ligne pour l’objet ITM. - Sélectionner le champ Yooz de destination dans lequel le compte d’achat doit être transmis. - Renseigner la formule suivante dans le champ de traitement :
func XRJ31YOOZLIB.GETACCOUNT([F:ITM]ACCCOD,"FRA")
Dans cette formule, la valeur FRA correspond au code du plan comptable utilisé. Elle doit donc être adaptée si un autre plan comptable doit être interrogé.
Cette configuration permet de récupérer automatiquement le compte d’achat associé au code comptable de l’article et de le transmettre à Yooz.
