Fermer

août 17, 2022

Récupération de différentes valeurs de types de données sur des formulaires basés sur un modèle (Dynamics 365)

Récupération de différentes valeurs de types de données sur des formulaires basés sur un modèle (Dynamics 365)


Cet article est dédié à la récupération des différentes valeurs de données disponibles sur les tables Dataverse à l’aide scripts côté client tels que Javascript. Cette technique serait très utile pour étendre les fonctionnalités prêtes à l’emploi des formulaires basés sur un modèle afin de répondre aux exigences commerciales en temps réel, telles que la mise en œuvre de validations de règles métier complexes, le masquage/affichage des champs de formulaire, la manipulation des valeurs des types de données, etc.

Examinons maintenant le scénario, nous allons d’abord apporter ces colonnes de données sur un formulaire basé sur un modèle, puis nous verrons comment obtenir les valeurs de différents types de colonnes telles que « une seule ligne » ou « des nombres entiers » qui sont simple, nous examinerons également certains des types de données complexes tels que Choices, Lookup, Date, Multiselect et deux options.

Ici nous utilisons Script côté client qui nous aide à accéder à formContext du formulaire pour obtenir les données de différentes colonnes, si vous voulez en savoir plus sur ce sujet, veuillez vérifier blogs précédents pour une compréhension plus approfondie.

J’ai déjà créé une table Dataverse avec des colonnes de types de données simples et complexes et apporté ces colonnes requises dans un formulaire basé sur un modèle.

Suivez-moi pendant que j’explique les prochaines étapes.

Étape 1: Table Dataverse, ici vous pouvez voir que différents types de données sont créés tels que le texte sur une seule ligne, le nombre décimal, la devise, la recherche et bien d’autres.

Sous Image, vous pouvez voir la table Dataverse Customer et ses colonnes.

3.1

Dans l’image ci-dessous, vous pouvez voir la forme pilotée par modèle de un client tableau où toutes les colonnes requises ont été ajoutées.

3.0.1

Étape 2: Laissez-nous voir comment accéder Dataverse différentes colonnes de types de données

Tâche Extrait de code JavaScript
Obtenir la valeur de la colonne de texte sur une seule ligne
var name = formContext.getControl('cred8_name').getValue();
Obtenir la valeur de la colonne Nombre entier
var totalemployees = formContext.getControl('cred8_totalemployees').getValue();
Obtenir la valeur à partir du nombre décimal et de la colonne de devise
var totalrevenue = formContext.getControl('cred8_totalrevenue').getValue();
Obtenir la valeur de la colonne Date
var foundedon = formContext.getAttribute('cred8_foundedon').getValue();
if (foundedon !== null)
{
foundedon = foundedon.format("MM/dd/yyyy");
}
Colonne Obtenir la valeur des choix (ensemble d’options)
var expertiseon = formContext.getAttribute('cred8_expertiseon').getOptions();
if (expertiseon !== null)
{
  var SelectedValue = formContext.getAttribute("cred8_expertiseon").getValue();
  var SelectedText = formContext.getAttribute("cred8_expertiseon").getText();
}
Obtenir la valeur sélectionnée dans la colonne Choix (ensemble d’options)
var selected_expertiseon = formContext.getAttribute('cred8_expertiseon').getSelectedOption();
Obtenir la valeur de la colonne Deux valeurs (Oui/Non)
var isglobalpresence_value = formContext.getControl('cred8_isglobalpresence').getValue();
Obtenir la valeur de la colonne de recherche
var City = formContext.getAttribute('cred8_city');
if (City !== null)
{
 var Cityid = City.getValue()[0].id;
 var CityName = City.getValue()[0].name;
 var EntityType = City.getValue()[0].entityType;
}

Étape 3- Créez une fonction JavaScript paramétrée et passez contexte d’excitation comme paramètre

