context オブジェクト

context オブジェクトは、名前付き境界イベントを起動するコールバックなど、ヘルパー関数へのアクセスを提供します。

プロパティ-

context オブジェクトを介して、そのオブジェクトのプロパティーにアクセスできます。
プロパティー 説明
context.binding 現在のビューにバインドされているデータ・オブジェクトへのアクセスを提供します。 データにアクセスするには、次の呼び出しを使用します。
this.context.binding.get("value")
ここで、value は、バインドされているデータ・オブジェクトを返す特殊プロパティー名です。
例えば、ビューが local.phoneBook.title にバインドされている場合、このビューでは、次のコードを使用してタイトルを取得できます。
if (!! this.context.binding){
	var title = this.context.binding.get("value")
}
context.contextRootMap ワークフロー・サーバーのさまざまなコンテキスト・ルートの値が含まれます。 この API を使用して、ビューがこれらのサーバーに接続するために使用する URL を作成します。 オブジェクトには、以下のプロパティーがあります。
  • rest (String) ワークフロー REST サーバー ( "/rest/bpm/wle" など)
context.element ビューのルート DOM エレメントが含まれます。 ビューでこの DOM エレメントを削除しないでください。 レイアウトで定義されるビューは、このルート・エレメントの子です。 通常、ビューはこのルート DOM エレメントを使用して、ビュー自身のコンテンツを探します。
注: 同じビューの複数のインスタンスを同じ HTML ページに配置することができます。 その場合は、このルート DOM エレメントを使用して検索のスコープを指定してください。
context.options ビューの構成オプションへのアクセスを提供します。 これらの構成オプションには、ユーザーがビューに対して設定できるボタン・コントロールのラベルなどのプロパティーとメタデータ・プロパティーが含まれます。
context.subview[viewid]
サブビューの div ID が指定されたオブジェクトをプロパティー名として返します。 繰り返しのないシナリオでは、プロパティーは通常 1 つのみです。 一般に、context.getSubview() のほうが使いやすい関数です。
  • viewid (String) ビュー ID またはコントロール ID。
詳しくは、 例: domNodeの取得と使用 および 例: div ID の取得を参照してください。
context.bpm.system 以下のシステム値へのアクセスを提供します。
  • baseTextDirection (String) ユーザーのテキスト方向の設定。
  • (非推奨) caseFolderId (String)。 現在のヒューマン・サービスがケース・インスタンスのコンテキストで実行中の場合は、ケース・フォルダーの ID。それ以外の場合、返される値は空ストリングです。 代わりに、processInstanceFolderId を使用してください。
  • (非推奨) caseFolderServerName(String)。 クライアント・サイド・ヒューマン・サービスが実行されるインスタンスに関連付けられたサーバーの名前。 代わりに、processInstanceFolderServerName を使用してください。
  • enablingDocumentId (String) 現在のヒューマン・サービスが属する実装を持つケース・アクティビティーをアクティブ化した文書の ID。 トリガー・アクティビティーが文書によってアクティブ化されなかったか、ケース・アクティビティーではない場合、空ストリングが返されます。
  • processInstanceFolderId (String) プロセス・インスタンスに関連付けられているケース・フォルダーの ID。
  • processInstanceFolderServerName (String) プロセス・インスタンスのケース・フォルダーに関連付けられたサーバーの名前。
  • instanceId (String) Coach が実行されている BPD のインスタンス ID。
  • paId (String) Coach 定義が含まれているプロセス・アプリケーションまたはツールキットの ID。
  • parentCase.caseId (String) プロセス・インスタンスに関連付けられている親ケース ID。
  • parentCase.caseServerId (String) 親ケース・インスタンスに関連付けられているサーバーの ID。 エンド・ユーザーには表示されません。
  • parentCase.parentActivityId (String) プロセス・インスタンスに関連付けられている親アクティビティー ID。
  • paShortName (String) Coach 定義が含まれているプロセス・アプリケーションまたはツールキットの頭字語。
  • snapshotId (String) Coach 定義を含むプロセス・アプリケーションまたはツールキットのスナップショットの ID。
  • runtimeRootSnapshotId (String) Coach が実行されているプロセス・アプリケーションまたはツールキットのスナップショットの ID。
  • startingDocumentId (String) ファイリングされている文書イベントによって開始されたケース・インスタンスで現在のヒューマン・サービスが実行されている場合は、ケース開始文書の ID。それ以外の場合、返される値は空ストリングです。
  • taskId (String) Coach が実行されている現在のタスクまたはプロセスの ID。
  • user_id (String) ユーザーの ID。
  • user_loginName (String) ユーザーがログイン時に使用した名前。
  • user_fullName (String) ユーザーの氏名。
  • user_localeCountry (String) ユーザーのロケール。
  • user_localeLanguage (String) ユーザーの言語。
