Xrm.Page.data.process(客户端引用)
发布日期: 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。 保留所有权利。 版权