フィールド定義を取得(非同期)
概要
getFormFields 関数は、指定したアプリのフォームのフィールド定義を取得します。
REST API を経由するため非同期ですが、すべての画面(レコード一覧画面・ポータル画面を含む)で利用できます。
レコード詳細・作成・編集画面で、表示中のフォームの定義を同期的に取得する場合は フィールド定義を取得(同期) を使用してください。
getFormFields
構文
atPocket.app.getFormFields(appId);
引数
| 引数名 | 型 | 説明 |
|---|---|---|
| appId | number | アプリID。省略した場合は表示中のアプリを対象にします |
注意
ポータル画面など、表示中のアプリを特定できない画面では appId を省略できません。省略した場合は例外を送出せず、空のオブジェクト {} を返します。アプリ画面以外で使用する場合は appId を必ず指定してください。
戻り値
| 型 | 説明 |
|---|---|
| Promise<object> | フィールドUIDをキーにした定義のマップ。内容は フィールド定義を取得(同期) と同じです |
使用可能画面
- すべての画面
使用例
atPocket.events.on('app.record.index.show', async (event) => {
const map = await atPocket.app.getFormFields(event.appId);
Object.values(map).forEach((def) => {
console.log(def.fieldUid, def.label, def.type);
});
});
clearFormFieldsCache
取得したフィールド定義はアプリ単位でキャッシュされます。フォームの定義を変更した直後に再取得したい場合は、キャッシュを破棄してください。
構文
atPocket.app.clearFormFieldsCache(appId);
引数
| 引数名 | 型 | 説明 |
|---|---|---|
| appId | number | キャッシュを破棄するアプリID。省略した場合はすべてのアプリのキャッシュを破棄します |
戻り値
なし
使用可能画面
- すべての画面
使用例
atPocket.app.clearFormFieldsCache(10); // アプリID 10 のキャッシュを破棄
atPocket.app.clearFormFieldsCache(); // すべてのキャッシュを破棄