ビューの可視性の設定

ユーザーによるビューの表示や編集を許可したり禁止したりするには、そのビューの可視性プロパティーを設定します。

このタスクについて

デフォルトでは、ビューの表示と編集は許可されています。 ただし、ビューの「可視性」ページで以下のオプションを変更することができます。
  • Same as parent (デフォルト値)
  • Required
  • Editable
  • Read only
  • None
  • Hidden

可視性を Same as parentに設定すると、ビューを含む Coach またはビューから可視性を継承するようにビューが設定されます。 例えば、ビューが Read only 可視性を持つビュー内にあるとします。 ビューの可視性が Same as parentに設定されている場合、ビューは Read only 値を継承します。 これらのオプションおよび可視性全般については、 可視性プロパティーの表示を参照してください。

可視性」ページの内容は、ビューが Coach に含まれているかビューに含まれているかによって異なります。
ページ内 ビュー内
ページのレイアウト内にあるビューの場合は、値、ルール、スクリプトのいずれかに応じてビューの可視性を設定できます。
3 つのソース・オプション (値、ルール、およびスクリプト) が表示されている「可視性」ページ。 値が選択され、値に従って可視性を設定するためのユーザー・インターフェースがページに表示されます。

一般に、値による可視性の設定は、最も簡単ですが最も柔軟性が低いオプションで、スクリプトによる可視性の設定は、最も複雑ですが最も柔軟性が高いオプションです。

値によって可視性を設定することを選択した場合は、画面サイズに従って可視性を変更することもできます。 例えば、大型の画面ではビューを表示し、中型または小型の画面では非表示にするとします。 これを行うには、大規模画面レイアウトの編集時に可視性を Editable に設定します。 次に、中画面レイアウトに切り替えて、可視性を Hidden または Noneに変更します。 小型の画面レイアウトの値を指定しない場合は、中型の画面レイアウトの可視性値が継承されます。 詳しくは、 ビューのレスポンシブ設定を参照してください。
制約事項: 画面サイズ設定ごとに異なるルールまたはスクリプトを使用することはできません。
ビューのレイアウトに含まれているビューの場合は、値によってのみ、ビューの可視性を設定できます。
値に従って可視性を設定するためのユーザー・インターフェースを表示する「可視性」ページ

手順では、最初のオプションだけが適用されます。

手順

ビューの 「可視性」 プロパティーで、以下のいずれかの方法で可視性を設定します。
値ごと
「値」 を選択し、リストから値を選択するか、 変数を割り当てますをクリックして、ビューの可視性を決定する変数を選択します。 オプションとして、まず画面サイズ設定を選択してから、その画面サイズ設定の可視性値を選択することで、異なる画面サイズ設定に異なる値を設定できます。
注: 可視性プロパティーの設定方法に基づいて、ビューは、無効 ( Hiddenの場合) として表示することも、キャンバスに表示しない ( Noneの場合) として表示することもできます。 可視性プロパティーを Noneに設定すると、ビューはキャンバスに表示されなくなりますが、 「非表示項目」 非表示項目 ポップアップ・ウィンドウにリストされます。 ビューを再度表示するには、ポップアップ・リストでビューを選択して、可視性を「表示」に設定します。 詳しくは、 可視性プロパティーの表示を参照してください。
ルールによる設定
「ルール」を選択し、可視性ルール・セットを作成します。 可視性ルール・セットには、1 つ以上のルールと、どのルールも該当しない場合のデフォルト値があります。 各ルールは OR 関係で結合されます。 ビューは該当する最初のルールの可視性値を使用するため、各ルールを適用順に設定してください。
  1. ルール・セットの最初のルールが変数値またはチーム・メンバーシップのどちらに基づくかを決定し、その決定に応じて「変数」または「チーム」を選択します。
  2. 「その他」フィールドで値を選択して、ルール・セットのデフォルト値を設定します。
  3. ルール・セットの最初のルールを作成します。
    変数の場合は、ルールの形式が visibility variable condition value となります。 変数値に基づく可視性ルールを作成するには、以下のステップを実行します。
    • visibility に対して、可視性の値を「設定値」フィールドで設定します。
    • variable に対して、「選択」をクリックし、ヒューマン・サービスで定義されている、どの場合に可視性値が適用されるかを決定する変数を選択します。
    • condition に対して、変数値で使用される比較のタイプを選択します。
    • value に対して、可視性値の適用をトリガーする変数値を入力します。
    チームの場合、ルールの形式は visibility membership teamです。 チームのメンバーシップに基づく可視性ルールを作成するには、以下のステップを実行します。
    • visibility に対して、可視性の値を「設定値」フィールドで設定します。
    • membership に対して、チームにおけるユーザーのメンバーシップ・タイプを選択します。
    • team に対して、ユーザーが属しているチームを選択します。

    変数値またはチーム・メンバーシップをルールに追加するには、 追加をクリックします。 これ以降、クリックするたびに、変数値またはチーム・メンバーシップが追加されます。 1 つのルール内に複数の変数またはチーム・メンバーシップが存在する場合は、それぞれが相互に AND 関係を持つことになります。 すなわち、それらすべてが、適用されるルールに当てはまる必要があります。

  4. 必要に応じて、さらにルールを作成します。
  5. セーブ または 編集の終了をクリックする。
