Compartir a través de


Ejemplo: Xrm.Page.data.process.getEnabledProcesses

 

Publicado: enero de 2017

Se aplica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Este ejemplo demuestra cómo recuperar información acerca de los procesos habilitados para una entidad usando el método Xrm.Page.data.process.getEnabledProcesses.

Requisitos

La función Sdk.formOnLoad en la biblioteca JavaScript de ejemplo se debe configurar como el controlador de eventos de OnLoad de un formulario.

Muestra

El método de Xrm.Page.data.process.getEnabledProcesses devuelve información acerca de los procesos habilitados para una entidad que esté disponible para que cambie el usuario actual. Si desea usar el método Xrm.Page.data.process.setActiveProcess, puede usar el método getEnabledProcesses para obtener información acerca de cualquier proceso válido que puede establecer.

Este ejemplo ilustra el uso de algunos de los métodos en the Xrm.Page.data.processsAPI. No representa el uso de esta API para cumplir un requisito de negocio; solo se usa para demostrar cómo se puede acceder a los valores de propiedades clave en código.

Ejemplo

La función Sdk.formOnLoad usa el método Xrm.Page.data.process.getEnabledProcesses asincrónicamente para recuperar la información sobre los flujos de proceso de negocio que se habilitan para la entidad. El ejemplo pasa una función anónima como primer parámetro. Esta funcionalidad se ejecuta asincrónicamente cuando se devuelven los datos y los datos se pasan como parámetro a la función anónima.

La información del flujo de proceso de negocio habilitado se proporciona como un objeto de diccionario donde el identificador del proceso es el nombre de propiedad y el nombre del flujo de proceso de negocios es el valor de la propiedad. El código de ejemplo procesa esta información y establece los valores en una matriz de Sdk.enabledProcesses global a la que se puede acceder con lógica que se ejecute más adelante. El ejemplo también recorre los valores que utiliza la matriz Sdk.enabledProcesses y usa la función Sdk.writeToConsole para escribir información sobre flujos de proceso de negocio recuperados a la consola.

//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);

Cuando ejecuta este ejemplo con las herramientas del desarrollador del explorador abiertas, lo siguiente es un ejemplo de salida escrita en la consola para una entidad con varios flujos de proceso de negocio habilitados.

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

Ver también

Escribir scripts para flujos de procesos de negocio
Ejemplo: Xrm.Page.data.process.getActivePath

Microsoft Dynamics 365

© 2017 Microsoft. Todos los derechos reservados. Copyright