box::info("AX Configuration file path: " + XInfo::configuration());
Nouvel arrivant sur cette technologie, je souhaite tracer les différentes étapes de mon apprentissage, pour moi mais pourquoi pas pour d'autres...
vendredi 7 octobre 2011
Récupération du chemin du lanceur
Pour récupérer le chemin du fichier de configuration utilisé pour lancer AX, voici le code à utiliser :
lundi 30 mai 2011
Afficher la requête générée par un objet Query
Dans le cas d'un objet "Query" créé dynamiquement, il peut être intéressant d'avoir une vue de la requête SQL (au format AX) générée. Pour cela il suffit d'utiliser la commande suivante :
info(QueryObject.DataSourceNo(1).toString();)
jeudi 3 mars 2011
CP1.3 - Modification de la form
Après avoir créer notre champ en base, il ne nous reste plus qu'à faire le nécessaire pour qu'il soit alimenté.
La mise à jour de ce champ passe par une saisie dans une form, dans notre cas il s'agit de la form "Relations commerciales" portant le nom "smmBusRelTable".
Notre nouveau champ ("SP_TestCombo") est désormais présent dans le datasource "smmBusRelTable". C'est ce champ qu'il va nous falloir placer sur notre form. Pour cela voici les actions à effectuer :
La mise à jour de ce champ passe par une saisie dans une form, dans notre cas il s'agit de la form "Relations commerciales" portant le nom "smmBusRelTable".
Notre nouveau champ ("SP_TestCombo") est désormais présent dans le datasource "smmBusRelTable". C'est ce champ qu'il va nous falloir placer sur notre form. Pour cela voici les actions à effectuer :
- Déplier la branche correspondant à l'emplacement où vous souhaitez voir apparaitre votre champ, dans notre cas, voici l'arborescence que nous déplions :
- Par un glisser/déplacer, vous déposez le champ "SP_TestCombo" issu du datasource "smmBusRelTable" dans le goup "Identification".
Il ne vous reste plus qu'à lancer l'écran "Relations commerciales", vous devriez obtenir le résultat suivant :
CP1.2 - Création du champ en base
Dans le billet précédent, nous avons vu dans quelle table nous devions créer notre champ et le nom que nous allions lui donner. Il nous reste à définir son type.
Pour rappel, ce champ se destine à accueillir une liste de valeur. Sous AX le type de champ à utiliser est "Enum". Les valeurs de cette énumération sont connues, il faut donc les définir :
Etape 1 - Création de l'énumération :
Voici les actions à réaliser :
Il s'agit ici de créer le type de données sur lequel notre champ va s'appuyer, voici les actions à réaliser :
Le champ est désormais prêt à être ajouté à la table, voici les actions à réaliser :
Une fois ces différentes étapes effectuées, notre table est à jour, il ne nous reste plus qu'à mettre à jour notre "form", c'est ce que nous allons voir dans le billet suivant "CP1.3 - Modification de la form".
Pour rappel, ce champ se destine à accueillir une liste de valeur. Sous AX le type de champ à utiliser est "Enum". Les valeurs de cette énumération sont connues, il faut donc les définir :
- 0 : Test 1
- 1 : Test 2
- 2 : Test 3
Etape 1 - Création de l'énumération :
Voici les actions à réaliser :
- Se placer dans l'AOT (Control+D) sur la branche "Data Dictionary\Base Enums"
- Ouvrir le menu contextuel et sélectionner l'option "Nouveau Base Enum"
- Affecter à ce base enum le nom "SP_TestCombo"
- Ouvrir le menu contextuel correspondant à ce base enum et sélectionner l'option "Nouveau Element"
- Valoriser les propriétés "Name", "Label" et "EnumValue" avec les valeurs suivantes : "Test1", "Test 1",0
- Répéter ces deux dernières actions pour obtenir les valeurs "Test 2" et "Test 3"
Etape 2 - Création de l'extended data types :
Il s'agit ici de créer le type de données sur lequel notre champ va s'appuyer, voici les actions à réaliser :
- Dans l'AOT (Control+D) se placer sur la branche "Data Dictionary\Extended Data Types"
- Ouvrir le menu contextuel et sélectionner l'option "Nouveau\Enum"
- Affecter à ce type le nom "SP_TestComboType"
- Valoriser les propriétés "Label", "HelpText" et "EnumType" avec les valeurs suivantes : "Test", "Test d'une liste de valeur","SP_TestCombo"
Etape 3 - Ajout du champ dans la table :
- Dans l'AOT (Control+D) se placer sur la branche "Data Dictionary\Tables\smmBusRelTable\Fields" ("smmBusRelTable" étant le nom de la table des relations commerciales)
- Ouvrir le menu contextuel et sélectionner l'option "Nouveau\Enum"
- Affecter à ce champ le nom "SP_TestComboType"
- Valoriser la propriété "ExtendedDataType" avec la valeur "SP_TestComboType" correspondant au type précédemment créé.
Une fois ces différentes étapes effectuées, notre table est à jour, il ne nous reste plus qu'à mettre à jour notre "form", c'est ce que nous allons voir dans le billet suivant "CP1.3 - Modification de la form".
CP1.1 - Repérage
Avant de nous lancer tête baissée dans le développement, nous allons repérer les lieux. Cela consiste juste à identifier clairement les points suivants :
- le nom de la "form" concernée par notre modification
- le nom que nous souhaitons donner à notre nouveau champ
- le nom du datasource utilisé par la form pour l'affichage des informations
- le nom de la table où le champ va devoir être ajouté
Nous souhaitons ajouter notre champ dans la form "Relations commerciales" se trouvant dans le module CRM :
Pour déterminer le nom de la "form" sur laquelle nous travaillons, placez-vous sur un champ de saisi et appuyez sur les touches "Shift"+"Enter". Vous obtiendrez une popup de ce type :
Vous trouvez sur cet écran un ensemble d'informations très interessantes :
- le nom de la form
- le nom du datasource utilisé
- le nom de la table sur laquelle on pointe
Il ne nous reste plus qu'à déterminer le nom que l'on souhaite donner à notre champ : SP_TestCombo.
Pour la création du champ, rendez-vous sur le billet "CP1.2 - Création du champ en base"...
Cas Pratique 1 (CP1) - Ajouter un champ dans une "form" existante
Premier cas pratique : Nous allons décrire ici comment ajouter un champ dans une « form » existante.
Pour ce cas pratique nous nous appuierons sur la fenêtre de définition d'une relation commercial (Module CRM), mais cela pourrait être n'importe quelle "form". Nous ajouterons sur cette "form" un champ de type liste déroulante dont le contenu est figé. Ce nouveau champ aura pour libellé "Test Combo" et le contenu de la liste sera "Test1", "Test2" et "Test3". Pas très parlant tout cela mais le but est ici de présenter la méthode et non pas la mise en place d'une nouvelle fonctionnalité.
Nous allons découper ce cas pratique en différentes parties, dans le but d'en faciliter la lecture (et la rédaction) :
- CP1.1 - Repérage : nous décrivons ici les informations à récupérer avant de se lancer dans le développement pur.
- CP1.2 - Création du champ en base : nous décrivons ici les étapes à suivre pour créer en base de données notre nouveau champ.
- CP1.3 - Modification de la form : dernier chapitre décrivant comment modifier la form pour faire apparaitre notre nouveau champ.
Inscription à :
Articles (Atom)






