发布日期: 2016年11月
适用于: Dynamics CRM 2015
使用 Microsoft Dynamics CRM 2015 和 Microsoft Dynamics CRM Online 2015 更新,Xrm.Page.data.process 命名空间可以提供窗体中与业务流程数据交互的事件、方法和对象。
有关与窗体中业务流程交互的方法,请参阅 Xrm.Page.ui.process(客户端引用)。
Xrm.Page.data.process 方法
- ActiveProcess 方法 
 使用 getActiveProcess 检索有关活动流程的信息,并使用 setActiveProcess 将不同的流程设置为活动流程。
- ActiveStage 方法 
 使用 getActiveStage 检索有关活动阶段的信息,并使用 setActiveStage 将完成的阶段设置为活动阶段。- 使用Microsoft Dynamics CRM Online 2015 更新 1,您可以使用 setActiveStage 到不同实体中的阶段。 
- getActivePath 
 使用此方法在带有方法的活动路径中警告当前阶段的集合,以与业务流程控件中显示的阶段进行交互。- 根据记录中的分支规则和当前数据,活动路径代表流程控件中当前呈现的阶段。 
- getEnabledProcesses 
 对于实体,使用此方法用户可以切换到异步检索已启用的业务流程。
- getSelectedStage 
 与 Microsoft Dynamics CRM Online 2015 更新 1 一同添加,使用此方法可以访问当前选择的阶段。
- 管理事件处理程序的方法 
 使用 addOnStageChange、removeOnStageChange、addOnStageSelected 和 removeOnStageSelected 方法添加或删除业务流程控件的事件处理程序。
- 导航方法 
 使用 moveNext 移至下一阶段,并使用 movePrevious 移至上一阶段。- 使用 Microsoft Dynamics CRM Online 2015 更新 1,您可以使用 movePrevious 到不同实体中的上一个阶段。 
- 流程方法 
 使用流程方法访问流程的属性。
- 阶段方法 
 使用阶段方法访问业务流程中的阶段属性。
- 步骤方法 
 使用阶段方法访问业务流程中阶段内的步骤属性。
ActiveProcess 方法
使用 getActiveProcess 检索有关活动流程的信息,并使用 setActiveProcess 将不同的流程设置为活动流程。
getActiveProcess
返回表示活动流程的 Process 对象。
var activeProcess = Xrm.Page.data.process.getActiveProcess();
- 返回值 
 类型: 流程- 备注: 参阅流程方法 的方法访问返回流程的属性。 
setActiveProcess
将 Process 设置为活动流程。
Xrm.Page.data.process.setActiveProcess(processId, callbackFunction);
参数:
- processId 
 类型:String- 备注: 进行活动流程的流程 Id。 
- callbackFunction 
 类型:Function- 备注: 完成操作时调用的函数。 回调函数传递下列字符串值之一以指示操作是否成功。 - 值 - 说明 - success - 操作成功。 - 无效 - processId 无效或流程未启用。 
ActiveStage 方法
使用 getActiveStage 检索有关活动阶段的信息,并使用 setActiveStage 将不同阶段设置为活动阶段。
getActiveStage
返回表示活动阶段的 Stage 对象。
var activeStage = Xrm.Page.data.process.getActiveStage();
- 返回值 
 类型: 阶段- 备注: 参阅阶段方法 的方法访问返回阶段的属性。 
setActiveStage
将完成的阶段设置为活动阶段。
备注
使用 Microsoft Dynamics CRM Online 2015 更新 1,您可以使用使用此方法到不同实体中的阶段。
使用此方法,仅可以设置该实体的完成阶段。
Xrm.Page.data.process.setActiveStage(stageId, callbackFunction);
参数:
- stageId 
 类型:String- 注解: 使阶段成为活动阶段的实体完成阶段的 ID 设置使用阶段。 
- callbackFunction 
 类型:Function- 备注: 完成操作时调用的可选函数。 - 若操作成功完成,回调函数传递“success”的字符串值。 - 若 stageId 表示的阶段不可用,则该阶段将不会变为活动状态并回调函数传递字符串值显示原因。 必须对下表中列出的值进行返回。 - 值 - 原因 - crossEntity - 阶段必须是当前实体的阶段之一。 - invalid - 此值返回有三个原因: - stageId 参数是不存在阶段的 ID 值。 
- 可用阶段不是所选阶段 
- 未保存记录。 
 - unreachable - 阶段位于不同的路径。 - dirtyForm - 如果页面中的数据未保存,将返回此值。 - 重要 - 只有当所选阶段和可用阶段相同时可用此方法。 在您的代码从OnStageChange 事件启动中,将选择当前阶段。 在您的代码从 OnStageSelected 事件中启动时,应使用 Xrm.Page.data.process.getActiveStage 验证所选阶段也是可用阶段。 对于其他表单事件,不可能确定当前选择了哪个阶段。 为达最佳效果,此方法只用于在OnStageChange和 OnStageSelected事件启动的函数调用的代码。 
