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

    備考: 操作が完了したときに呼び出す関数。 このコールバック関数には、操作が成功したかどうかを示すために次のいずれかの文字列値が渡されます。

    説明

    success

    操作が成功しました。

    invalid

    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

    備考: 操作が完了したときに呼び出す関数。 このコールバック関数には、操作が成功したかどうかを示すために次のいずれかの文字列値が渡されます。

    説明

    success

    操作が成功しました。

    invalid

    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

    この値が返される可能性がある理由は次の 3 つです。

    • stageId パラメーターが存在しないステージの ID 値である。

    • アクティブ ステージが選択したステージではない。

    • レコードがまだ保存されていない。

    unreachable

    ステージが異なるパスに存在します。

    dirtyForm

    この値は、ページ内のデータが保存されない場合に返されます。

    重要

    このメソッドを使用できるのは、選択したステージとアクティブ ステージが同じである場合のみです。d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageChange からコードを開始すると、現在のステージが選択されます。d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageSelected からコードを開始する際、Xrm.Page.data.process.getActiveStage を使用して選択したステージがアクティブ ステージでもあることを確認する必要があります。 その他すべてのフォーム イベントでは、どのステージが現在選択されているかを判断することはできません。 最善の結果を得るには、OnStageSelected イベントと OnStageChange イベントによって開始される関数で呼び出されるコードでのみ、このメソッドを使用する必要があります。

getActivePath

このメソッドを使用して、現在アクティブ パスにあるステージのコレクションを取得します。業務プロセス フローのコントロールに表示されているステージを操作するメソッドと共に使用します。

アクティブ パスは、分岐ルールとレコードの最新のデータに基づいてプロセス コントロールで現在表示されているステージを表します。

var stageCollection = Xrm.Page.data.process.getActivePath();

例:

このメソッドを使用したサンプルについては、「サンプル: 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);
  • パラメーター
    種類: 関数

    備考: 操作が完了したときに呼び出す任意の関数。 このコールバック関数には、操作が成功したかどうかを示すために次のいずれかの文字列値が渡されます。

    説明

    success

    操作が成功しました。

    crossEntity

    次のステージは別のエンティティ用です。

    end

    アクティブ ステージはアクティブ パスの最後のステージです。

    invalid

    選択したステージがアクティブ ステージと同じではないため、操作が失敗しました。

    dirtyForm

    この値は、ページ内のデータが保存されない場合に返されます。

重要

このメソッドを使用できるのは、選択したステージとアクティブ ステージが同じである場合のみです。d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageChange からコードを開始すると、現在のステージが選択されます。d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageSelected からコードを開始する際、Xrm.Page.data.process.getActiveStage を使用して選択したステージがアクティブ ステージでもあることを確認する必要があります。 その他すべてのフォーム イベントでは、どのステージが現在選択されているかを判断することはできません。 最善の結果を得るには、OnStageSelected イベントと OnStageChange イベントによって開始される関数で呼び出されるコードでのみ、このメソッドを使用する必要があります。

movePrevious

前のステージに移動します。 別のエンティティ内の以前のステージに対して movePrevious を使用できます。

Xrm.Page.data.process.movePrevious(callbackFunction);
  • パラメーター
    種類: 関数

    備考: 操作が完了したときに呼び出す任意の関数。 このコールバック関数には、操作が成功したかどうかを示すために次のいずれかの文字列値が渡されます。

    説明

    success

    操作が成功しました。

    crossEntity

    前のステージは別のエンティティ用です。

    beginning

    アクティブ ステージはアクティブ パスの最初のステージです。

    invalid

    選択したステージがアクティブ ステージと同じではないため、操作が失敗しました。

    dirtyForm

    この値は、ページ内のデータが保存されない場合に返されます。

重要

このメソッドを使用できるのは、選択したステージとアクティブ ステージが同じである場合のみです。d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageChange からコードを開始すると、現在のステージが選択されます。d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageSelected からコードを開始する際、Xrm.Page.data.process.getActiveStage を使用して選択したステージがアクティブ ステージでもあることを確認する必要があります。 その他すべてのフォーム イベントでは、どのステージが現在選択されているかを判断することはできません。 最善の結果を得るには、OnStageSelected イベントと OnStageChange イベントによって開始される関数で呼び出されるコードでのみ、このメソッドを使用する必要があります。

注意

このメソッドを使用して、別のエンティティのステージに戻ることができます。

プロセス メソッド

プロセスには、業務プロセス フローのデータが含まれます。 これらのメソッドを使用して、プロセスのプロパティにアクセスします。

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

    備考: 値は activeaborted、または finished になります。

  • 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

    備考: このメソッドは、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 属性の 6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_RequiredLevel メソッドで変更できる値との間に関連付けはありません。

関連項目

業務プロセス フローのスクリプトを作成する
Xrm.Page.ui.process (クライアント側の参照)
クライアント側のプログラミング リファレンス
フォーム スクリプトの簡易参照
Microsoft Dynamics 365 フォームのコードを記述する
Xrm.Page オブジェクト モデルの使用
サンプル: Xrm.Page.data.process.getEnabledProcesses
サンプル: Xrm.Page.data.process.getActivePath

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権