Configurer les contrôles personnalisés dans Dynamics
Ce guide détaille la configuration des webservices DQE One dans un environnement Microsoft Dynamics 365 ou Power Apps. Chaque webservice nécessite deux niveaux de configuration : les paramètres au niveau de l'application (à faire une seule fois) et les paramètres au niveau du formulaire (à faire par entité — Account, Contact, Lead).
Ajouter un contrôle PCF
Tous les webservices DQE se configurent en plaçant un contrôle PCF sur le champ cible dans l'éditeur de formulaire. Le processus est identique pour chaque type de contrôle, sur chaque entité — standard (Account, Contact, Lead) ou personnalisée.
- Ouvrez le formulaire de l'entité cible dans l'éditeur de formulaire Power Apps.
- Sélectionnez le champ à configurer (rue, ville, email, téléphone, etc.).
- Dans le panneau de droite, cliquez sur + Components, puis sélectionnez le contrôle DQE correspondant.
- Mappez les paramètres requis. Les paramètres requis doivent être liés à un champ existant ; les paramètres optionnels peuvent rester vides. Consultez la section de chaque webservice pour la référence complète des paramètres.
- Enregistrez et publiez le formulaire. Répétez l'opération pour chaque entité et chaque bloc d'adresse où le webservice doit être actif.
Note : chaque contrôle doit être configuré indépendamment pour chaque formulaire d'entité. Les paramètres au niveau de l'application (DQE DataQ Settings) s'appliquent globalement et ne doivent être définis qu'une seule fois.
Options de code pays
Plusieurs contrôles acceptent des paramètres de code pays pour présélectionner le pays des requêtes API. Trois options mutuellement exclusives :
- Laissez countrycode et countryiso3 vides — aucune présélection de pays, l'utilisateur sélectionne le pays manuellement.
- Définissez countrycode sur le champ lookup DQE Country — le pays est présélectionné dynamiquement à partir de l'enregistrement.
- Définissez countrycode sur un lookup vers une table de pays personnalisée + définissez countryfield sur le nom logique du champ ISO3 dans cette table.
- Définissez countryiso3 sur une valeur ISO3 codée en dur (par ex.
FRA) — le pays est fixe pour tous les enregistrements de ce formulaire.
Attention : les anciens PCF sont préfixés par [Legacy], tandis que les nouveaux PCF n'ont aucun préfixe [].
1. Adresses
Le webservice d'adresse fournit l'autocomplétion et la validation d'adresse en temps réel. Il peut être activé sur les entités Account, Contact et Lead.
1.1 Paramètres de l'application
Dans DQE DataQ Settings → General, positionnez les toggles concernés sur Yes :
- Enable Address Autocomplete — active le menu déroulant de suggestion d'adresse sur les champs d'adresse.
- Enable Address Validation — active la boîte de dialogue de validation RNVP à l'enregistrement.
Accédez ensuite à l'onglet Address Setup :
- Autofill Address Complement — activez pour remplir le champ complément (nom du bâtiment, étage…) à partir de la réponse de l'API.
- Address Default Country — présélectionne un pays dans le champ de recherche. Ne restreint pas la validation internationale.
- Contact / Account / Lead Address List — choice set à sélection multiple par entité. Sélectionnez les blocs d'adresse (Address 1, Address 2…) sur lesquels le webservice doit être actif.
1.2 Validation d'adresse (RNVP)
La validation d'adresse est activée par le toggle Enable Address Validation dans les paramètres de l'application (§1.1). Lorsqu'elle est activée, l'enregistrement d'une fiche dont les champs d'adresse ont été modifiés manuellement (et non sélectionnés via l'autocomplétion) déclenche une boîte de dialogue RNVP — l'utilisateur peut accepter ou rejeter chaque correction suggérée, champ par champ.
Note : RNVP et Address Autocomplete sont contrôlés par deux toggles distincts et peuvent être activés indépendamment.
1.2.1 AddressFieldControl — Champ rue
AddressFieldControl · Custom API: DQE - Address - Search
| Paramètre | Type | Usage | Requis | Description |
|---|---|---|---|---|
line |
SingleLine.Text |
bound | Requis | Ligne d'adresse (le champ sur lequel le contrôle est placé). |
city |
SingleLine.Text |
bound | Requis | Champ ville — mis à jour lorsqu'une suggestion est sélectionnée. |
postalcode |
SingleLine.Text |
bound | Requis | Champ code postal — mis à jour lorsqu'une suggestion est sélectionnée. |
complement |
SingleLine.Text |
bound | Optionnel | Champ complément d'adresse (nom du bâtiment, étage…). Nécessite l'activation d'Autofill address complement dans Address Setup. |
saidplace |
SingleLine.Text |
bound | Optionnel | Champ lieu-dit. Associez-le à un champ personnalisé pour recevoir la valeur de localité renvoyée par l'API. |
dqecodedetail |
SingleLine.Text |
bound | Optionnel | Stocke le code retour RNVP après validation d'adresse. Peut être utilisé dans des flux Power Automate ou des règles métier. |
countrycode |
Lookup.Simple |
bound | Optionnel | Lookup vers la table DQE Country (ou une table de pays personnalisée). Utilisé pour présélectionner le pays. |
countryfield |
SingleLine.Text |
input | Optionnel | En cas d'utilisation d'une table de pays personnalisée, le nom logique du champ contenant le code ISO3 dans cette table. |
countryiso3 |
SingleLine.Text |
input | Optionnel | Code pays ISO3 codé en dur (par ex. FRA). À utiliser à la place de countrycode lorsque le pays est fixe. |
addressColumns |
Multiple |
input | Optionnel | JSON définissant des colonnes personnalisées dans le menu déroulant de suggestion d'adresse. |
complementColumns |
Multiple |
input | Optionnel | JSON définissant des colonnes personnalisées dans le menu déroulant de suggestion du complément. |
1.2.2 CityFieldControl — Champ ville
CityFieldControl · Custom API: DQE - Address - Search
| Paramètre | Type | Usage | Requis | Description |
|---|---|---|---|---|
city |
SingleLine.Text |
bound | Requis | Champ ville (le champ sur lequel le contrôle est placé). |
postalcode |
SingleLine.Text |
bound | Requis | Champ code postal — mis à jour lorsqu'une suggestion est sélectionnée. |
countrycode |
Lookup.Simple |
bound | Optionnel | Lookup vers la table DQE Country (ou une table de pays personnalisée). |
countryfield |
SingleLine.Text |
input | Optionnel | En cas d'utilisation d'une table de pays personnalisée, le nom logique du champ ISO3 dans cette table. |
countryiso3 |
SingleLine.Text |
input | Optionnel | Code pays ISO3 codé en dur. |
customColumns |
Multiple |
input | Optionnel | JSON définissant des colonnes personnalisées dans le menu déroulant de suggestion de ville. |
1.2.3 PostalcodeFieldControl — Champ code postal
PostalcodeFieldControl · Custom API: DQE - Address - Search
| Paramètre | Type | Usage | Requis | Description |
|---|---|---|---|---|
postalcode |
SingleLine.Text |
bound | Requis | Champ code postal (le champ sur lequel le contrôle est placé). |
city |
SingleLine.Text |
bound | Requis | Champ ville — mis à jour lorsqu'une suggestion est sélectionnée. |
countrycode |
Lookup.Simple |
bound | Optionnel | Lookup vers la table DQE Country (ou une table de pays personnalisée). |
countryfield |
SingleLine.Text |
input | Optionnel | En cas d'utilisation d'une table de pays personnalisée, le nom logique du champ ISO3 dans cette table. |
countryiso3 |
SingleLine.Text |
input | Optionnel | Code pays ISO3 codé en dur. |
customColumns |
Multiple |
input | Optionnel | JSON définissant des colonnes personnalisées dans le menu déroulant de suggestion de code postal. |
1.3 Résultats attendus
Lorsque Enable Address Autocomplete est actif et que les contrôles PCF sont configurés :
- Saisie d'une adresse : des suggestions apparaissent au fur et à mesure que l'utilisateur tape dans le champ Street.
- Saisie d'un code postal : les suggestions sont filtrées par villes et rues correspondantes.
- La sélection d'une suggestion remplit automatiquement City, Postal Code et tout autre champ mappé.
2. Emails
Le webservice email valide les adresses email en temps réel et peut suggérer des corrections basées sur le nom du contact. Disponible sur Account, Contact et Lead.
2.1 Paramètres de l'application
Dans DQE DataQ Settings → General, positionnez Enable Email Validation sur Yes.
Accédez ensuite à l'onglet Email Setup :
- Contact / Account / Lead Email List — choice set à sélection multiple par entité. Sélectionnez les champs email sur lesquels le webservice doit être actif.
Note : les suggestions d'email basées sur le nom sont activées au niveau du PCF en mappant les paramètres firstnamevalue et lastnamevalue sur EmailFieldTextControl. Le stockage du code retour est également configuré au niveau du PCF via le paramètre returncode.
2.2 Configuration du formulaire
Dans l'éditeur de formulaire, sélectionnez le champ Email, cliquez sur + Components, sélectionnez EmailFieldTextControl, mappez les paramètres, puis enregistrez et publiez.
EmailFieldTextControl · Custom API: DQE - Email - Validation
| Paramètre | Type | Usage | Requis | Description |
|---|---|---|---|---|
emailvalue |
Email |
bound | Requis | Champ email (le champ sur lequel le contrôle est placé). |
firstnamevalue |
SingleLine.Text |
bound | Optionnel | Champ prénom. Utilisé pour les suggestions d'email basées sur le nom. Pour les entités Account, associez-le au champ nom de l'entreprise. |
lastnamevalue |
SingleLine.Text |
bound | Optionnel | Champ nom. Utilisé pour les suggestions d'email basées sur le nom. |
returncode |
SingleLine.Text |
bound | Optionnel | Champ de sortie stockant le code retour de l'API DQE après validation. Peut être utilisé dans des flux Power Automate ou des règles métier. |
countrycode |
Lookup.Simple |
bound | Optionnel | Lookup vers la table DQE Country (ou une table de pays personnalisée). |
countryfield |
SingleLine.Text |
input | Optionnel | En cas d'utilisation d'une table de pays personnalisée, le nom logique du champ ISO3 dans cette table. |
countryiso3 |
SingleLine.Text |
input | Optionnel | Code pays ISO3 codé en dur. |
2.3 Résultats attendus
- Après la saisie d'un email par l'utilisateur, un indicateur de validation apparaît à côté du champ.
- Si les champs prénom/nom sont mappés, le webservice suggère des adresses email et noms de domaine probables.
- Si returncode est mappé, il est mis à jour après chaque validation et peut déclencher une logique Power Automate en aval.
3. Téléphones
Le webservice téléphone valide les numéros de téléphone en temps réel et les formate selon le pays. Disponible sur Account, Contact et Lead.
3.1 Paramètres de l'application
Dans DQE DataQ Settings → General, positionnez Enable Phone Validation sur Yes.
Accédez ensuite à l'onglet Phone Setup :
- Address Default Country — présélectionne un indicatif pays. Ne restreint pas la validation internationale.
- Contact / Account / Lead Phone List — choice set à sélection multiple par entité. Sélectionnez les champs téléphone sur lesquels le webservice doit être actif.
Note : le stockage du code retour est configuré au niveau du PCF via le paramètre returncode sur PhonefieldControl.
3.2 Configuration du formulaire
Dans l'éditeur de formulaire, sélectionnez le champ Main Phone, cliquez sur + Components, sélectionnez PhonefieldControl, mappez les paramètres, puis enregistrez et publiez.
PhonefieldControl · Custom API: DQE - Phone - Validation
| Paramètre | Type | Usage | Requis | Description |
|---|---|---|---|---|
name |
Phone |
bound | Requis | Champ téléphone (le champ sur lequel le contrôle est placé). |
returncode |
SingleLine.Text |
bound | Optionnel | Champ de sortie stockant le code retour de l'API DQE après validation. Peut être utilisé dans des flux Power Automate ou des règles métier. |
countrycode |
Lookup.Simple |
bound | Optionnel | Lookup vers la table DQE Country (ou une table de pays personnalisée). Détermine l'indicatif utilisé pour la validation. |
countryfield |
SingleLine.Text |
input | Optionnel | En cas d'utilisation d'une table de pays personnalisée, le nom logique du champ ISO3 dans cette table. |
countryiso3 |
SingleLine.Text |
input | Optionnel | Code pays ISO3 codé en dur. |
3.3 Résultats attendus
- Après la saisie d'un numéro de téléphone par l'utilisateur, un indicateur de validation apparaît et le numéro est reformaté selon le standard du pays.
- Si returncode est mappé, il est mis à jour après chaque validation et peut déclencher une logique Power Automate en aval.
4. Nom
Le webservice nom suggère des civilités (M./Mme/…) en fonction du prénom et peut valider la cohérence prénom-genre. Disponible sur toute entité disposant d'un champ prénom (généralement Contact, Lead).
4.1 Paramètres de l'application
Dans DQE DataQ Settings → General, positionnez Enable Firstname Validation sur Yes.
Accédez ensuite à l'onglet Firstname Setup :
- Address Default Country — présélectionne un pays par défaut pour le webservice.
- Firstname Configuration — ouvre la WebResource Name Mapping (voir §4.2).
4.2 Mapping des noms
Cliquez sur le bouton Firstname Configuration dans l'onglet Firstname Setup pour ouvrir la WebResource FieldMapping. C'est ici que vous mappez les codes de genre DQE aux valeurs d'option de votre choice set Dynamics.
- DQE renvoie trois valeurs de genre :
H(masculin),F(féminin),I(inconnu/indéterminé). - Pour chaque valeur, définissez la valeur d'option entière correspondante de votre champ choice set Dynamics.
- Les mappings sont stockés dans la table
dqe_field_mappingdans Dataverse.
Requis en cas d'utilisation de genderchoice : si le paramètre genderchoice est mappé sur FirstNameFieldControl mais qu'aucun mapping n'est configuré ici, le champ genre ne sera pas mis à jour après la sélection du prénom.
4.3 Configuration du formulaire
Dans l'éditeur de formulaire, sélectionnez le champ First Name, cliquez sur + Components, sélectionnez FirstNameFieldControl, mappez les paramètres, puis enregistrez et publiez. Configurez d'abord le mapping de genre au §4.2 si vous utilisez le paramètre genderchoice.
FirstNameFieldControl · Custom API: DQE - Name - Search by firstName
| Paramètre | Type | Usage | Requis | Description |
|---|---|---|---|---|
firstnamevalue |
SingleLine.Text |
bound | Requis | Champ prénom (le champ sur lequel le contrôle est placé). |
gendervalue |
SingleLine.Text |
bound | Optionnel | Chaîne de genre codée en dur : H (masculin), F (féminin) ou I (inconnu). Mutuellement exclusif avec genderchoice. |
genderchoice |
OptionSet |
bound | Optionnel | Champ choice set contenant la valeur de genre/civilité. Le mapping des valeurs DQE (H/F/I) vers les valeurs d'option CRM doit être configuré dans la WebResource FieldMapping. Mutuellement exclusif avec gendervalue. |
countrycode |
Lookup.Simple |
bound | Optionnel | Lookup vers la table DQE Country (ou une table de pays personnalisée). |
countryfield |
SingleLine.Text |
input | Optionnel | En cas d'utilisation d'une table de pays personnalisée, le nom logique du champ ISO3 dans cette table. |
countryiso3 |
SingleLine.Text |
input | Optionnel | Code pays ISO3 codé en dur. |
Configuration du genre : choisissez l'une des trois options — (1) laisser gendervalue et genderchoice vides, (2) définir gendervalue sur une chaîne codée en dur, ou (3) définir genderchoice sur un champ choice set et configurer le mapping des valeurs dans la WebResource FieldMapping.
5. B2B
Le webservice B2B fournit l'autocomplétion d'entreprise à partir de la base SIRENE française (INSEE). Disponible uniquement sur l'entité Account.
5.1 Paramètres de l'application
Dans DQE DataQ Settings → General, positionnez Enable Company Verification sur Yes.
Accédez ensuite à l'onglet Company Setup :
- Company Mapping — ouvre la WebResource Field Mapping (voir §5.2).
5.2 Mapping des champs
Cliquez sur le bouton Company Mapping dans l'onglet Company Setup pour ouvrir la WebResource FieldMapping. Cela définit quels champs de données SIRENE sont associés à quels champs Dynamics sur l'entité Account.
- Les mappings sont stockés dans la table
dqe_field_mappingdans Dataverse. - Cliquez sur Initialize Default Records pour pré-remplir un mapping standard. Peut être exécuté plusieurs fois sans risque — ne crée que les enregistrements manquants, n'écrase pas ceux existants.
5.3 Configuration du formulaire
Ajoutez les deux contrôles B2B au formulaire Account : CompanyField sur le champ nom de l'entreprise et CompanyNumberField sur le champ numéro d'entreprise.
CompanyField — Champ nom de l'entreprise
CompanyField · Custom API: DQE - Company - Search
| Paramètre | Type | Usage | Requis | Description |
|---|---|---|---|---|
name |
SingleLine.Text |
bound | Requis | Champ nom de l'entreprise (le champ sur lequel le contrôle est placé). |
countrycode |
Lookup.Simple |
bound | Requis | Lookup vers la table DQE Country. Détermine la base SIRENE du pays interrogée. |
filter |
SingleLine.Text |
input | Optionnel | Chaîne de filtre transmise à l'API RECSIRET (par ex. entreprises actives uniquement, diffusibles, associations). Contactez votre chef de projet DQE pour connaître les valeurs disponibles. |
columns |
Multiple |
input | Optionnel | JSON définissant des colonnes personnalisées dans le menu déroulant de suggestion d'entreprise (voir section 5.4). |
outputtrigger |
SingleLine.Text |
output | Optionnel | Défini sur "autocomplete" lorsque la sortie a été déclenchée par une sélection utilisateur (et non une modification manuelle). Utilisé dans l'Integrator Method pour détecter les événements d'autocomplétion. |
outputdata |
Object |
output | Optionnel | Objet complet des données d'entreprise renvoyé par le webservice. Utilisé dans l'Integrator Method pour lire et appliquer les valeurs de champs par programmation. |
CompanyNumberField — Champ numéro d'entreprise
CompanyNumberField · Custom API: DQE - CompanyNumber - Search
| Paramètre | Type | Usage | Requis | Description |
|---|---|---|---|---|
accountnumber |
SingleLine.Text |
bound | Requis | Champ numéro d'entreprise / SIRET (le champ sur lequel le contrôle est placé). |
accountid |
SingleLine.Text |
bound | Requis | ID de l'enregistrement Account actuel. Utilisé pour éviter la détection d'auto-duplication. |
filter |
SingleLine.Text |
input | Optionnel | Chaîne de filtre transmise à l'API RECSIRET (par ex. entreprises actives uniquement, diffusibles, associations). |
outputtrigger |
SingleLine.Text |
output | Optionnel | Défini sur "autocomplete" lorsque la sortie a été déclenchée par une sélection utilisateur. |
outputdata |
Object |
output | Optionnel | Objet complet des données d'entreprise renvoyé par le webservice. |
5.4 Colonnes du menu déroulant
Remplacez les colonnes par défaut du menu déroulant CompanyField en définissant le paramètre columns en JSON dans le XML du formulaire.
[
{"label": "Company", "propertyName": "CompanyName", "minWidth": 150, "maxWidth": 250},
{"label": "Zip Code", "propertyName": "ZIP_Code", "minWidth": 150, "maxWidth": 250},
{"label": "SIRET", "propertyName": "CompanyNumber", "minWidth": 150, "maxWidth": 250},
{"label": "Ref", "propertyName": "Ref", "minWidth": 150, "maxWidth": 250}
]
Noms de propriétés disponibles :
CompanyName CompanyNumber ZIP_Code CompanyAddress1 CompanyAddress2 CompanyAddress3 Locality Phone Email Activity1 Activity2 StaffCount TurnOver LegalStructureCode LegalStructureLabel IncorporationDate DissolutionDate Country CompanyStatus MainCompanyFlag Ref
Astuce : un plugin d'édition XML de formulaire de XrmToolBox peut simplifier l'export et la modification du XML du formulaire.
5.5 Paramètre de filtre
CompanyField et CompanyNumberField acceptent tous deux un paramètre filter optionnel transmis directement à l'API RECSIRET. Il peut être défini statiquement dans Component Properties ou dynamiquement à partir d'une valeur de champ. Contactez votre chef de projet DQE pour connaître les chaînes de filtre disponibles.
5.6 Résultats attendus
- L'utilisateur ouvre un enregistrement Account et commence à saisir un nom d'entreprise ou un SIRET.
- Un menu déroulant apparaît avec les entreprises correspondantes de la base SIRENE.
- L'utilisateur sélectionne une entreprise — les champs mappés (adresse, SIRET, forme juridique…) sont remplis automatiquement.
- À l'enregistrement, si Dynamics détecte un doublon, la fenêtre native de détection des doublons apparaît.
Important : la sélection d'un pays avant la recherche est obligatoire.
Associé à