Aujourd’hui, je voulais saisir un nouveau fournisseur dans Dynamics AX. Lors de la saisie, je me suis apperçu que le NPA de ma ville préférée n’y figurait pas!
Dynamics ERP en mode web/cloud est très recent : il y aura sûrement des évolutions majeures, ce qui implique que certaines manipulations décrites dans cet article seront probablement plus simples dans le futur.
Attention : si vous avez des virgules dans votre data set d’import ou d’export, n’utilisez pas du CSV, mais plutôt du XML.
Les fichiers d’import prêts à l’utilisation sont disponibles à la fin de ce post.
Mon premier réflexe a été de chercher l’import des codes :
…mais la Suisse n’est pas dans la liste!
…c’est simplement parce qu’il n’y a pas d’import spécifique pour la Suisse. Si vous voulez en coder un, vous pouvez apparemment faire en créant une classe qui hérite de AddressZipCodeImport. Cependant, ce n’est pas nécessaire.
Voici comment ajouter les NPA Suisses dans AX. Par ailleurs, la même méthode peut être utilisée pour la majorité des autres pays.
Première étape : télécharger la liste des codes postaux
Vous pouvez trouver la liste gratuite des codes postaux sur le site de GeoNames, sous licence Creative Commons Attribution 3.0 (donc, vous pouvez l’utiliser, mais n’oubliez pas de mentionner GeoNames.org). Je crois que la poste Suisse les propose aussi : c’est probablement une meilleure source, mais je préfère une solution qui fonctionne pour plusieurs pays.
http://www.geonames.org/export/
Téléchargez simplement le fichier CH.zip :
En passant, il s’agit de codes ISO 3166-1 Alpha-2 : https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
En général, c’est une meilleure idée d’utiliser des codes Alpha-3 pour les pays et les langues : pensez-y si vous développez une application.
Dans le zip, vous trouverez un fichier texte.
Deuxième étape : comprendre le format d’import
Tout d’abord, un tour dans les paramètres du carnet d’adresses s’impose :
C’est ici qu’on peut saisir les codes postaux à la main. Les cantons devront être saisis séparément dans “State/Province”.
Je vous conseille de saisir manuellement 3 codes postaux, 3 cantons, 3 villes, et la Suisse si elle n’y est pas déjà (code ISO : CHE).
S’il vous manque des champs de saisie, vous pouvez adapter le formulaire en utilisant clic-droit et “personalize form” :
…ces adaptations ne sont appliquées qu’à vous (il faut exporter le XML si vous voulez les transmettre à un autre utilisateur).
Pour s’assurer du format d’import, rien de mieux que de commencer par un export (dans Data Management) :
Ajoutez les entités “States” (pour les cantons), “Cities” et “Postal codes” :
Cet import n’étant pas très technique, le format CSV suffira. Il ne vous reste plus qu’à exporter :
…puis à télécharger le résultat :
Une fois dézippé, vous avez accès aux trois fichiers d’export.
Deuxième étape : préparer les fichiers d’import
Pour effectuer des transformations dans des fichiers CSV, je vous conseille OpenOffice (excellent Wizard à l’ouverture du fichier, contrôle de l’encodage) et Notepad++ (mode d’édition en colonne, contrôle de l’encodage, expressions régulières).
A présent, il faut imiter le format des fichiers exportés :
Pour chaque fichier, je conserve la première ligne (headers), et je copie puis transforme les données de CH.txt (GeoNames.org).
Attention à l’encodage et au séparateur lors de l’ouverture de CH.txt avec OpenOffice calc. Sinon les caractères diacritiques seront détruits à l’import.
…et l’ouverture de States.csv avec OpenOffice calc : attention! L’encodage n’est pas le même!
A présent, pour préparer notre fichier d’import des cantons, il faut créer une nouvelle feuille “Cantons” dans le classeur OpenOffice, puis sélectionner les colonnes des cantons et utiliser Filter>Standard Filter avec les paramètres suivants :
…retirer les prefixes des noms :
…puis, après quelques copier-coller, sauver le fichier .csv :
…en s’assurant que le format d’écriture est correct :
Troisième étape : importer
Dans “Data Management” :
Puis, une fois l’importation terminée, un contrôle :
…on voit que les cantons ont été importés, et sans casser les accents.
Il ne reste plus qu’à faire de même pour les fichiers Cities.csv et Postal codes.csv.
Attention! Il peut y avoir des duplicats au niveau des NPA. Le même code peut être utilise pour plusieurs communes et le même NPA peut apparaître plusieurs fois pour la même commune dans le fichier, puisque les subtilités sont perdues en cours de route lorsqu’on retire certaines informations. Cependant, bien qu’AX permette l’import de codes postaux similaires, il ne permet pas d’importer plusieurs lignes totalement identiques, et le message d’erreur ne signale pas le problème. Il faut donc éliminer les lignes dupliquées du fichier avant import (en utilisant la méthode décrite à l’étape 2, par exemple).
Voici les fichiers d’imports qui ont fonctionné pour moi : 20160817-AxSwissPostCodes-CsvImportFiles.zip
Finalement, on peut contrôler que les codes postaux sont disponibles, par exemple en saisissant un nouveau fournisseur :
Voilà tout! Si vous avez des questions ou des remarques, n’hésitez pas à utiliser les commentaires.
Merci beaucoup pour ton tuto, il m’a bien rendu service !
Merci pour le retour, ça fait plaisir!