Xrm.Page.data.process(客户端引用)

 

发布日期: 2017年1月

适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online

Xrm.Page.data.process 命名空间可以提供窗体中与业务流程数据交互的事件、方法和对象。

有关与窗体中业务流程交互的方法,请参阅 Xrm.Page.ui.process(客户端引用)

Xrm.Page.data.process 方法

  • ActiveProcess 方法
    使用 getActiveProcess 检索有关活动流程的信息,并使用 setActiveProcess 将不同的流程设置为活动流程。

  • ProcessInstance 方法
    使用 getProcessInstances 检索有关某条实体记录所有流程实例的信息,并使用 setActiveProcessInstance 将流程实例设置为活动实例。

  • ActiveStage 方法
    使用 getActiveStage 检索有关活动阶段的信息,并使用 setActiveStage 将完成的阶段设置为活动阶段。

    可以使用 setActiveStage 转到不同实体中的阶段。

  • getActivePath
    使用此方法在带有方法的活动路径中警告当前阶段的集合,以与业务流程控件中显示的阶段进行交互。

    根据记录中的分支规则和当前数据,活动路径代表流程控件中当前呈现的阶段。

  • getEnabledProcesses
    对于实体,使用此方法用户可以切换到异步检索已启用的业务流程。

  • getSelectedStage
    使用此方法可访问当前选择的阶段。

  • 管理事件处理程序的方法
    使用 addOnStageChange、removeOnStageChange、addOnStageSelected、removeOnStageSelected 、addOnProcessStatusChange 和 removeOnProcessStatusChange 方法添加或删除业务流程控件的事件处理程序。

  • 导航方法
    使用 moveNext 移至下一阶段,并使用 movePrevious 移至上一阶段。

    可以使用 movePrevious 转到不同实体中的上一个阶段。

  • 流程方法
    使用流程方法访问流程的属性。

  • 实例方法
    使用流程实例方法访问当前流程实例的属性。

  • 阶段方法
    使用阶段方法访问业务流程中的阶段属性。

  • 步骤方法
    使用阶段方法访问业务流程中阶段内的步骤属性。

ActiveProcess 方法

使用 getActiveProcess 检索有关活动流程的信息,并使用 setActiveProcess 将不同的流程设置为活动流程。

getActiveProcess

返回表示活动流程的 Process 对象。

var activeProcess = Xrm.Page.data.process.getActiveProcess();
  • 返回值
    类型: 流程

    备注: 参阅流程方法 的方法访问返回流程的属性。

setActiveProcess

Process 设置为活动流程。

如果存在流程的活动实例,将使用实例 ID 加载实体记录。 如果不存在当前流程的活动实例,将创建一个新流程实例,并使用实例 ID 加载实体记录。 如果存在当前流程的多个实例,将按照默认逻辑使用活动流程的第一个实例(这是每个用户最近使用的流程实例)加载记录。

Xrm.Page.data.process.setActiveProcess(processId, callbackFunction);

参数:

  • processId
    类型:String

    备注: 进行活动流程的流程 Id。

  • callbackFunction
    类型:Function

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

    说明

    成功

    操作成功。

    无效

    processId 无效或流程未启用。

ProcessInstance 方法

使用 getProcessInstances 检索有关某条实体记录所有流程实例的信息,并使用 setActiveProcessInstance 将流程实例设置为活动实例。

备注

适用于 Dynamics 365 的 2016 年 12 月更新(联机和本地) 中引入了这些方法。

getProcessInstances

返回调用用户可访问的实体记录的所有流程实例。

Xrm.Page.data.process.getProcessInstances(callbackFunction(object));
  • 参数
    类型:Function

    备注: 将为回调函数传递一个带以下属性且这些属性的相应值充当“键:值”对的对象。

    • CreatedOn

    • ProcessDefinitionID

    • ProcessDefinitionName

    • ProcessInstanceID

    • ProcessInstanceName

    • StatusCodeName

    根据用户的特权筛选流程实例。

setActiveProcessInstance

将流程实例设置为活动实例。

Xrm.Page.data.process.setActiveProcessInstance(processInstanceId, callbackFunction);

参数:

  • processInstanceId
    类型:String

    备注: 要设置为活动实例的流程实例的 ID。

  • callbackFunction
    类型:Function

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

    说明

    成功

    操作成功。

    无效

    processInstanceId 无效或流程未启用。

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 表示的阶段不可用,则该阶段将不会变为活动状态并回调函数传递字符串值显示原因。 必须对下表中列出的值进行返回。

    原因

    invalid

    此值返回有三个原因:

    • stageId 参数是不存在阶段的 ID 值。

    • 可用阶段不是所选阶段

    • 未保存记录。

    unreachable

    阶段位于不同的路径。

    dirtyForm

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

    重要

    只有当所选阶段和可用阶段相同时可用此方法。 在您的代码从d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageChange启动中,将选择当前阶段。 在您的代码从 d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_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()
  • 返回值
    类型: 阶段

    当前所选阶段。

  • 备注
    有关访问返回阶段属性的方法,请参阅 阶段方法。

管理事件处理程序的方法

使用这些方法添加或删除业务流程控件的事件处理程序。

addOnStageChange

使用此方法将函数添加为 d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageChange 的事件处理程序,以便更改业务流程阶段时将被调用。