context.bpm.system.settings ビューのタイマー・ベースの最新表示に関連する以下のプロパティーへのアクセスを提供します。
  • TimerCoachViewEnabled (Boolean) この設定は、自動最新表示をトリガーするためにデフォルトのインスタンス詳細ユーザー・インターフェースで使用されるタイマー Coach コントロールのアクティブ状況または非アクティブ状況を指定します。 デフォルトでは、この設定は true になっています。この場合、タイマー・コントロールはアクティブです。
  • TimerCoachViewRefreshInterval (Integer) この設定は、タイマー Coach コントロールによってトリガーされる最新表示要求の頻度を指定します。 値は秒で定義されます。 デフォルト値は -1 です。この場合、Coach コントロール構成で使用されている値が使用されます。 管理者はこのプロパティーを使用して、モデルで指定されている設定をオーバーライドできます。
  • MinimumCoachViewRefreshInterval (Integer) この設定は、インスタンス・ユーザー・インターフェース Coach コントロールによって処理される最新表示要求間の最小時間を定義します。 値は秒で定義されます。 デフォルト値は 10 です。この場合、最後の最新表示呼び出しから 10 秒以上経過している場合のみ、サーバーに対する最新表示呼び出しが送信されます。
context.bpm.team.manager 現行ユーザーがマネージャーとなっているチームをリストします。 このリスト ("[]") はデフォルトでは空です。 context.bpm.team.manager のリストの各項目は、以下のプロパティーを含んだオブジェクトです。
  • name (String) チームの名前。
  • id (String) チームの固有 ID。
context.bpm.team.member 現行ユーザーがメンバーとなっているチームをリストします。 このリスト ("[]") はデフォルトでは空です。 context.bpm.team.member のリストの各項目は、以下のプロパティーを含んだオブジェクトです。
  • name (String) チームの名前。
  • id (String) チームの固有 ID。
context.viewid このビュー定義の固有 ID が含まれます。 複数のビュー・インスタンスで同じ viewId を使用できます。 詳しくは、 context.getSubview(viewId, requiredOrder)を参照してください。

関数

context オブジェクトを介して、そのオブジェクトの関数にアクセスできます。
関数 説明
context.bindingType() データ・バインディングのタイプを返します。
context.broadcastMessage(message) 提供されたメッセージをブロードキャストします。
重要: この API を使用して機密情報を送信しないでください。
  • message (Object) nameプロパティーが設定されているオブジェクト。
context.cancelBoundaryEvents() サーバーに送信されていない境界イベントをキャンセルします。 境界イベントがトリガーされたときにコールバック関数が指定された場合は、Coach フレームワークがそのコールバック関数を呼び出して境界イベントの状況を更新します。 詳しくは、context.trigger(callback) 関数を参照してください。
context.containDiffLoopingContext() 以下の条件が当てはまる場合は、true の値が返されます。
  • リストにバインドされているビューに、ビューを含んだコンテンツ・ボックスがある。
  • この包含されているビューが、別のリストの currentItem にバインドされている。
例えば、API は以下の構造について true の値を返します。
TableView (bind to ListA[])
	ContentBox
		TextView (bind to ListB.currentItem)