getActivePath
使用此方法在带有方法的活动路径中警告当前阶段的集合,以与业务流程控件中显示的阶段进行交互。
根据记录中的分支规则和当前数据,活动路径代表流程控件中当前呈现的阶段。
var stageCollection = Xrm.Page.data.process.getActivePath();
示例:
有关使用此方法的示例,请参阅 Sample: Xrm.Page.data.process.getActivePath。
- 返回值 
 类型: 集合- Remarks: 根据分支规则中满足的条件,集合所有已完成的阶段、当前活动阶段和将来阶段的可预测集。 这可能是与 Xrm.Page.data.process. getActiveProcess 一起返回的阶段子集,因为根据流程中出现的分支,这将仅包含表示当前阶段的有效转换。 
getEnabledProcesses
对于实体,使用此方法用户可以切换到异步检索已启用的业务流程。
Xrm.Page.data.process.getEnabledProcesses(callbackFunction(enabledProcesses));
- 参数 
 类型:Function- 备注: 回调函数必须接受包含某一对象(此对象词典属性中的属性名称为业务流程的 Id,且属性值为业务流程的名称)的参数。 - 根据用户的特权筛选已启用的流程。 已启用流程列表与用户手动更改流程时在 UI 中看到的列表相同。 - 示例: - 有关使用此方法的示例,请参阅 示例:Xrm.Page.data.process.getEnabledProcesses。 
getSelectedStage
使用此方法可以获取当前选择的阶段。
Xrm.Page.data.process.getSelectedStage()
- 返回值 
 类型: 阶段- 当前所选阶段。 
- 备注 
 此方法已为 Microsoft Dynamics CRM Online 2015 更新 1 添加- 有关访问返回阶段属性的方法,请参阅 阶段方法。 
管理事件处理程序的方法
使用这些方法添加或删除业务流程控件的事件处理程序。
addOnStageChange
使用此方法将函数添加为 OnStageChange 事件 的事件处理程序,以便更改业务流程阶段时将被调用。
Xrm.Page.data.process.addOnStageChange(handler);
- 参数 
 类型: 函数引用- Remarks: 函数将添加到事件处理程序管道的底部。 执行上下文是传递到事件处理程序后自动设置的第一参数。 有关更多信息,请参阅 执行上下文(客户端引用)。 - 如果您稍后想删除事件处理程序,则应使用已命名函数的引用(而非匿名函数)。 
removeOnStageChange
使用此方法删除作为 OnStageChange 事件 的事件处理程序的函数。
Xrm.Page.data.process.removeOnStageChange(handler);
- 参数 
 类型: 函数引用- Remarks: 如果使用 addOnStageChange 方法设置匿名函数,则使用此方法将无法删除该函数。 
addOnStageSelected
使用此方法将函数添加为 OnStageSelected 事件 的事件处理程序,以便选定业务流程阶段时将被调用。
Xrm.Page.data.process.addOnStageSelected(handler);
- 参数 
 类型: 函数引用- Remarks: 函数将添加到事件处理程序管道的底部。 执行上下文是传递到事件处理程序后自动设置的第一参数。 有关更多信息,请参阅 执行上下文(客户端引用)。 - 如果您稍后想删除事件处理程序,则应使用已命名函数的引用(而非匿名函数)。 
removeOnStageSelected
使用此方法删除作为 OnStageSelected 事件 的事件处理程序的函数。
Xrm.Page.data.process.removeOnStageSelected(function reference);
- 参数 
 类型: 函数引用- Remarks: 如果使用 addOnStageSelected 方法设置匿名函数,则使用此方法将无法删除该函数。 
导航方法
使用 moveNext 移至下一阶段,并使用 movePrevious 移至上一阶段。 这两种方法均将导致 OnStageChange 事件 发生。
moveNext
进展到下一阶段。
Xrm.Page.data.process.moveNext(callbackFunction);
- 参数 
 类型: 函数- 备注: 完成操 作时调用的可选函数。 回调函数传递下列字符串值之一以指示操作是否成功。 - 值 - 说明 - success - 操作成功。 - crossEntity - 下一阶段用于其他实体。 - 结束 - 可用阶段是可用路径的最后阶段。 - 无效 - 由于所选阶段与可用阶段不同,因此操作失败。 - dirtyForm - 如果页面中的数据未保存,将返回此值。 
