Guide complet des points d'entrée dans Sage X3
Maîtrisez la personnalisation avancée de votre ERP

Comprendre les points d'entrée
Les points d'entrée dans Sage X3 constituent un mécanisme sophistiqué permettant d'injecter du code personnalisé dans les processus standard sans altérer le code source original. Cette approche révolutionnaire offre aux développeurs la possibilité d'adapter spécifiquement les fonctionnalités de l'ERP tout en préservant l'intégrité du système.
Contrairement à la modification directe du code standard, les points d'entrée garantissent la maintenabilité des personnalisations lors des montées de version. Le traitement spécifique doit respecter une structure particulière en commençant par l'étiquette $ACTION et en conservant l'environnement du programme standard.
Cette architecture modulaire permet de référencer les traitements spécifiques dans une table dédiée, livrée vide par défaut. Chaque point d'entrée est documenté dans une fiche technique précisant le contexte d'appel et les variables disponibles, facilitant ainsi le développement de personnalisations robustes et évolutives.

Architecture et mécanismes d'injection
L'architecture technique des points d'entrée Sage X3 repose sur un mécanisme d'injection sophistiqué permettant d'intégrer du code personnalisé dans les processus standard sans altérer le code source original. Cette approche garantit la maintenabilité et la mise à jour des versions.
Le mécanisme GPOINT constitue le cœur de ce système. Dans le code standard, les points d'entrée sont identifiés par le mot-clé "GPOINT" suivi d'un nom spécifique. Par exemple, dans le traitement de saisie des commandes clients (Object SOH), on trouve des instructions du type : GPOINT = "CPLCREGRA" : Gosub ENTREE From EXEFNC. Cette syntaxe déclenche l'appel du traitement personnalisé associé lors de l'exécution.
L'identification des points d'entrée disponibles peut s'effectuer de deux manières principales. La première consiste à consulter l'aide en ligne de Sage X3, section "Development" > "Entry Points", qui fournit une documentation structurée par module. La seconde méthode implique une recherche directe dans le code source en utilisant le mot-clé "GPOINT" pour localiser tous les points d'injection disponibles dans un traitement donné.
Les règles d'écriture des traitements personnalisés suivent une structure imposée. Chaque traitement doit obligatoirement commencer par la section $ACTION, qui analyse la variable ACTION contenant le nom du point d'entrée appelé :
$ACTION
Case ACTION
When "CPLCREGRA" : Gosub CPLCREGRA
Endcase
Return
Cette architecture permet de gérer plusieurs points d'entrée dans un même traitement personnalisé. Les développements spécifiques liés à plusieurs points d'entrée d'un même traitement standard doivent impérativement s'écrire dans un traitement spécifique unique, optimisant ainsi la maintenance et les performances.
Le processus d'attachement s'effectue via la table des points d'entrée, où chaque traitement personnalisé est associé à son traitement standard correspondant. Cette configuration établit le lien dynamique permettant l'injection du code personnalisé au moment approprié de l'exécution.

