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 IBM® BPM サーバーのさまざまなコンテキスト・ルートの値が含まれます。この API を使用して、Coach ビューがこれらのサーバーに接続するために使用する URL を作成します。オブジェクトには、以下のプロパティーがあります。
  • rest (String)IBM BPM REST サーバー ("/rest/bpm/wle" など)
  • teamworks (String)IBM BPM Teamworks サーバー ("/teamworks" など)
  • processPortal (String)IBM Process Portal サーバー ("/ProcessPortal" など)
context.element Coach ビューのルート 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。それ以外の場合、返される値は空ストリングです。
  • enablingDocumentId (String)。 現在のヒューマン・サービスが属する実装を持つケース・アクティビティーをアクティブ化した文書の ID。トリガー・アクティビティーが文書によってアクティブ化されなかったか、ケース・アクティビティーではない場合、空ストリングが返されます。
  • instanceId (String)。Coach が実行されている BPD のインスタンス ID。
  • paId (String)。Coach 定義が含まれているプロセス・アプリケーションまたはツールキットの 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 Coach ビューのタイマー・ベースの最新表示に関連する以下のプロパティーへのアクセスを提供します。
  • 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) を参照してください。
IBM BPM バージョン 8.6.0 累積フィックス 2017.12context.controlidpath Coach 内でこの Coach ビューを一意的に識別します。このストリングは、ほとんどのレイアウト変更を通じて不変であり、Coach ビューの実装で DOM エレメントの固有 ID を作成するためのベースとして使用できます。

context.controlidpath プロパティーは、IBM Robotic Process Automation with Automation Anywhere でボットが使用できるユーザー・インターフェースの信頼性を確保します。詳しくは、IBM Robotic Process Automation with Automation Anywhere を参照してください。

関数

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

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

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

重要: ビュー管理のコンテンツ・ボックスを含んだ Coach ビューが、空ではないリストにバインドされている場合は、コンテンツ・ボックスの domNode ノードを削除してから最初の反復エレメントをレンダリングするまでの間にこの API を呼び出さないでください。戻り値が正確でない場合があります。
context.createView(domNode, index, parentView) 指定された DOM エレメント (通常、これはコンテンツ・ボックス div です) の下にある Coach ビュー・インスタンスおよび任意のサブビュー・インスタンスを作成します。
  • domNode (Element)。Coach ビューの 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) Coach ビュー・インスタンスと、指定した DOM エレメントから開始するサブビュー・インスタンスを削除します。
  • domNode (Element)。Coach ビューのコンテンツ・ボックスまたはノードの 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() この関数を呼び出している Coach ビューの上位の可視性の設定値を含むストリングを返します。すべての上位の可視性の値が DEFAULT に設定されている場合、この関数は EDITABLE を返します。
context.getOptions(viewDomNode) viewDomNode が指定されると、Coach ビューの 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.getWL() Coach ビューが MobileFirst Foundation 環境で実行されている場合は WL 名前空間が返されます。そうでない場合はヌルが返されます。WL 名前空間は、MobileFirst Foundation API オブジェクト、メソッド、および定数へのアクセスを提供します。モバイル環境での IBM MobileFirst Platform Foundation を使用した IBM BPM プロセス・アプリケーションの有効化を参照してください。
context.bind(type, callbackFunc, scopeObject) 指定したタイプに関連付けられている変更通知を受信するためのコールバック関数を登録します。現在は、style タイプのみがサポートされています。それ以外の値を設定すると、例外がスローされます。 この設定の変更は、位置決め設定の設計時変更の場合も、ランタイム画面サイズの変更の場合もあります。

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

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

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

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

以下のパラメーターが定義されています。
  • 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 を使用した子 Coach ビューへのアクセスを参照してください。

context.htmlEscape(text) 指定されたテキストをエスケープします。この関数は、潜在的なクロスサイト・スクリプティング (XSS) 攻撃を回避するために使用されます。
  • text (String)。エスケープするテキスト。エスケープされたテキストが返されます。
context.isTrustedSite(origin) origin が Coach のプロトコル、ホスト、およびポート、またはホワイト・リストに記載されているサイトと一致する場合、true を返します。例えば、Coach ビューが postMessage イベントを受け取ったとします。Coach ビューは、パラメーターとして event.origin を使用してこの API を呼び出すことより、イベントの発生元を検査できます。
  • origin (String)。URL のプロトコルおよびホスト。URL がプロトコルのデフォルト・ポートを使用しない場合、origin にはポートも含まれている必要があります。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() Coach ビューと、そのすべてのサブビューの再バインドを強制的に実行します。 その結果、change() コールバックが呼び出されて、ビュー (およびそのすべてのサブビュー) がリフレッシュされます。
context.setDisplay(isDisplay, domNode) display:none を設定する CSS クラスを削除または追加することによって、指定した DOM エレメントを表示または非表示にします。 domNode が非表示の場合、親の Coach または 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 または Coach ビューは domNode が占有するスペースを確保します。
  • isVisible (Boolean)。値 true は domNode を表示します。値 false は domNode を非表示にします。
  • domNode (Element) (オプション)。 これを指定しなかった場合、現在のビューのルート HTML DOM エレメントが使用されます。
context.subscribeValidation() 現在のビューとは異なるビジネス・オブジェクトにバインドされている下位ビューの検証エラーを受信する Coach ビューを登録します。これらのエラーは、エラー・イベント・オブジェクトの 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() Coach ビューの登録を抹消して、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 を取得します。