Ressources JavaScript
Codes JavaScript de base
| Code | Contexte |
| <div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span>var Example = window.Example || {};</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span>(function () {</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span> var </span><span style="font-style: italic;">varGlobal</span><span> = 1;</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span> this.</span><span style="font-style: italic;">MaFonction</span><span> = function (executionContext) {</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span> }</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span>}).call(Example);</span></div> | Squelette d’un script. |
| <div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span>var formContext = executionContext.getFormContext();</span></div> | Dans une fonction, pour manipuler ensuite le formulaire actif |
| <div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span>var </span><span style="font-style: italic;">valeur</span><span> = formContext.getAttribute("</span><span style="font-style: italic;">abc_nomchamp</span><span>").getValue();</span></div> | Récupère la valeur d’un champ du formulaire. |
| <div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span>if (valeur && typeof valeur === "object" && valeur.hasOwnProperty("text"))</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span>{</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span> var test = valeur.text</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span>}</span></div> | Pour récupérer la valeur “text” d’un champ (hors champ de recherche) |
| <div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span>if (Array.isArray(</span><span style="font-style: italic;">valeur</span><span>) && </span><span style="font-style: italic;">valeur</span><span>.length > 0 && </span><span style="font-style: italic;">valeur</span><span>[0].name) {</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span> var test = </span><span style="font-style: italic;">valeur</span><span>[0].name;</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span>}</span></div> | Champ de recherche. 3 propriétés : id, name et entityType. |
| <div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span>var arraySocieteID = [{</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span> id: result._abc_societeid_value,</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span> name: result["_abe_societeid_value@OData.Community.Display.V1.FormattedValue"],</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span> entityType: "abe_societe"</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span>}];</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><br></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span>formContext.getAttribute("abe_societeid").setValue(arraySocieteID) </span></div> | Compose un champ de recherche puis l’affecte à un champ |
| <div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span>Xrm.WebApi.retrieveRecord("entity", "id").then(</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span> function success(result) {</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span> var societeID = result._abc_societeid_value;</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span> },</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span> function (error) {</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span> console.error(error.message);</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span> }</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span>);</span></div> | Recherche un enregistrement dans une entité. |
| <div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span>var lookupValue = formContext.getAttribute("abc_table_id").getValue();</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span>if (lookupValue && lookupValue.length > 0) {</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span> table_id = lookupValue[0].id.replace(/[{}]/g,"");</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span> var parentEntityName = table_id[0].entityType;</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span>}</span></div><div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><br></div> | Récupère le GUID d’un champ de type Recherche et son entity. |
| <div style="text-align: left; margin-top: 0.5em; margin-bottom: 0.5em;"><span>Xrm.Navigation.openAlertDialog({ text: le_texte });</span></div> | Affiche un messaage |
Affiche champs et valeurs d’un formulaire
function afficherChampsEtValeurs(executionContext) {
var formContext = executionContext.getFormContext();
var attributs = formContext.data.entity.attributes.get();
var resultats = [];
for (var i = 0; i < attributs.length; i++) {
var attribut = attributs[i];
var nomChamp = attribut.getName();
var valeur = attribut.getValue();
// Gestion des lookups et valeurs complexes
if (Array.isArray(valeur) && valeur.length > 0 && valeur[0].name) {
valeur = valeur[0].name;
} else if (valeur && typeof valeur === "object" && valeur.hasOwnProperty("text")) {
valeur = valeur.text;
}
resultats.push(nomChamp + " : " + valeur);
}
// Affichage dans une fenêtre de message (limité à 4000 caractères)
Xrm.Navigation.openAlertDialog({
text: resultats.join('\n')
});}