スクリプトによる設定
「スクリプト」を選択し、可視性スクリプトを作成します。
  1. 「選択」をクリックします。
  2. スクリプトの実行をトリガーするローカル変数を 1 つ以上選択します。
  3. フィールドに JavaScript コードを入力します。
    このコードには、以下のパラメーターを使用することができます。
    パラメーター 説明
    context context パラメーターには、context.bpm.systemcontext.bpm.team.member、および context.bpm.team.manager のデータが含まれています。 system オブジェクト、member オブジェクト、manager オブジェクトは、view.context オブジェクト内で同じ名前を持つオブジェクトと同一のオブジェクトです。
    注意: スクリプトがチーム・メンバーシップを検査し、複数のチームが ワークフロー自動化 とその従属ツールキットで同じ名前を持つ場合、それらのチームのメンバーシップは同じでなければなりません。 チーム・メンバーシップが同じでない場合は、スクリプトではなくルールを使用して可視性を設定してください。
    event event パラメーターには、initialize または change イベントのデータが含まれています。 フレームワークは、ページの初期化時に、initialize イベント (type: "initialize") を使用して可視性スクリプトを呼び出します。 また、監視対象変数のいずれかが変更されると、change イベント (type: "change") で可視性スクリプトを呼び出します。 change イベントは、change() イベント・ハンドラーによって処理されるイベントと似ていますが、以下の追加のプロパティーを持っている点が異なります。
    • type: "change" or "initialize"
    • path: fully qualified path to the variable that changed 例えば、 "local.employee.phoneNumber[2].areaCode" と入力します。
    local local パラメーターには、ページで使用できるすべてのヒューマン・サービス変数が格納されます。 例えば、local.get("employee").get("phoneNumber").get(0).get("type") などの呼び出しを使用して、変数値を取得することができます。

    JavaScript では、各戻り値が REQUIREDEDITABLEREADONLYNONEDEFAULTHIDDEN のいずれかの値を持つストリングでなければなりません。

    ユーザーがこれらの監視対象変数のいずれかの値を変更すると、結果として生じた変更イベントにより、スクリプトが実行されます。 例えば、ユーザーが MyDrink ブランドから tea を選択したときに、ユーザー・インターフェースにビューを表示させる場合を考えてみます。 営業チームのユーザーは、ビューを編集することができます。 このサービスには Drink 変数と Brand 変数があります。 この場合、これらの変数を選択して、以下のコードをフィールドに追加します。
    if(local.get("brand") == "MyDrink" && local.get("drink") == "Tea") {
    	if(context.bpm.team.member.indexOf("SalesTeam") != -1) {
    		return "EDITABLE";
    	} else {
    		return "READONLY";
    	}
    } else {
    	return "NONE";
    }
  4. セーブ または 編集の終了をクリックする。