function getColumnValues(executionContext)
{
    
    //Create object of getFormContext
    var formContext = executionContext.getFormContext();
    
    //Retrieve SingleLine value
    var name = formContext.getControl('cred8_name').getValue();
    //Retrieve Whole number
    var totalemployees = formContext.getControl('cred8_totalemployees').getValue();
   //Retrieve Currency 
    var totalrevenue = formContext.getControl('cred8_totalrevenue').getValue();
    //Approach 1 - Retrieve  Date
    var foundedon = formContext.getAttribute('cred8_foundedon').getValue();
    if (foundedon !== null)
    {
        foundedon = foundedon.format("MM/dd/yyyy");
    }
    //Approach 2 - Retrieve Date, If you sure date never be null then try this code 
    var createdon = formContext.getAttribute('createdon').getValue().format("MM/dd/yyyy");
    //Approach 1 - Retrieve Multi-select Option set value and text both
    var expertiseon = formContext.getAttribute('cred8_expertiseon').getOptions();
    if (expertiseon !== null)
    {
        var SelectedValue = formContext.getAttribute("cred8_expertiseon").getValue();
        var SelectedText = formContext.getAttribute("cred8_expertiseon").getText();
    }
    
    //Approach 2 - Retrieve Option set, If you need only text value 
     var Approch2_expertiseon = formContext.getAttribute('cred8_expertiseon').getText();
    
    //Approach 3 - Retrieve Option set selected value
    var Approch3_expertiseon = formContext.getAttribute('cred8_expertiseon').getSelectedOption();


    //Retrieve Two value (Boolean values)
    var isglobalpresence_value = formContext.getControl('cred8_isglobalpresence').getValue();
    //Retrieve Lookup, here we are retrieving M:1 relationship value      
    var City = formContext.getAttribute('cred8_city');
    var Cityid;
    var CityName;
    var EntityType;
    if (City !== null)
    {
        var Cityid = City.getValue()[0].id;
        var CityName = City.getValue()[0].name;
        var EntityType = City.getValue()[0].entityType;
    }
    //Call Dialogue box method 
    OpenDiolouge(name, totalemployees, totalrevenue, foundedon, createdon, SelectedText, isglobalpresence_value, Cityid, CityName, EntityType);
}

function OpenDiolouge(name, totalemployees, totalrevenue, foundedon, createdon, SelectedText, isglobalpresence_value, Cityid, CityName, EntityType)
{
    debugger;
    var alertStrings = {
        //confirmButtonLabel: "Yes",
        text: " \n Singleline   -" + name + " \n Whole number -" + totalemployees + " \n Currency     -" + totalrevenue + " \n Date         -" + foundedon + " \n Date Time    -" + createdon + " \n MultiSelect Choices -" + SelectedText[0] + "  -  " + SelectedText[1] + " \n Two option   -" + isglobalpresence_value + " \n Lookup ID    -" + Cityid + " \n Lookup Name  -" + CityName + " \n Lookup Table -" + EntityType,
        title: "Retrieval of Dataverse different types of column values"
    };
    var alertOptions = {
        height: 400,
        width: 500
    };
    Xrm.Navigation.openAlertDialog(alertStrings, alertOptions).then(function (success)
    {
        console.log("Alert dialog closed");
    },

    function (error)
    {
        console.log(error.message);
    });
}

Étape 4- Créer une nouvelle ressource Web

Dans les ressources Web, nous pouvons écrire un script personnalisé côté client, ce qui permet de créer trois types de ressources Web Code, Données et Images. Dans cet article, nous n’examinerons que le type de code.

3.2

Étape 5 – Choisissez le type de ressource Web

3.3

Ici, vous pouvez soit utiliser le courant UI (interface utilisateur) pour télécharger votre fichier JavaScript, ou si vous utilisez Dynamics 365 et êtes à l’aise avec l’interface utilisateur classique, vous devez ouvrir une ressource Web et y coller votre code.

3.4

Ici, vous devez cliquer sur l’éditeur de texte bouton et cela ouvrira un éditeur dans lequel vous devrez coller votre code JavaScript.

3.5

Nous avons fini de configurer toutes les choses de base, comme d’abord nous avons créé une table personnalisée dans Dataverse, identifié colonnes, qui devaient être récupérées des valeurs, ajoutées dans la fonction paramétrée JavaScript, et nous avons passé le «contexte d’exaction» en tant que paramètre. Enfin, notre code est prêt, et il a été ajouté à la toile Bibliothèque de ressources.

Étape – 6 : Choisissez la bibliothèque de ressources Web à partir de et ajoutez des gestionnaires d’événements

Il est maintenant temps d’ajouter du code JavaScript à Formulaire basé sur un modèle gestionnaires d’événements, et nous utiliserons le « En charge” événement, mais nous devons d’abord sélectionner la bibliothèque de ressources Web, puis passer la fonction Nom.

3.6

Résultat:

À présent, laissez-nous regardez la sortie. Car c’est un script côté client, nous pouvons le déboguer dans un navigateur Web ; dans ce cas, j’ai utilisé le mode développeur de Google Chrome ; ci-dessous, vous pouvez voir le débogage réel du code où Je suis obtenir différents types de données et valeurs et les configurer dans des variables.

Script côté client de sortie

Conclusion et résultat final

La sortie est affichée sur une fenêtre contextuelle de modèle fournie par Model Driven formContextoù nous avons récupéré différentes valeurs de types de données dans une variable et affiché la sortie sur une fenêtre contextuelle de modèle.

2022 07 21 19 33 13 Informations client Perficient, Nagpur Gdc, Inde Power Apps

-La fin-






Source link