示例:Xrm.Page.data.process.getEnabledProcesses

 

发布日期: 2016年11月

适用于: Dynamics CRM 2015

此示例演示如何使用 Xrm.Page.data.process.getEnabledProcesses 方法检索实体所启用流程的信息。

要求

必须将示例 JavaScript 库中的 Sdk.formOnLoad 函数设置为窗体的 OnLoad 事件处理程序。

演示

Xrm.Page.data.process.getEnabledProcesses 方法返回关于供当前用户转换实体所启用的流程信息。 若您要使用 Xrm.Page.data.process.setActiveProcess方法,您可以使用getEnabledProcesses 方法来获取您可以设置的有效流程的信息。

本示例演示the Xrm.Page.data.processsAPI中某些方法的使用。 它并不表示使用该 API 以满足业务需求;只适用于演示如何访问代码中的密钥属性值。

示例

Sdk.formOnLoad 函数使用 Xrm.Page.data.process.getEnabledProcesses 方法来异步检索实体所启用的业务流程的信息。 示例传递一个匿名函数作为第一个参数。 当数据返回且数据作为参数传递到匿名函数时,将异步执行此函数。

关于所启用的业务流程的信息作为词典对象提供,在该词典对象中,流程的 Id 是属性的名称,业务流程的名称是属性的值。 示例代码处理此信息并在稍后执行逻辑访问的全局 Sdk.enabledProcesses 数组中设置值。 该实例也在使用 Sdk.enabledProcesses 的数组和使用 Sdk.writeToConsole 的函数中循环,以写入关于控制台业务流程检索的信息。

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

当您在浏览器开发人员工具处于打开状态下运行该示例时,以下示例为启用多个业务流程情况下写入实体控件台的输出。

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

另请参阅

编写业务流程脚本

© 2017 Microsoft。 保留所有权利。 版权