Support Power Platform - Apps - Automate - SharePoint - Copilot

Ressources JavaScript

Codes JavaScript de base

CodeContexte
<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')
    });

}