Exemple : Xrm.Page.data.process.getEnabledProcesses

 

Date de publication : janvier 2017

S’applique à : Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Cet exemple montre comment récupérer des informations sur les processus activés pour une entité en utilisant la méthode Xrm.Page.data.process.getEnabledProcesses.

Configuration requise

La fonction Sdk.formOnLoad de la bibliothèque d'exemples JavaScript doit être définie comme gestionnaire d'événements OnLoad pour un formulaire.

Démontre

La méthode Xrm.Page.data.process.getEnabledProcesses renvoie des informations sur les processus activés pour une entité qui sont disponibles pour que l'utilisateur actuel puisse basculer vers eux. Si vous souhaitez utiliser la méthode Xrm.Page.data.process.getActiveProcess, vous pouvez utiliser la méthode getEnabledProcesses pour obtenir des informations sur les processus valides que vous définissez.

Cet exemple illustre l'utilisation de certaines des méthodes de l'APIthe Xrm.Page.data.processs. Il ne représente l'utilisation de cet API afin de satisfaire une exigence de l'entreprise ; il a uniquement pour objet d'illustrer de quelle manière les valeurs de propriété clés sont accessibles par code.

Exemple

La fonctionnalité Sdk.formOnLoad utilise la méthode Xrm.Page.data.process.getEnabledProcesses pour récupérer de façon asynchrone les informations sur les flux de processus métier qui sont activés pour l'entité. L'exemple passe une fonction anonyme comme premier paramètre. Cette fonction est exécutée de façon asynchrone lorsque les données sont renvoyées et que les données sont transmises comme paramètre de la fonction anonyme.

Les informations sur le flux du processus métier activé sont fournies comme objet de dictionnaire où l'ID du processus est le nom de la propriété et le nom du flux du processus métier la valeur de la propriété. L'exemple de code traite ces informations et définit les valeurs dans une table Sdk.enabledProcesses globale accessible par la logique qui l'exécute ultérieurement. L'exemple parcourt également les valeurs utilisées dans la table Sdk.enabledProcesses et utilise la fonction Sdk.writeToConsole pour écrire sur la console des informations sur les flux de processus métier récupérés.

//A namespace defined for SDK sample code
//You should define a unique namespace for your libraries
var Sdk = window.Sdk || { __namespace: true };
(function () {
 //A global variable to store information about enabled business processes after they are retrieved asynchronously
 this.enabledProcesses = [];

 // A function to log messages while debugging only
 this.writeToConsole = function (message) {
  if (typeof console != 'undefined')
  { console.log(message); }
 };

 //Code to run in the OnLoad event 
 this.formOnLoad = function () {
  //Retrieve Enabled processes
  Xrm.Page.data.process.getEnabledProcesses(function (processes) {
   //Move processes to the global Sdk.enabledProcesses array;
   for (var processId in processes) {
    Sdk.enabledProcesses.push({ id: processId, name: processes[processId] })
   }
   Sdk.writeToConsole("Enabled business processes flows retrieved and added to Sdk.enabledProcesses array.");

   //Write the values of the Sdk.enabledProcesses array to the console
   if (Sdk.enabledProcesses.length < 0) {
    Sdk.writeToConsole("There are no enabled business process flows for this entity.");
   }
   else {
    Sdk.writeToConsole("These are the enabled business process flows for this entity:");
    for (var i = 0; i < Sdk.enabledProcesses.length; i++) {
     var enabledProcess = Sdk.enabledProcesses[i];
     Sdk.writeToConsole("id: " + enabledProcess.id + " name: " + enabledProcess.name)
    }
   }

   //Any code that depends on the Sdk.enabledProcesses array needs to be initiated here

  });
 };

}).call(Sdk);

Lorsque vous exécutez cet exemple avec les outils de développement de navigateur ouverts, ce qui suit est un exemple de sortie écrite sur la console pour une entité avec plusieurs flux de processus métier activés.

Enabled business processes flows retrieved and added to Sdk.enabledProcesses array.
These are the enabled business process flows for this entity:
id: 7994be68-899e-4a40-8d18-f5c3b6940188 name: Sample Lead Process
id: 919e14d1-6489-4852-abd0-a63a6ecaac5d name: Lead to Opportunity Sales Process

Voir aussi

Écriture d'événements pour les flux de processus d'entreprise
Exemple : Xrm.Page.data.process.getActivePath

Microsoft Dynamics 365

© 2017 Microsoft. Tous droits réservés. Copyright