Xrm.Page.data.process.addOnStageChange(handler);
  • 参数
    类型: 函数引用

    Remarks: 函数将添加到事件处理程序管道的底部。 执行上下文是传递到事件处理程序后自动设置的第一参数。 有关更多信息,请参阅 执行上下文(客户端引用)

    如果您稍后想删除事件处理程序,则应使用已命名函数的引用(而非匿名函数)。

removeOnStageChange

使用此方法删除作为 d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageChange 的事件处理程序的函数。

Xrm.Page.data.process.removeOnStageChange(handler);
  • 参数
    类型: 函数引用

    Remarks: 如果使用 addOnStageChange 方法设置匿名函数,则使用此方法将无法删除该函数。

addOnStageSelected

使用此方法将函数添加为 d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageSelected 的事件处理程序,以便选定业务流程阶段时将被调用。

Xrm.Page.data.process.addOnStageSelected(handler);
  • 参数
    类型: 函数引用

    Remarks: 函数将添加到事件处理程序管道的底部。 执行上下文是传递到事件处理程序后自动设置的第一参数。 有关更多信息,请参阅 执行上下文(客户端引用)

    如果您稍后想删除事件处理程序,则应使用已命名函数的引用(而非匿名函数)。

removeOnStageSelected

使用此方法删除作为 d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageSelected 的事件处理程序的函数。

Xrm.Page.data.process.removeOnStageSelected(function reference);
  • 参数
    类型: 函数引用

    Remarks: 如果使用 addOnStageSelected 方法设置匿名函数,则使用此方法将无法删除该函数。

addOnProcessStatusChange

使用此方法将函数添加为 d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnProcessStatusChange 事件的事件处理程序,以便更改业务流程状态时将被调用。

Xrm.Page.data.process.addOnProcessStatusChange(handler);
  • 参数
    类型: 函数引用

    Remarks: 函数将添加到事件处理程序管道的底部。 执行上下文是传递到事件处理程序后自动设置的第一参数。 有关更多信息,请参阅 执行上下文(客户端引用)

    如果您稍后想删除事件处理程序,则应使用已命名函数的引用(而非匿名函数)。

    适用于 Dynamics 365 的 2016 年 12 月更新(联机和本地) 中引入了此方法。

removeOnProcessStatusChange

使用此方法删除作为 d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnProcessStatusChange 事件的事件处理程序的函数。

Xrm.Page.data.process.removeOnProcessStatusChange(handler);
  • 参数
    类型: 函数引用

    Remarks: 如果使用 addOnProcessStatusChange 方法设置匿名函数,则使用此方法将无法删除该函数。

    适用于 Dynamics 365 的 2016 年 12 月更新(联机和本地) 中引入了此方法。

导航方法

使用 moveNext 移至下一阶段,并使用 movePrevious 移至上一阶段。 这两种方法均将导致 d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageChange 发生。

moveNext

进展到下一阶段。

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

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

    说明

    成功

    操作成功。

    crossEntity

    下一阶段用于其他实体。

    结束

    可用阶段是可用路径的最后阶段。

    无效

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

    dirtyForm

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

重要

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

movePrevious

移到上一阶段。 可以使用 movePrevious 转到不同实体中的上一个阶段。

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

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

    说明

    成功

    操作成功。

    crossEntity

    前一阶段用于其他实体。

    开始

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

    无效

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

    dirtyForm

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

重要

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

备注

可以使用此方法返回到不同实体的阶段。

流程方法

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

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

实例方法

流程实例中包含业务流程一个实例的数据。 使用此方法访问流程实例的属性。

备注

适用于 Dynamics 365 的 2016 年 12 月更新(联机和本地) 中引入了这些实例方法。

getInstanceId

返回流程实例的唯一标识符。

Xrm.Page.data.process.getInstanceId();
  • 返回值
    类型:String

    备注: 表示 GUID 值字符串表示形式的值。

getInstanceName

返回流程实例的名称。

Xrm.Page.data.process.getInstanceName();
  • 返回值
    类型:String

getStatus

返回流程实例的当前状态。

Xrm.Page.data.process.getStatus();
  • 返回值
    类型:String

    备注: 此方法将返回以下值之一:activeabortedfinished

setStatus

设置活动流程实例的当前状态。

Xrm.Page.data.process.setStatus(status, callbackFunction);

参数:

  • status
    类型:String

    备注: 值可以是 activeabortedfinished

  • callbackFunction
    类型:Function

    备注: 完成操作时调用的可选函数。 将为此回调函数传递字符串值形式的新状态。

阶段方法

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

getCategory

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

var stageCategoryNumber = stageObj.getCategory().getValue();
  • 返回值
    类型:Number

    备注: 有关可能值的列表,请参阅afe17a4a-fdca-44b4-8c14-a19ba327662e#BKMK_StageCategory。

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 属性 6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_RequiredLevel 方法中可以更改的值之间不存在连接。

另请参阅

编写业务流程脚本
Xrm.Page.ui.process(客户端引用)
客户端编程引用
脚本即时引用的表单
为 Microsoft Dynamics 365 窗体编写代码
使用 Xrm.Page 对象模型
示例:Xrm.Page.data.process.getEnabledProcesses
Sample: Xrm.Page.data.process.getActivePath

Microsoft Dynamics 365

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