このドキュメントはAIによって翻訳されました。正確な情報については英語版をご参照ください。
現在の実行コンテキストから変数の値を非同期で読み取ります。変数のソースは SQL やテンプレート内の {{ctx.xxx}} の解析ルールと一致しており、通常は現在のユーザー、現在のレコード、ビューのパラメータ、ポップアップのコンテキストなどから取得されます。
| シーン | 説明 |
|---|---|
| JSブロック / JSフィールド | 現在のレコード、ユーザー、リソースなどの情報を取得し、レンダリングやロジックの判定に使用します。 |
| 連携ルール / イベントフロー | ctx.record や ctx.formValues などを読み取り、条件判断を行います。 |
| 数式 / テンプレート | {{ctx.xxx}} と同じ変数解析ルールを使用します。 |
| パラメータ | 型 | 説明 |
|---|---|---|
path | string | 変数のパス。必ず ctx. で始まる必要があります。ドット記法や配列のインデックス指定をサポートしています。 |
戻り値: Promise<any>。解析後の値を取得するには await を使用する必要があります。変数が存在しない場合は undefined を返します。
ctx.で始まらないパスを渡すと、エラーがスローされます:ctx.getVar(path) expects an expression starting with "ctx.", got: "..."。
| パス | 説明 |
|---|---|
ctx.record | 現在のレコード(フォームや詳細ブロックがレコードに紐付いている場合に使用可能) |
ctx.record.id | 現在のレコードの主キー |
ctx.formValues | 現在のフォームの値(連携ルールやイベントフローでよく使われます。フォームのコンテキストでは、リアルタイムな読み取りのために ctx.form.getFieldsValue() を優先して使用してください) |
ctx.user | 現在のログインユーザー |
ctx.user.id | 現在のユーザー ID |
ctx.user.nickname | 現在のユーザーのニックネーム |
ctx.user.roles.name | 現在のユーザーのロール名(配列) |
ctx.popup.record | ポップアップ内のレコード |
ctx.popup.record.id | ポップアップ内のレコードの主キー |
ctx.urlSearchParams | URL クエリパラメータ(?key=value から解析されたもの) |
ctx.token | 現在の API トークン |
ctx.role | 現在のロール |
現在のコンテキストで解析可能な変数の構造情報(型、タイトル、子プロパティなど)を取得し、利用可能なパスを確認しやすくします。戻り値は meta に基づく静的な記述であり、実際の実行時の値は含まれません。
戻り値の各キーは変数のパスであり、値はそのパスに対応する構造情報(type、title、properties などを含む)です。
| パラメータ | 型 | 説明 |
|---|---|---|
path | string | string[] | 抽出パス。指定したパス配下の変数構造のみを収集します。'record'、'record.id'、'ctx.record'、'{{ ctx.record }}' をサポートしています。配列を指定した場合は複数のパスが統合されます。 |
maxDepth | number | 最大展開階層。デフォルトは 3 です。path を渡さない場合、トップレベルの属性の depth は 1 となります。path を渡した場合、そのパスに対応するノードの depth が 1 となります。 |
| メソッド | 適用シーン | 説明 |
|---|---|---|
ctx.getValue() | JSフィールド、JSアイテムなどの編集可能なフィールド | 現在のフィールドの値を同期的に取得します。フォームへのバインドが必要です。 |
ctx.getVar(path) | 任意の RunJS コンテキスト | 任意の ctx 変数を非同期で取得します。パスは ctx. で始まる必要があります。 |
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() を優先的に使用してください。ctx.form.getFieldsValue() でフォームの値をリアルタイムに読み取り可能{{ctx.xxx}} - ctx.getVar('ctx.xxx') と同じ解析ルールを使用します