示例:Xrm.Page.data.process.getEnabledProcesses
发布日期: 2017年1月
适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online
此示例演示如何使用 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
另请参阅
编写业务流程脚本
Sample: Xrm.Page.data.process.getActivePath
Microsoft Dynamics 365
© 2017 Microsoft。 保留所有权利。 版权