Points d'entrée du module tronc commun
Le module tronc commun de Sage X3 constitue la fondation de l'ERP et offre une riche collection de points d'entrée permettant de personnaliser les processus fondamentaux du système. Ces points d'entrée couvrent l'ensemble des fonctionnalités transversales utilisées par tous les autres modules.
Gestion des impressions et éditions
Les traitements AIMP1 et AIMP3 permettent de personnaliser le processus d'impression des états. Le point d'entrée AIMP1 intervient lors de l'impression d'un état, tandis qu'AIMP3 offre des possibilités d'adaptation plus avancées pour les impressions. Ces points d'entrée sont particulièrement utiles pour modifier les paramètres d'impression, rediriger vers des imprimantes spécifiques ou ajouter des contrôles personnalisés.
Le traitement ETAT propose des sous-programmes d'appel au traitement d'édition d'un état, permettant d'intervenir dans la génération des rapports avec des logiques métier spécifiques.
Workflow et messagerie
Les traitements AWRK et AWRKMEL constituent les piliers de la personnalisation du workflow. AWRK gère la constitution des messages par le workflow, tandis qu'AWRKMEL se concentre sur l'envoi de messages. Ces points d'entrée permettent de personnaliser les destinataires, modifier le contenu des messages ou ajouter des conditions d'envoi spécifiques.
Gestion des objets et écrans
Le traitement GESECRAN offre des sous-programmes pour la gestion des saisies dans les écrans, permettant d'ajouter des contrôles personnalisés ou de modifier le comportement des champs. GENECR intervient lors de la génération d'écrans, offrant la possibilité d'adapter dynamiquement l'interface utilisateur.
Le point d'entrée CONTOBJ permet d'effectuer des contrôles d'objets personnalisés, essentiels pour valider des données selon des règles métier spécifiques.
Imports et exports
Les traitements GEXPOBJ et TRTEXPOBJ gèrent respectivement la gestion des exports et leur exécution. Ces points d'entrée permettent de personnaliser les données exportées, d'ajouter des filtres ou de modifier le format de sortie.
Pour les imports, TRTIMPOBJ et SUBIMPOBJ offrent des possibilités de personnalisation lors de l'exécution des imports, permettant d'adapter les données entrantes aux besoins spécifiques de l'entreprise.
Administration et sécurité
Le traitement GESUSER permet de personnaliser l'initialisation du contexte utilisateur, tandis que CHGUSR intervient lors du changement d'utilisateur dans une session. Ces points d'entrée sont cruciaux pour implémenter des politiques de sécurité personnalisées ou initialiser des paramètres utilisateur spécifiques.
Personnalisation du module stocks
Le module stocks de Sage X3 offre une multitude de points d'entrée permettant d'adapter finement les processus de gestion des stocks aux besoins spécifiques de l'entreprise.
Les traitements les plus couramment personnalisés incluent STKALL pour la gestion des allocations automatiques, STKENT pour les entrées en stock, et STKSOR pour les sorties. Ces points d'entrée permettent de modifier les paramètres d'allocation, d'ajouter des contrôles spécifiques sur les lots, ou encore de personnaliser les règles de sortie automatique.
Pour les processus de préparation, le traitement FUNAUTPREP propose des points d'entrée comme AUTPRLFIL pour ajouter des critères de sélection des commandes, ou AFTER_GEN_BPR pour intervenir après la génération des bons de préparation.
La valorisation des stocks peut être personnalisée via STKVAL avec le point d'entrée DEFPRI qui permet de définir un prix différent de celui de la méthode standard, particulièrement utile pour les entreprises ayant des règles de valorisation spécifiques.
Les contrôles qualité bénéficient également de nombreux points d'entrée dans SUBSTQ et SUBSTQB, permettant d'adapter les processus de validation aux normes sectorielles particulières.
Traitements workflow et messages
Les points d'entrée de workflow dans Sage X3 permettent une personnalisation avancée des processus de validation et de la gestion des messages. Le point d'entrée AWRKMEL constitue l'outil principal pour intervenir sur l'envoi des notifications par email.
Pour identifier le workflow actuel, plusieurs méthodes sont disponibles. La première consiste à utiliser la table [F:AWA] avec le test dim([F:AWA]CODE)>0 pour vérifier la présence d'un workflow. Une approche alternative utilise la variable GNAVIG pour détecter le traitement en cours et adapter le comportement en conséquence.
La personnalisation des expéditeurs s'effectue en modifiant la variable EXP_MAIL selon le contexte. Par exemple :
If [F:AWA]CODE='FUP'
EXP_MAIL='[email protected]'
Endif
Cette approche permet d'adapter l'expéditeur selon le type de workflow, garantissant une meilleure traçabilité des communications. Pour les workflows complexes, l'utilisation de la table AWRKHISSUI permet de remonter aux paramètres du workflow via [L]CHRONO.
Les notifications conditionnelles peuvent également être implémentées en testant la navigation avec GPILNAV, permettant d'adapter les destinataires selon le contexte fonctionnel. Cette flexibilité assure une gestion des messages parfaitement adaptée aux besoins métier de chaque organisation.
Méthodologie et bonnes pratiques
L'implémentation des points d'entrée Sage X3 nécessite une approche méthodologique rigoureuse pour garantir la stabilité et les performances du système. Une planification minutieuse permet d'éviter les écueils courants et d'optimiser les développements spécifiques.
La première étape consiste à identifier précisément le contexte d'appel du point d'entrée. Il est essentiel de comprendre l'environnement du traitement standard, les variables disponibles et les données manipulées. Cette analyse préalable détermine la faisabilité et la pertinence du développement envisagé.
Le développement du traitement spécifique doit respecter la structure imposée par Sage X3. Le traitement doit impérativement commencer par l'étiquette $ACTION, dans laquelle les différentes valeurs de la variable ACTION sont testées. Cette approche permet de gérer plusieurs points d'entrée dans un même traitement spécifique.
Les bonnes pratiques de développement incluent la gestion des erreurs, la validation des données d'entrée et la préservation de l'environnement du programme standard. Il est crucial de ne pas modifier les variables globales sans précaution et de documenter les modifications apportées.
Pour le débogage, l'utilisation des traces système et des messages d'information permet de suivre l'exécution du code. Les tests doivent être effectués en environnement de développement avant la mise en production.
Une checklist de validation doit vérifier : la compilation sans erreur, la déclaration correcte dans la table des points d'entrée, les tests unitaires, la documentation technique et l'impact sur les performances. Cette validation systématique garantit la qualité et la maintenabilité des développements.
Chargement...
Les questions fréquentes
Un point d'entrée dans Sage X3 est un mécanisme technique spécialement conçu pour permettre l'adaptation et la personnalisation du système sans modifier directement le code source standard. Il s'agit d'un emplacement prédéfini dans le code source où les développeurs peuvent injecter du code personnalisé de manière sécurisée et maintainable.
Le rôle principal d'un point d'entrée est double :
- Permettre l'ajout de fonctionnalités personnalisées tout en préservant l'intégrité du code standard
- Faciliter la maintenance et les mises à jour du système en isolant clairement les personnalisations
Concrètement, un point d'entrée fonctionne comme une interface entre le code standard et les développements spécifiques. Par exemple :
- Avant ou après l'enregistrement d'une commande client pour ajouter des contrôles supplémentaires
- Lors du calcul d'un prix pour appliquer des règles métier spécifiques
- Au moment de la génération d'un document pour modifier sa mise en forme
Les points d'entrée sont particulièrement importants car ils :
- Garantissent la pérennité des développements spécifiques lors des mises à jour
- Facilitent l'identification et la maintenance des personnalisations
- Permettent une meilleure traçabilité des modifications apportées au système
- Réduisent les risques d'erreurs liés aux modifications directes du code standard
En résumé, les points d'entrée constituent l'épine dorsale de la stratégie de personnalisation de Sage X3, offrant un cadre structuré et sécurisé pour adapter le système aux besoins spécifiques des entreprises tout en maintenant sa stabilité et sa capacité d'évolution.
L'identification et la mise en place d'un point d'entrée dans Sage X3 nécessite une méthodologie rigoureuse que voici :
1. Identification des points d'entrée disponibles :
- Consulter la documentation officielle Sage X3
- Explorer le code source dans le dossier SPEC
- Utiliser la fonction de recherche dans Syracuse avec le mot-clé '$ACTION'
- Analyser les fichiers .src existants
2. Méthodes de recherche :
- Documentation : Consulter le guide développeur X3
- Code source : Examiner les fichiers SPEC correspondant au module concerné
- Utiliser l'outil de développement pour rechercher les occurrences de points d'entrée
3. Mise en place d'un point d'entrée :
- Créer un nouveau fichier .src dans le dossier approprié
- Définir l'en-tête avec les informations nécessaires (nom, description, paramètres)
- Ajouter l'étiquette $ACTION suivie du nom du point d'entrée
- Implémenter la logique métier souhaitée
- Tester le point d'entrée dans un environnement de développement
4. Structure du code requise :
Func ABC(valeur1, valeur2)
#$ACTION=NOMACTION
Local Integer WRET : WRET = 0
[Code métier]
Return WRET
End
5. Bonnes pratiques :
- Documenter clairement le code et son objectif
- Utiliser des noms de variables explicites
- Gérer les erreurs et les exceptions
- Optimiser les performances
- Effectuer des tests unitaires
- Versionner le code
6. Points d'attention :
- Respecter la convention de nommage X3
- Vérifier la compatibilité avec les mises à jour
- Tester dans différents contextes d'utilisation
- Documenter les modifications apportées
Le module tronc commun de Sage X3 offre plusieurs points d'entrée essentiels qui permettent d'accéder aux fonctionnalités fondamentales du système. Voici les principaux :
Gestion des impressions :
- AIMP1 : Point d'entrée principal pour la gestion des impressions standard. Il permet de configurer et lancer des impressions unitaires de documents.
- AIMP3 : Destiné aux impressions en masse, ce point d'entrée permet de générer plusieurs documents simultanément selon des critères de sélection définis.
Gestion du workflow :
- AWRK : Interface principale de gestion des workflows, permettant de suivre et gérer les processus en cours.
- AWRKMEL : Point d'entrée spécifique pour la gestion des messages et alertes liés aux workflows, facilitant la communication entre les différents acteurs.
Gestion des objets :
- GESECRAN : Outil de personnalisation des écrans permettant d'adapter l'interface utilisateur selon les besoins spécifiques.
- GENECR : Générateur d'écrans permettant de créer de nouvelles interfaces ou de modifier des écrans existants.
Exemples d'utilisation concrets :
- Via AIMP1 : Impression d'une facture spécifique ou d'un bon de commande unitaire
- Via AIMP3 : Impression en lot de toutes les factures d'une période donnée
- Via AWRK : Suivi des validations de commandes en attente
- Via GESECRAN : Personnalisation de l'affichage des champs dans une fiche client
Ces points d'entrée constituent le socle fonctionnel de Sage X3 et sont essentiels pour une utilisation optimale du système au quotidien.
La personnalisation de la gestion des stocks dans Sage X3 s'effectue principalement à travers trois points d'entrée majeurs :
1. Point d'entrée STKALL (Allocations de stock)
- Permet de modifier les règles d'allocation des stocks
- Personnalisation des priorités d'allocation
- Exemple : Définir des règles spécifiques pour certains clients prioritaires ou adapter l'allocation selon les dates de péremption des produits
2. Point d'entrée STKENT (Entrées en stock)
- Personnalisation des processus de réception
- Modification des contrôles qualité à l'entrée
- Exemple : Ajout de contrôles supplémentaires pour certaines catégories de produits ou mise en place de validation spécifique pour les lots sensibles
3. Point d'entrée STKSOR (Sorties de stock)
- Adaptation des processus de prélèvement
- Personnalisation des règles de sortie
- Exemple : Mise en place de règles FIFO personnalisées ou création de contrôles spécifiques avant expédition
Applications pratiques :
- Intégration de règles métier spécifiques
- Automatisation des processus de validation
- Mise en place de contrôles qualité personnalisés
- Gestion des exceptions et cas particuliers
Avantages de la personnalisation :
- Adaptation aux processus spécifiques de l'entreprise
- Amélioration de la traçabilité
- Optimisation de la gestion des stocks
- Réduction des erreurs de manipulation
Ces points d'entrée permettent une grande flexibilité dans la gestion des stocks, s'adaptant ainsi aux besoins spécifiques de chaque entreprise tout en maintenant la cohérence du système.
La personnalisation des workflows et des notifications dans Sage X3 s'effectue principalement via le point d'entrée AWRKMEL. Voici une explication détaillée de son utilisation :
1. Configuration de base AWRKMEL
Le point d'entrée AWRKMEL permet de personnaliser les notifications par email du workflow. Voici un exemple de code de base :
Function AWRKMEL(WFCNO, WFCASE) { Local Char SENDER[250], RECIPIENT[250] If WFCNO = 'SORDER' { SENDER = 'commandes@entreprise.com' RECIPIENT = GetUserEmail(GESUSER) Return [SENDER, RECIPIENT] } }
2. Personnalisation des expéditeurs
On peut définir différents expéditeurs selon le contexte :
If WFCASE.TYP = 'VALIDATION' { SENDER = 'validation@entreprise.com' } Else If WFCASE.TYP = 'NOTIFICATION' { SENDER = 'notifications@entreprise.com' }
3. Gestion contextuelle des destinataires
Les destinataires peuvent être déterminés dynamiquement :
Local Char MANAGER[20] Select MANAGER = MANAGER From USERS Where CODE = GESUSER If WFCASE.AMOUNT > 10000 { RECIPIENT = RECIPIENT + ';' + GetUserEmail(MANAGER) }
4. Notifications conditionnelles
Implémentation de conditions pour l'envoi des notifications :
If WFCASE.PRIORITY = 1 { RECIPIENT = GetEmergencyContacts() Return [SENDER, RECIPIENT, 'URGENT'] } Else If WFCASE.STATUS = 'PENDING' And WFCASE.DELAY > 48 { Return [SENDER, RECIPIENT, 'REMINDER'] }
5. Bonnes pratiques
- Toujours vérifier la validité des adresses email
- Implémenter une gestion des erreurs
- Documenter les modifications
- Tester les notifications dans un environnement de test
1. Phase de planification
- Analyser les besoins fonctionnels et techniques
- Identifier clairement le contexte d'utilisation du point d'entrée
- Documenter les spécifications et les règles métier
- Définir les paramètres d'entrée et de sortie attendus
2. Structure et organisation du code
- Utiliser une nomenclature claire et cohérente
- Commenter le code de manière pertinente
- Implémenter une gestion des erreurs robuste
- Respecter les standards de développement Sage X3
- Optimiser les performances du code
3. Tests et validation
- Créer des jeux de tests unitaires
- Tester les cas limites et les situations d'erreur
- Valider le comportement dans différents contextes
- Vérifier l'impact sur les performances
4. Checklist de validation
- Vérification de la syntaxe et des bonnes pratiques
- Tests fonctionnels complets
- Documentation technique à jour
- Contrôle des performances
- Validation de la sécurité
5. Maintenance et évolution
- Maintenir une documentation à jour
- Gérer les versions du code
- Surveiller les performances
- Planifier les mises à jour
6. Recommandations supplémentaires
- Utiliser des variables explicites
- Éviter les dépendances inutiles
- Implémenter des logs pertinents
- Prévoir la scalabilité
- Respecter les standards de sécurité
7. Débogage et monitoring
- Mettre en place des outils de monitoring
- Implémenter des logs détaillés
- Prévoir des mécanismes de traçabilité
- Faciliter le diagnostic des erreurs