リストの長さが一致しない場合、フレームワークは実行時にメッセージを表示します。 例えば、ListA に 4 つの項目があり、ListB に 3 つの項目がある場合、上記の例ではメッセージが表示されます。 詳しくは、 ビューのデータ・バインディングを参照してください。

containDiffLoopingContext() は、例えば、 ユーザーが追加/削除機能の有効化を指定した場合でも、ランタイムにテーブルの追加/削除機能を無効にするかどうかを 決定する際などに使用します。

重要: ビュー管理コンテンツ・ボックスを含むビューが空でないリストにバインドされている場合は、コンテンツ・ボックスの domNode を削除してから最初の反復エレメントをレンダリングするまでの間にこの API を呼び出さないでください。 戻り値が正確でない場合があります。
context.createView(domNode, index, parentView) 指定された DOM エレメント (通常、これはコンテンツ・ボックス div です) の下にあるビュー・インスタンスおよび任意のサブビュー・インスタンスを作成します。
  • domNode (Element) 任意のビューのコンテンツ・ボックスまたはノードの HTML DOM エレメント。
  • index (Integer) (オプション)。 データ・バインディングと構成の指標を調整できるように、またはゼロから始まるように、位置を指定します。
  • parentView (CoachView) (オプション)。 親ビューのビュー・インスタンス。または、ドキュメントの順序に基づいて親ビューを求めることもできます。

domNode がコンテンツ・ボックス以外の任意のビューのノードである場合、フレームワークはビューの単一インスタンスを作成して返します。 domNode がコンテンツ・ボックスのノードの場合、フレームワークはコンテンツ・ボックスが所有するすべてのビューに対してビュー・インスタンスを作成します。 フレームワークは、domNode パラメーターで指定されたコンテンツ・ボックスが所有するすべてのフレームワーク管理のコンテンツ・ボックスに対して、ビューを再帰的に作成します。 その後、フレームワークはこれらのビュー・インスタンスの配列を返します。

以下のコード・スニペットは、コンテンツ・ボックス・ビューの作成方法を示しています。
var location = 5;
var trElement = document.createElement("tr");
// rowTemplate is the contentBox that contains some nodes
// the view nodes define table columns.
var oneDiv = this.rowTemplate.cloneNode(true);
trElement.appendChild(oneDiv);
this.tableElement.appendChild(trElement);
var viewArray = this.context.createView(oneDiv, location);
詳しくは、 例: domNodeの取得と使用を参照してください。
context.deleteView(domNode) 指定された DOM エレメントから順番に、ビュー・インスタンスおよびすべてのサブビュー・インスタンスを削除します。
  • domNode (Element) 任意のビューのコンテンツ・ボックスまたはノードの HTML DOM エレメント。
以下のコード・スニペットは、ビュー・インスタンスの削除方法を示しています。
var nodeToDelete = document.getElementById("myId");
this.context.deleteView(nodeToDelete);
nodeToDelete.parentNode.removeChild(nodeToDelete);
詳しくは、 例: domNodeの取得と使用を参照してください。
context.getDomNode(uniqueViewId, optParam) data-ibmbpm_uniqueViewId プロパティーの値が指定の ID になっている DOM ノードの最初の一致を返すか、一致がない場合は NULL を返します。 optParam.startNode を使用して別の開始ノードを渡さない限り、検索は this.context.element の親 DOM ノードから開始されます。また、 optParam.deepSearch=trueで渡さない限り、検索は開始ノードの直接の子のみを検査します。
  • uniqueViewID (String) domNodedata-ibmbpm_uniqueViewId内で検索する値。
  • optParam (Object) (オプション)。 検索の範囲を変更するパラメーター。
