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 验证所选阶段也是可用阶段。 对于其他表单事件,不可能确定当前选择了哪个阶段。 为达最佳效果,此方法只用于在OnStageChangeOnStageSelected事件启动的函数调用的代码。

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 验证所选阶段也是可用阶段。 对于其他表单事件,不可能确定当前选择了哪个阶段。 为达最佳效果,此方法只用于在OnStageChangeOnStageSelected事件启动的函数调用的代码。

movePrevious

移到上一阶段。 使用 Microsoft Dynamics CRM Online 2015 更新 1,您可以使用 movePrevious 到不同实体中的上一个阶段。

Xrm.Page.data.process.movePrevious(callbackFunction);
  • 参数
    类型: 函数

    备注: 完成操 作时调用的可选函数。 回调函数传递下列字符串值之一以指示操作是否成功。

    说明

    success

    操作成功。

    crossEntity

    前一阶段用于其他实体。

    开始

    可用阶段是可用路径的第一阶段。

    无效

    由于所选阶段与可用阶段不同,因此操作失败。

    dirtyForm

    如果页面中的数据未保存,将返回此值。

重要

只有当所选阶段和可用阶段相同时可用此方法。 在您的代码从OnStageChange 事件启动中,将选择当前阶段。 在您的代码从 OnStageSelected 事件中启动时,应使用 Xrm.Page.data.process.getActiveStage 验证所选阶段也是可用阶段。 对于其他表单事件,不可能确定当前选择了哪个阶段。 为达最佳效果,此方法只用于在OnStageChangeOnStageSelected事件启动的函数调用的代码。

备注

使用 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();

阶段方法

阶段包含业务流程中阶段的数据。 使用此方法访问阶段的属性。

getCategory

使用 getValue 方法返回对象,将返回业务流程类别的整数值。

var stageCategoryNumber = stageObj.getCategory().getValue();

getEntityName

返回与阶段关联的实体的逻辑名称。

var stageEntityName = stageObj.getEntityName();
  • 返回值
    类型:String

getId

返回阶段的唯一标识符

var stageId = stageObj.getId();
  • 返回值
    类型:String

getName

返回阶段的名称

var stageName = stageObj.getName();
  • 返回值
    类型:String

getStatus

返回阶段的状态

var stageStatus = stageObj.getStatus();
  • 返回值
    类型:String

    备注: 此方法将返回 activeinactive

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。 保留所有权利。 版权