Guide complet du langage de script Sage X3

Maîtrisez le développement et la personnalisation avec le langage 4GL de Sage X3

Plongez dans l'univers du langage de script Sage X3, un outil puissant spécialement conçu pour personnaliser et optimiser votre ERP. De la syntaxe aux bonnes pratiques de développement, découvrez comment maîtriser ce langage 4GL pour créer des solutions sur mesure.
Image 1
Le langage de script Sage X3 constitue la pierre angulaire du développement et de la personnalisation au sein de l'ERP Sage X3. Inspiré du C++ tout en conservant ses spécificités métier, ce langage 4GL propriétaire offre aux développeurs un environnement complet pour créer des solutions adaptées aux besoins spécifiques des entreprises. Sa maîtrise est devenue indispensable pour toute organisation souhaitant exploiter pleinement les capacités de son système Sage X3.

Fondamentaux du langage de script Sage X3

Le langage de script Sage X3 est un langage 4GL propriétaire développé spécifiquement pour l'ERP Sage X3. Ce langage présente des similitudes notables avec C++, offrant aux développeurs une syntaxe familière tout en conservant ses spécificités métier.

Contrairement aux langages généralistes, ce langage propriétaire de Sage est optimisé pour les opérations de gestion d'entreprise et l'intégration avec les modules Sage X3. Il permet de créer des packages et des scripts personnalisés adaptés aux besoins spécifiques de chaque organisation.

L'environnement de développement principal est Eclipse, qui offre des fonctionnalités avancées comme le débogage, la gestion des verrous de fichiers et l'édition de code. Les développeurs peuvent également utiliser l'éditeur de script intégré pour les modifications rapides.

Une caractéristique importante du langage est sa gestion automatique de la casse : les mots-clés sont reconnus indépendamment de leur casse, et les variables sont automatiquement converties en majuscules. Cette fonctionnalité garantit une cohérence dans le code et évite les erreurs de frappe courantes.

Pour débuter, il est essentiel de configurer correctement l'accès aux dictionnaires de scripts et de comprendre la structure des dossiers X3 versus les dossiers d'application pour éviter les pertes de personnalisations lors des mises à jour.

Visuel 2

Syntaxe et mots-clés essentiels

Le langage de script Sage X3 repose sur un ensemble de mots-clés spécifiques qui définissent sa syntaxe et ses fonctionnalités. Ces mots-clés sont reconnus indépendamment de leur casse, ce qui signifie que For, FOR ou fOr sont identiques pour l'interpréteur. Cette caractéristique impose des règles strictes de nommage pour éviter les conflits avec les mots réservés du langage.

Les variables publiques sont automatiquement converties en majuscules par l'éditeur de script. Par exemple, une variable nommée foo sera automatiquement réécrite en FOO. Cette convention garantit la cohérence du code et facilite la maintenance.

Les mots-clés du langage sont classés en plusieurs catégories selon leur statut :

  • Public : mots-clés disponibles sans restriction depuis la version 6
  • New : nouvelles instructions introduites en version 7
  • Deprecated : mots-clés déconseillés pour le développement version 7
  • Internal : réservés aux couches superviseur

Les instructions de contrôle constituent l'épine dorsale du langage. L'instruction If...Then...Else...Endif permet les tests conditionnels, tandis que les boucles For...Next et While...Wend gèrent les itérations. La syntaxe Case...When...Endcase offre une alternative élégante aux conditions multiples.

La gestion des données s'effectue principalement via les mots-clés Read, Write, Update et Delete pour les opérations de base de données. Les fichiers séquentiels utilisent Openi, Openo, Rdseq et Wrseq pour les opérations d'entrée/sortie.

Les déclarations de variables suivent une syntaxe précise : Local Integer COUNTER pour un entier local, Char CUSTOMER_NAME pour une chaîne de caractères, ou Date ORDER_DATE pour une date. Le mot-clé Global permet de déclarer des variables accessibles dans toute l'application.

La gestion des erreurs utilise l'instruction Onerrgo pour définir un point de branchement en cas d'erreur, associée à Resume pour reprendre l'exécution normale. Cette approche structurée garantit la robustesse des scripts développés.

Visuel 3

Gestion des classes et instances

La gestion des classes et instances constitue un aspect fondamental du développement avancé en Sage X3. Cette approche orientée objet permet de créer des structures de données complexes et réutilisables.

La déclaration d'une instance s'effectue avec l'instruction Local Instance suivie du nom de l'instance et de la classe utilisée :

Local Instance MYINSTANCE Using C_CLASSNAME

Cette déclaration crée un pointeur vers une instance, initialisé par défaut avec la valeur null. La création effective de l'instance nécessite l'utilisation de l'instruction Newinstance :

MYINSTANCE=Newinstance C_CLASSNAME AllocGroup Null

Le paramètre AllocGroup permet de grouper plusieurs instances pour une gestion mémoire optimisée. Lorsque plusieurs instances partagent le même groupe d'allocation, elles peuvent être libérées simultanément.

L'accès aux propriétés d'une instance utilise la syntaxe point : INST.PROP. Cette notation supporte les propriétés imbriquées comme SALESORDER.LINE(5).DISCOUNT(3).RATE pour accéder à des collections d'objets.

La libération de la mémoire s'effectue avec FreeInstance pour une instance unique ou FreeGroup pour toutes les instances d'un groupe d'allocation. Les conventions de nommage suivent des règles strictes : les codes superviseur commencent par "A", les développements spécifiques utilisent "X", "Y" ou "Z", et les méthodes internes débutent par un underscore.

Développement de scripts personnalisés

