変数の理解
変数は、クライアントの状態を管理するための基本ビルディング・ブロックです。 これは特定のタイプで、特定のスコープに存在します。
変数は、Visual Builderユーザー・インタフェースとRESTサービス間のクライアントでの中間状態を格納します。 コンポーネントは主にこれらの変数にバインドされ、変数の動作はアクションによって管理されます。
変数の型にはプリミティブ型、構造型(他の型から構成可能)、動的型またはビルトイン・タイプを使用できます。
-
ページ・スコープ: 状態は、指定されたページのコンテキスト内でのみアクセス可能です。 すべての状態は、ページが入力されるとデフォルト値で初期化され、ページが終了すると破棄されます。
-
アプリケーション・スコープ: 州は、アプリケーションのすべての部分とすべてのページでアクセスできます。
-
フロー・スコープ: 状態は、現在のフローに含まれるすべてのページでアクセス可能です。
-
アクション・チェーンのスコープ: 状態は現在のアクション・チェーンでアクセス可能です。
変数の初期値は、変数に設定されているdefaultValueプロパティとその型を使用して決定されます。
定数はConstantsネームスペースの変数のタイプで、会社名や測定変換値など、時間の経過とともに変更する必要がない値を格納するために使用されます。 定数は他の変数と同様に型指定され、同じスコープでサポートされます。 ただし、他の変数とは異なり、初期化後に値を変更することはできません。 詳細は、Oracle Visual Builder Studioページ・モデル・リファレンスの定数に関する項を参照してください。
まだインスタンス化されていない変数値は定義されていません。 変数は、vbEnterイベントが発生する直前にインスタンス化され、初期値が設定されることが保証されます(「ページのライフサイクル」を参照)。
値が変更されると、変数がイベントを送出します。 このイベントは、アクション・チェーンを引き起こす可能性があります。 変数を入力パラメータとして定義し、その値をページまたはモジュールへの入力によって決定することができます。 これらの入力は、たとえば、ブックマーク用のURLパラメータとすることができます。
詳細は、『Oracle Visual Builder Studioページ・モデル・リファレンス』の変数に関する項を参照してください。
変数とパラメータの受け渡し
変数を使用して、ページ間でパラメータを渡すことができます。 ページ変数を入力としてマークし、ページに移動するためにページ変数が契約の一部になる方法を指定できます。 その後、必要に応じてさらにマークできます。つまり、ページにナビゲートするためには、これを設定する必要があります。
次の表に、変数の使用可能なプロパティを示します。
| プロパティ | 必須かどうか | 説明 |
|---|---|---|
type |
はい | 特定のプリミティブ・タイプ(文字列、ブール、数値など)、各フィールドがプリミティブか構造、動的タイプ(any)、ServiceDataProviderやArrayDataProviderなどの組込みタイプ(「組込み拡張タイプ」を参照)のいずれかである配列やオブジェクトなどの構造型。
|
input |
いいえ。プロパティがページ・スコープ内にある場合のみ適用されます | 変数が着信ナビゲーションのページ契約の一部になる方法。 値は、なし(デフォルト)、fromCaller (内部で渡されることを示す)、またはfromURL (URL経由で渡されることを示す)のいずれかです。
|
required |
いいえ | 変数を設定する必要があるかどうか |
defaultValue |
いいえ | 初期化する変数のデフォルト値。 デフォルト値が指定されていない場合、値は未設定または未定義です。 defaultValueは、式にバインドすることも、他の変数を参照する式を使用する構造にすることもできます。
|
persisted |
いいえ | 永続変数を使用して、定義されたスコープを超えて変数の存続期間を拡張します。 たとえば、セッション中に認可トークンを保持する場合は、ページがリフレッシュされた場合でも、このプロパティを設定して、トークンがセッション全体で使用可能であることを確認します。 次のように設定できます:
|
式
式は、定数、システム・プロパティ、静的などを含む他の変数を参照できます。 たとえば:
$variables.total = $variables.sum * (1 + $variables.taxRate)Visual Builderユーザー・インタフェースは、式の依存性分析を実行して式の評価を正しく順序付け、サイクルを検出します。
式で参照されている変数の値が変更されると、式は直ちに再評価されます。
式は、変数または定数のデフォルト値で使用できます。
$)が先頭に付加されます):
| 名前 | 入手可能な場所 | 説明 |
|---|---|---|
$application |
どこででも | Applicationオブジェクト |
$page |
現在のページ | 現在のページ・インスタンス |
$flow |
現在のフロー内 | 現行フロー・インスタンス |
$variables |
variablesプロパティを持つすべてのスコープ
|
現在のスコープ内の$most_specific_scope.variablesのショートカットです。 あるページで、$variablesは$page.variablesのショートカットです。
|
$chains |
chainsプロパティを持つすべてのスコープ
|
$most_specific_scope.chainsのショートカット |
$chain |
アクション・チェーンで実行されるアクション | 処理が実行されているチェーン |
$parameters |
beforeEnterイベント
|
ページの入力パラメータ。 このオブジェクトは、ページ変数がまだvbBeforeEnterイベントに存在しないために必要です。
|
$listeners |
フローまたはページ内 | フローまたはページのイベント・リスナー |
$event |
イベント・リスナーと変数onValueChangeリスナー
|
コンポーネントのイベント・リスナーの場合、$eventには、コンポーネントがリスナーに渡すEvent JavaScriptオブジェクトが含まれています。 カスタム・イベントのイベント・リスナーの場合、$eventにはそのイベントのペイロードが含まれます。 変数のonValueChangeリスナーの場合、$eventは、プロパティname, oldValue, valueおよびdiff (構造)を含む構造です。
|
$initParams |
どこででも | 式で使用できる宣言初期化パラメータ。 初期化パラメータ(またはinitParams)は早期に評価され、変数が存在する(たとえば、サービス宣言または翻訳バンドル・パス)前に評価される式で使用できます。 initParamsは、app-flow.jsonのconfigurationブロック内に定義されます。次に例を示します: |
変数とライフサイクル
アプリケーション変数とページ変数は、特定のアプリケーションまたはページのライフサイクル段階で自動的に構築されます。
ナビゲーション・ルールまたはURLに提供されるブックマーク可能な変数を使用して渡される入力パラメータは、対応する変数に自動的に割り当てられます。 ブックマーク可能な変数の値を変更すると、その新しい値と一致するようにURLが自動的に調整されます(つまり、新しい履歴状態がプッシュされます)。 このように、ページはいつもブックマーク可能であり、ブックマークするために特定のユーザー・アクションを必要としません。
変数とイベント
変数を変更すると、onValueChangedイベントがトリガーされます。 このイベントは、値が実際に変更された場合にのみトリガーされます。変数値を同じ値に設定してもイベントはトリガーされません。 変数を明示的に変更してイベントを送信する必要があります。 たとえば、変数が複合型の場合、内部プロパティを変更してもこのイベントは発生しません。API呼び出しを使用して変数全体を設定する必要があります。 この場合、フレームワークは変更された構造の部分をペイロードに追加できます。 たとえば、従業員の名前プロパティを変更してから従業員をリセットすると、フレームワークによって、従業員が変更されたイベントが送信され、ペイロードの一部として名前が変更されたことが示されます。
onValueChangedイベントは、ユーザー定義のアクション・チェーンを起動できます。 トリガーには変数の前と新しい値のペイロードがあります。
詳細は、「アクションとアクション・チェーンの理解」を参照してください。