重要
只有当所选阶段和可用阶段相同时可用此方法。 在您的代码从OnStageChange 事件启动中,将选择当前阶段。 在您的代码从 OnStageSelected 事件中启动时,应使用 Xrm.Page.data.process.getActiveStage 验证所选阶段也是可用阶段。 对于其他表单事件,不可能确定当前选择了哪个阶段。 为达最佳效果,此方法只用于在OnStageChange和 OnStageSelected事件启动的函数调用的代码。
movePrevious
移到上一阶段。 使用 Microsoft Dynamics CRM Online 2015 更新 1,您可以使用 movePrevious 到不同实体中的上一个阶段。
Xrm.Page.data.process.movePrevious(callbackFunction);
- 参数 
 类型: 函数- 备注: 完成操 作时调用的可选函数。 回调函数传递下列字符串值之一以指示操作是否成功。 - 值 - 说明 - success - 操作成功。 - crossEntity - 前一阶段用于其他实体。 - 开始 - 可用阶段是可用路径的第一阶段。 - 无效 - 由于所选阶段与可用阶段不同,因此操作失败。 - dirtyForm - 如果页面中的数据未保存,将返回此值。 
重要
只有当所选阶段和可用阶段相同时可用此方法。 在您的代码从OnStageChange 事件启动中,将选择当前阶段。 在您的代码从 OnStageSelected 事件中启动时,应使用 Xrm.Page.data.process.getActiveStage 验证所选阶段也是可用阶段。 对于其他表单事件,不可能确定当前选择了哪个阶段。 为达最佳效果,此方法只用于在OnStageChange和 OnStageSelected事件启动的函数调用的代码。
备注
使用 Microsoft Dynamics CRM Online 2015 更新 1,您可以使用使用此方法返回到不同实体的阶段。
流程方法
流程包含业务流程的数据。 使用此方法访问流程的属性。
getId
返回流程的唯一标识符
var processId = procObj.getId();
- 返回值 
 类型:String- 备注: 表示 GUID 值字符串表示形式的值。 
getName
返回流程的名称
var processName = procObj.getName();
- 返回值
 类型:String
getStages
返回流程中阶段的集合
var stageCollection = procObj.getStages();
- 返回值 
 类型: 集合- 有关访问返回阶段属性的方法,请参阅 阶段方法。 
isRendered
如果呈现流程,则返回 true,反之,则返回 false
var processRendered = procObj.isRendered();
- 返回值 
 类型:Boolean- 备注: 如果已升级所用窗体的 Microsoft Dynamics CRM 早期版本,但尚未升级到使用新窗体,则无法呈现业务流程控件。详细信息:TechNet:更新您的表单为 Microsoft Dynamics CRM 2013 或 Microsoft Dynamics CRM Online秋天 '13 
阶段方法
阶段包含业务流程中阶段的数据。 使用此方法访问阶段的属性。
getCategory
使用 getValue 方法返回对象,将返回业务流程类别的整数值。
var stageCategoryNumber = stageObj.getCategory().getValue();
- 返回值 
 类型:Number- 备注: 有关可能值的列表,请参阅阶段类别 (processstage_category)。 
getEntityName
返回与阶段关联的实体的逻辑名称。
var stageEntityName = stageObj.getEntityName();
- 返回值
 类型:String
getId
返回阶段的唯一标识符
var stageId = stageObj.getId();
- 返回值
 类型:String
getName
返回阶段的名称
var stageName = stageObj.getName();
- 返回值
 类型:String
getStatus
返回阶段的状态
var stageStatus = stageObj.getStatus();
- 返回值 
 类型:String- 备注: 此方法将返回 active 或 inactive。 
getSteps
返回阶段中步骤的集合。
var stepsCollection = stageObj.getSteps();
- 返回值 
 类型:Array- 有关访问步骤属性值的方法,请参阅 步骤方法。 
步骤方法
阶段包含业务流程中阶段内步骤的数据。 使用此方法访问步骤的属性。
getAttribute
返回与步骤关联的属性的逻辑名称。
var stepAttributeName = stepObj.getAttribute();
- 返回值 
 类型:String- 备注: 某些步骤不包含属性值。 
getName
返回步骤的名称。
var stepName = stepObj.getName();
- 返回值
 类型:String
isRequired
返回业务流程中是否需要此步骤。
var stepIsRequired = stepObj.isRequired();
- 返回值 
 类型:Boolean- 备注: 如果步骤被标记为业务流程编辑器需要,则返回 true;否则,返回 false。 此值与您在Xrm.Page.data.entity 属性 RequiredLevel 方法中可以更改的值之间不存在连接。 
另请参阅
编写业务流程脚本
Xrm.Page.ui.process(客户端引用)
客户端编程引用
脚本即时引用的表单
为 Microsoft Dynamics CRM 2015 窗体编写代码
使用 Xrm.Page 对象模型
示例:Xrm.Page.data.process.getEnabledProcesses
Sample: Xrm.Page.data.process.getActivePath
© 2017 Microsoft。 保留所有权利。 版权