context.getInheritedVisibility() この関数を呼び出しているビューの上位の可視性の設定値を含むストリングを返します。 すべての上位の可視性の値が DEFAULT に設定されている場合、この関数は EDITABLE を返します。
context.getOptions(viewDomNode) viewDomNode が指定されると、ビューの options オブジェクトを返します。 viewDomNode によって表されるビューがまだ作成されていない場合でもオプションは返されます。 通常、ビューでこの API を使用して、その子ビューの 1 つについて構成オプション (ラベルや可視性など) を調べてから、そのビューを作成します。
  • viewDomNode (Element) 子ビューの HTML DOM エレメント。

以下のコード・スニペットは、この API の使用方法の例です。

var childOptions = this.context.getOptions(childViewDomNode);
var childLabel = childOptions._metadata.label.get("value");
childOptions._metadata.visibility.set("value", "READONLY");
context.getStyle() Coach デザイナーの位置付けプロパティーで指定されている、現在適用されている位置決め情報を返します。 現在適用されている位置決めは、小さい画面サイズに何も指定されていない場合は大きい画面の幅の設定が小さい画面サイズに適用される、継承モデルに基づいています。 どの画面サイズにも所定のプロパティーが指定されていない場合は、ヌルが返されます。 以下のプロパティーが定義されています。
  • width (String)
  • height (String)
  • min-width (String)
  • min-height (String)
  • margin (String)
  • padding (String)
  • overflow (String)
context.bind(type, callbackFunc, scopeObject) 指定したタイプに関連付けられている変更通知を受信するためのコールバック関数を登録します。 現在は、style タイプのみがサポートされています。 それ以外の値を設定すると、例外がスローされます。 この設定の変更は、位置決め設定の設計時変更の場合も、ランタイム画面サイズの変更の場合もあります。

通常、コールバック関数は context.getStyle() メソッドを呼び出して、現在適用されている位置決めを取得します。

複数の位置付けプロパティーが変更されても、トリガーされる通知またはコールバックは 1 つのみです。 この関数は、コールバックを登録抹消するために使用できるオブジェクトを返します。 返されたオブジェクトには、パラメーターを取らない unbind() メソッドが含まれています。
  • type(String) 現在、サポートされている値は styleのみです。
  • callbackFunc (Function) コールバックとして呼び出される関数。 この関数には type パラメーターはありません。
  • scopeObject (Object) . (オプション) コールバック関数を呼び出すときに使用される「this」を示します。 指定されていない場合、スコープは定義されません。
context.setGroupNotification()

使用可能にすると、ビューは、現在のスレッド内のすべての変更についての単一の通知で、データ・バインディング・オプションと構成オプションの変更の通知を受信できます。

コールバックに渡されるイベント・オブジェクトには、値 groupNotificationの単一プロパティー type が含まれます。 個々の変更に関する情報は含まれていません。 ビューは、グループ通知を受信した後、最新のバインディング・オプションと構成オプションの値を取得します。

以下のパラメーターが定義されています。
  • enable(boolean). trueの値は、グループ通知を有効にします。 値 false はグループ通知を使用不可にします。
  • callback (function) グループ通知が有効になっている場合に呼び出すコールバックを指定します。 enablefalse に設定されている場合、前のコールバックはすべて削除されます。
  • scope(Object) コールバックが呼び出されるときの関数のスコープ。
context.getSubview(viewId, requiredOrder) サブビュー ID に基づくサブビュー・インスタンスを返します。 このメソッドは context.subview[viewid] に似ていますが、戻り値がサブビュー・インスタンスの配列である点が異なります。
  • viewId (String) サブビューのビュー ID またはコントロール ID。
  • requiredOrder (boolean) (オプション)。 返される配列が DOM ツリー内と同じ順序を維持する必要があるかどうかを示します。 デフォルト値は false です。

呼び出し this.context.getSubview("viewid") は、サブビュー・オブジェクトのソートされていない配列を返します。 呼び出しthis.context.getSubview("viewid", false)は、同じ配列を返します。 2 つの呼び出しと関数呼び出しthis.context.getSubview("viewid", true)の唯一の違いは、this.context.getSubview("viewid", true)が、DOM ツリー内の DOM ノードの順序と一致する順序を持つサブビュー・オブジェクトの配列を返すことです。