Le développement de scripts personnalisés dans Sage X3 s'articule autour de trois types principaux de fenêtres, chacune offrant des possibilités spécifiques d'adaptation aux besoins métier. Cette approche modulaire permet une personnalisation fine des processus tout en maintenant la cohérence avec l'architecture globale du système.

Les fenêtres de type Object constituent l'épine dorsale des transactions principales de Sage X3. Ces écrans s'appuient sur des objets métier prédéfinis et bénéficient automatiquement de toute la logique applicative associée. Pour personnaliser ces fenêtres, il est essentiel de respecter les conventions de nommage établies : les codes spécifiques doivent commencer par "X", "Y" ou "Z", tandis que les codes application utilisent les lettres "B" à "V". Cette approche garantit la compatibilité avec les futures mises à jour du système.

Les fenêtres Miscellaneous offrent une liberté totale de conception et représentent le terrain d'expression privilégié pour les développements spécifiques. Ces écrans permettent d'implémenter des fonctionnalités entièrement personnalisées, comme la désactivation conditionnelle de boutons ou la création d'interfaces utilisateur adaptées aux processus métier particuliers. L'utilisation de scripts dans ces fenêtres nécessite une maîtrise approfondie du langage 4GL de Sage X3 et de ses instructions spécialisées.

La validation des données représente un cas d'usage critique dans le développement de scripts personnalisés. Par exemple, l'implémentation d'une validation de format PAN nécessite l'utilisation d'instructions conditionnelles combinées à des fonctions de manipulation de chaînes. Cette approche garantit l'intégrité des données saisies tout en fournissant un retour utilisateur approprié.

L'automatisation des processus s'appuie sur les capacités avancées du langage de script, notamment les boucles "For...Next" et les structures conditionnelles "If...Endif". Ces constructions permettent de traiter automatiquement des volumes importants de données ou d'enchaîner des opérations complexes. La gestion des erreurs via "Onerrgo" assure la robustesse de ces automatisations.

Les fenêtres Inquiry se spécialisent dans la présentation de données et nécessitent une approche particulière en termes de performance. L'utilisation judicieuse des instructions "Columns" et "Filter" permet d'optimiser les requêtes tout en maintenant une interface utilisateur réactive. Ces écrans bénéficient également des capacités de tri et de filtrage avancées du langage de script.

Intégration et communication avec la base de données

L'interaction avec la base de données constitue le cœur du développement de scripts Sage X3. Le langage 4GL offre des mécanismes puissants pour gérer les opérations CRUD (Create, Read, Update, Delete) et maintenir l'intégrité des données dans l'environnement ERP.

Les opérations de lecture s'effectuent principalement via les instructions Read et For. L'instruction Read permet d'accéder à un enregistrement spécifique, tandis que For crée un curseur pour parcourir plusieurs enregistrements. Le système gère automatiquement les buffers [F] pour optimiser les performances d'accès aux données.

Pour les opérations d'écriture, Sage X3 propose Write pour l'insertion, Rewrite pour la modification et Delete pour la suppression. L'instruction Writeb offre une version bufferisée pour améliorer les performances lors d'insertions multiples. Ces opérations respectent automatiquement les contraintes définies dans les dictionnaires de données.

La gestion des transactions s'appuie sur les instructions Trbegin, Commit et Rollback. Le système maintient automatiquement l'état transactionnel via la variable adxlog, permettant de vérifier si une transaction est active. Cette approche garantit la cohérence des données même en cas d'erreur.

L'intégration SQL directe est possible via l'instruction Execsql pour les requêtes complexes. Cependant, il est recommandé d'utiliser les mécanismes natifs du langage pour préserver l'intégrité référentielle et bénéficier des optimisations automatiques.

Les bonnes pratiques incluent l'utilisation de filtres appropriés avec l'instruction Filter, la gestion des verrous via Readlock, et l'optimisation des requêtes avec les hints de base de données. La variable fstat permet de contrôler le statut des opérations pour une gestion d'erreur robuste.

Optimisation et débogage des scripts

L'optimisation et le débogage des scripts Sage X3 sont essentiels pour maintenir des performances élevées et assurer la fiabilité des développements. Le système offre plusieurs outils et techniques pour identifier et résoudre les problèmes.

La gestion des erreurs s'appuie sur des variables système dédiées comme errn pour le numéro d'erreur, errm pour le message détaillé, et errl pour la ligne d'erreur. L'instruction Onerrgo permet de rediriger l'exécution vers un label spécifique en cas d'erreur, tandis que Resume termine la gestion d'exception.

Les outils de débogage incluent l'instruction Dbgaff pour ouvrir le débogueur et la variable dbgmode pour activer ou désactiver le débogage. La fonction dbgbreakpoint permet de gérer les points d'arrêt dynamiquement.

Pour l'optimisation des performances, surveillez les variables adxftl et adxwrb qui définissent respectivement la taille du cache pour les opérations de lecture et d'écriture. Utilisez fstat pour vérifier le statut des opérations de base de données.

Les bonnes pratiques incluent l'utilisation de noms de variables explicites, la documentation du code avec des commentaires, et la gestion appropriée de la mémoire avec FreeInstance et FreeGroup. Évitez de modifier les scripts standard et privilégiez les points d'entrée pour les personnalisations.

La maîtrise du langage de script Sage X3 représente un atout majeur pour optimiser et personnaliser efficacement votre ERP. De la syntaxe fondamentale à la gestion avancée des classes, en passant par l'intégration avec la base de données, ce langage offre toutes les fonctionnalités nécessaires pour développer des solutions robustes et performantes. Pour tirer le meilleur parti de cet outil puissant, il est essentiel de suivre les bonnes pratiques de développement et d'optimisation présentées dans ce guide.

Les questions fréquentes