ctx.getVar()
現在の実行コンテキストから変数の値を非同期で読み取ります。変数のソースは SQL やテンプレート内の {{ctx.xxx}} の解析ルールと一致しており、通常は現在のユーザー、現在のレコード、ビューのパラメータ、ポップアップのコンテキストなどから取得されます。
適用シーン
型定義
戻り値: Promise<any>。解析後の値を取得するには await を使用する必要があります。変数が存在しない場合は undefined を返します。
ctx.で始まらないパスを渡すと、エラーがスローされます:ctx.getVar(path) expects an expression starting with "ctx.", got: "..."。
よく使われる変数のパス
ctx.getVarInfos()
現在のコンテキストで解析可能な変数の構造情報(型、タイトル、子プロパティなど)を取得し、利用可能なパスを確認しやすくします。戻り値は meta に基づく静的な記述であり、実際の実行時の値は含まれません。
型定義
戻り値の各キーは変数のパスであり、値はそのパスに対応する構造情報(type、title、properties などを含む)です。
パラメータ
実行例
ctx.getValue との違い
JSフィールド内で自身のフィールドを読み書きする場合は getValue/setValue を使用し、他のコンテキスト変数(record、user、formValues など)にアクセスする場合は getVar を使用します。
注意事項
- パスは必ず
ctx.で始まる必要があります:ctx.record.idのように指定してください。そうでない場合はエラーがスローされます。 - 非同期メソッド: 結果を取得するには必ず
awaitを使用してください。例:const id = await ctx.getVar('ctx.record.id')。 - 変数が存在しない場合:
undefinedを返します。結果に対して??を使用してデフォルト値を設定できます:(await ctx.getVar('ctx.user.nickname')) ?? 'ゲスト'。 - フォームの値:
ctx.formValuesはawait ctx.getVar('ctx.formValues')を通じて取得する必要があります。ctx.formValuesとして直接公開されているわけではありません。フォームのコンテキストでは、最新の値をリアルタイムで読み取るためにctx.form.getFieldsValue()を優先的に使用してください。