詳しくは、 コントロール ID を使用した子ビューへのアクセスを参照してください。

context.htmlEscape(text) 指定されたテキストをエスケープします。 この関数は、潜在的なクロスサイト・スクリプティング (XSS) 攻撃を回避するために使用されます。
  • text (String) エスケープするテキスト。 エスケープされたテキストが返されます。
context.isTrustedSite(origin) origin が Coach のプロトコル、ホスト、およびポートと一致するか、許可リストにリストされているサイトと一致する場合、true を返します。 例えば、ビューが postMessage イベントを受け取ったとします。 ビューは、パラメーターとして event.origin を使用してこの API を呼び出すことより、イベントの発生元を検査できます。
  • origin (String) URL のプロトコルとホスト。 URL がプロトコルにデフォルトのポートを使用していない場合は、発信元にポートも含める必要があります。 origin の例として、https://bpm1.mycompany.com:9080https://bpm2.mycompany.com:9443http://bpm3.mycompany.com などがあります。
context.parentView() 親ビュー・インスタンスを返すか、親ビューがない場合はnullを返します。 load() の呼び出し時に、parentview オブジェクトが作成されますが、完全には初期化されません。 初期化されない理由の 1 つは、親ビューの load() が現在の load() 関数の後で呼び出されるためです。 parentview オブジェクトが完全に初期化されないため、この関数を load() 関数内で呼び出さないでください。
context.refreshView() ビューと、そのすべてのサブビューの再バインドを強制的に実行します。 その結果、change() コールバックが呼び出されて、ビュー (およびそのすべてのサブビュー) がリフレッシュされます。
context.setDisplay(isDisplay, domNode) display:none を設定する CSS クラスを削除または追加することによって、指定した DOM エレメントを表示または非表示にします。 domNode が非表示の場合、親の Coach またはビューは domNode が占有するスペースを確保しません。
  • isDisplay (Boolean) 値 true はdomNodeを示し、値 false はdomNodeを非表示にします。
  • domNode (DOMElement) (オプション)。 これを指定しなかった場合、現在のビューのルート・エレメントが使用されます。
詳しくは、 例: domNodeの取得と使用を参照してください。
context.setUniqueViewId(uniqueViewId, targetNode) targetNodedata-ibmbpm_uniqueViewIdプロパティーで uniqueViewId を設定します。 呼び出しに targetNode が含まれていない場合は、この関数によって this.context.element の DOM ノードのプロパティーが設定されます。
  • uniqueViewId (String) 設定される ID。
  • targetNode (Element) (オプション)。 設定する data-ibmbpm_uniqueViewId プロパティーが含まれる HTML DOM エレメント。
context.setVisibility(isVisible, domNode) display:hidden を設定する CSS クラスを削除または追加することによって、指定した DOM エレメントを表示または非表示にします。 domNode が非表示の場合、親の Coach またはビューは domNode が占有するスペースを確保します。
  • isVisible (Boolean) 値 true はdomNodeを示し、値 false はdomNodeを非表示にします。
  • domNode (Element) (オプション)。 これを指定しなかった場合、現在のビューのルート HTML DOM エレメントが使用されます。
