Créer l’objet extension de table Client
La table Client, comme beaucoup d’autres tables, fait partie du service Business Central et ne peut pas être directement modifiée par les développeurs. Pour ajouter des champs ou modifier les propriétés de cette table, les développeurs doivent créer un type d’objet : une extension de table.
Pour votre extension Récompenses client, vous devez ajouter un champ à la table Client. Le code suivant crée une extension de table pour la table Client et ajoute le champ RewardPoints.
tableextension 50100 Customer extends Customer
{
fields
{
field(10001; RewardPoints; Integer)
{
Caption = 'Reward Points';
DataClassification = CustomerContent;
MinValue = 0;
}
}
}
Remarque
Si vous créez cette extension de table dans votre projet et que vous obtenez une erreur de compilation indiquant que la table Client est inconnue, cela signifie probablement que vous n’avez pas encore téléchargé les symboles dans votre projet VSCode.
Pour télécharger les symboles, procédez comme suit :
Dans VScode, sélectionnez AL: Download Symbols dans la Palette de commandes.
La première fois que vous téléchargez des symboles, vous êtes invité à vous authentifier en tant que développeur pour l’abonné concerné. Une zone de message s’affiche alors en bas à droite de l’écran. Sélectionnez-la. Votre navigateur s’ouvre alors. Collez le code, puis authentifiez-vous avec exactement les mêmes informations d’identification que vous utilisez dans votre environnement BC SaaS.
Ensuite, fermez la fenêtre du navigateur et les symboles commencent alors à se télécharger.
Lorsque les symboles sont téléchargés, dans votre projet VSCode, il devrait y avoir un dossier nommé .alpackages contenant les applications Application, Base et 2 System.
La propriété MinValue définit la valeur minimale d’un champ. Le paramètre du champ est vérifié lors de la validation. La validation ne se produit qu’en cas de mise à jour du champ ou de la valeur de contrôle au moyen de l’interface utilisateur, par exemple, si une valeur est mise à jour sur une page ou si un champ est mis à jour directement dans une table. Si un champ est mis à jour au moyen du code d’application, la propriété MinValue n’est pas validée.
Remarques importantes à retenir sur les objets extension de table :
Seules les tables avec la propriété Extensible définie sur true peuvent être étendues.
Les objets d’extension peuvent avoir un nom d’une longueur maximale de 30 caractères.
Les tables système et virtuelles ne peuvent pas être étendues. Les tables système sont créées dans la plage d’ID à partir de 2 000 000 000.
Dans une extension, vous ne pouvez créer qu’un seul objet extension de table pour une table donnée. En d’autres termes, vous pouvez avoir plusieurs objets extension de table dans une extension s’ils étendent tous des tables différentes. Vous pouvez créer plusieurs extensions (applications) qui étendent le même objet table.