context.subscribeValidation() 現在のビューとは異なるビジネス・オブジェクトにバインドされている下位ビューの検証エラーを受信するビューを登録します。 これらのエラーは、エラー・イベント・オブジェクトの errors_subscription リストに含まれています。 タブ・ストック・コントロールなどの、データ・バインディングを持たないビューでは、この API を使用して検証エラーを受信できます。
context.trigger(callback, options) 名前付き境界イベントを起動します。
  • callback (function) (オプション)

    コールバック関数を指定した場合は、境界イベントの状況値が次の表に示されている値のいずれかになったときに、Coach フレームワークがそのコールバック関数を呼び出します。 コールバック関数が呼び出されるかどうかは、options パラメーターの値にも依存します。 境界イベントが失敗した場合、コールバック関数はエラー状態で再実行依頼も再試行もされません。 コールバック関数は、応答オブジェクトを単一のパラメーターとして使用します。{status: boundaryEventStatus}

    boundaryEventStatus パラメーターには、以下のいずれかの値が設定されます。
    説明
    executed 境界イベントが正常に実行されました。
    unqualified context.elementdata-eventid プロパティーがなく、境界イベントを実行できません。
    cancelled context.cancelBoundaryEvents() が呼び出されたために、境界イベントが取り消されました。
    abandoned Coach フレームワークが境界イベントを処理できなかったため、境界イベントが中止されました。 例えば、フレームワークがサーバーと通信できなかったか、Coach がシャットダウンされています。
  • options (Object) (オプション)
    このパラメーターには、callBackForAll (Boolean) というプロパティーが 1 つあります。 以下のいずれかの条件に該当する場合は、境界イベントが正常に実行されたとき (executed) にのみコールバックが呼び出されます。
    • options パラメーターが存在しない。
    • options パラメーターは存在するが、callBackForAll プロパティーが含まれていない。
    • options パラメーターが存在し、callBackForAll プロパティーが含まれているが、プロパティーが false に設定されている。

    プロパティーを true に設定した場合、コールバックは、正常に実行された (executed) 境界イベントのみではなく、unqualifiedcancelled、および abandoned の状況の境界イベントに対しても呼び出されます。

context.triggerCollaboration(payload) (非推奨)。 カスタム・コラボレーション・イベントを起動します。 コラボレーションしているユーザーのブラウザーにカスタム・メッセージが送信されます。 コラボレーション・ブラウザー上の対応するビューは、event.type = "custom"を持つcollaboration()コールバックを受け取ります。
  • payload (Object) カスタム・メッセージ・コンテンツを含むオブジェクト。
context.unsubscribeValidation() ビューの登録を抹消して、errors_subscription リストのエラーを受信しないようにします。 ビューは、errors リストが存在する場合はそのリストを引き続き受信します。

例: domNode ノードの取得と使用

コンテキスト・オブジェクトの多くの関数は、引数としてドキュメント・ノード (domNode) を取得します。 以下のコード例では、domNode を取得して関数内で使用する方法を示します。

 1  var subview = this.context.getSubview("subviewID", "true")[5];
 2  var subviewDomNode = subview.context.element;
 3  this.context.deleteView(subviewDomNode);  
  • 1 パラメーター subviewID はサブビューのコントロール ID であり、サブビュー・インスタンスの <div></<div> タグにおけるプロパティー data-viewid の値に対応します。 関数 getSubview(subViewID) は、サブビューの配列を返します。 この例の目的は、配列の添字で 6 番目のエレメントを取得することです。 パラメーター true を指定すると、配列のオブジェクトが DOM と同じ順序で返されます。
  • 2 ステップ 1 で返されたサブビュー・エレメントの domNode を取得します。
  • 3 ステップ 2 で返された domNode を使用して、サブビューを削除します。

例: div ID の取得

エレメントの div ID を取得するには、構文 this.context.element.id を使用します。

サブビューの ID を取得するには、最初にサブビューの domNode を取得してから、.id を使用します。

 1  var subview = this.context.getSubview("subviewID", "true")[5];
 2  var subviewDomNode = subview.context.element;
 3  var subViewDomId = subviewDomNode.id; // This gives you the ID of the subview
  • 1 パラメーター subviewID はサブビューのコントロール ID であり、サブビュー・インスタンスの <div></<div> タグにおけるプロパティー data-viewid の値に対応します。 関数 getSubview(subViewID) は、サブビューの配列を返します。 この例では、配列の指標で 6 番目のエレメントを指定しています。 パラメーター true を指定すると、配列のオブジェクトが DOM と同じ順序で返されます。
  • 2 ステップ 1 で返されたサブビュー・エレメントの domNode を取得します。
  • 3 サブビューの ID を取得します。