kintone

kintoneアプリのフィールドコード一覧を取得するブックマークレット

kintone REST APIを使うときなど、フィールドコードが必要となる場面は多くありますが、フィールドコードを確認するためにわざわざフォームの編集画面を開いてフィールドの設定を開いて…というのは非常に面倒くさいです。

そこで、一覧画面のソースコードを眺めていたところcybozuオブジェクト以下にフィールドコードらしい記述を見つけたので、これを活用することにしました。

cybozu.data.page.FORM_DATA = {
    "deployedFields": [
        "2051",
        "2052",
        "2053",
        "2054",
        "2055",
        "2056",
        "2057",
        "2058",
        "2062",
        "2063",
        "2064",
        "2065",
        "2066",
        "2067",
        "2068"
    ],
    "layout": "[{\"id\":null,\"type\":\"ROW\",\"isSubTable\":false,\"var\":null,\"label\":null,\"controlList\":[{\"isVirtical\":true,\"type\":\"SINGLE_LINE_TEXT\",\"styleMap\":{\"width\":193},\"label\":\"氏名\",\"var\":\"氏名\"},{\"isVirtical\":true,\"type\":\"SINGLE_LINE_TEXT\",(中略){\"width\":308},\"label\":\"会社名\",\"var\":\"会社名\"}]}]",
    "lookups": [],
    "referenceTables": [],
    "revision": "3",
    "schema": {
        "groups": [],
        "revision": "5",
        "subTable": {},
        "table": {
            "fieldList": {
                "2051": {
                    "id": "2051",
                    "label": "レコード番号",
                    "properties": {
                        "noLabel": "false",
                        "required": "true"
                    },
                    "type": "RECORD_ID",
                    "var": "レコード番号"
                },
                "2052": {
                    "id": "2052",
                    "label": "更新者",
                    "properties": {
                        "noLabel": "false",
                        "required": "true"
                    },
                    "type": "MODIFIER",
                    "var": "更新者"
                },
                (中略)
          },
            "id": "1",
            "label": "__ROOT__",
            "properties": null,
            "var": "__ROOT__"
        }
    }
};

「cybozu.data.page.FORM_DATA.schema.table.fieldList」オブジェクト以下にもフィールドコードをはじめとした様々な情報が含まれているようですが、それよりも気になったのが「cybozu.data.page.FORM_DATA.layout」です。

JSONなのでcontrolList内にある、フィールドコードと思われる「var」の値を簡単に取得できそうです。

[
    {
        "id": null,
        "type": "ROW",
        "isSubTable": false,
        "var": null,
        "label": null,
        "controlList": [
            {
                "isVirtical": true,
                "type": "SINGLE_LINE_TEXT",
                "styleMap": {
                    "width": 193
                },
                "label": "氏名",
                "var": "氏名"
            },
            {
                "isVirtical": true,
                "type": "SINGLE_LINE_TEXT",
                "styleMap": {
                    "width": 193
                },
                "label": "氏名(ひらがな)",
                "var": "しめい"
            }
        ]
    },
    (中略)
    {
        "id": null,
        "type": "ROW",
        "isSubTable": false,
        "var": null,
        "label": null,
        "controlList": [
            {
                "isVirtical": true,
                "type": "SINGLE_LINE_TEXT",
                "styleMap": {
                    "width": 308
                },
                "label": "会社名",
                "var": "会社名"
            }
        ]
    }
]

さっそく確認用に書いたコードが下記になります。

if (typeof (cybozu.data.page.FORM_DATA.layout) === "string") { o = JSON.parse(cybozu.data.page.FORM_DATA.layout) } else { o = cybozu.data.page.FORM_DATA.layout }; o.map(v => { v.controlList.map(c => { console.log(c.var) }) });

画面によってはlayoutがstringだったりobjectだったりと違いがあったので、stringの場合はJSON.parse()しています。

デベロッパー ツールのコンソールで実行した結果が下図の通りで、これを見る限りでは上手くフィールドコードが取得できていそうです。

ただ、毎回コンソールを開いてコードを実行するのも面倒くさいので、簡単なブックマークレットを作ることにしました。
各フィールドコードを「;」で区切った文字列をプロンプト表示するだけの簡単なスクリプトです。

ブックマークレットの使い方は過去に書いた記事をご参照ください。

上記ブックマークレットを一覧画面や詳細画面で実行すると、下図のようにフィールドコード一覧がプロンプト表示されます。表示されたフィールドコードをコピーできるので、メモ帳等にペーストして自由に使うことができます。

ただし、公開されているAPIでは無いので、今後のkintoneの仕様変更によっては動作しなくなる可能性がありますので、その点は十分にご注意ください。

2023年10月の人気記事前のページ

ジャパンバードフェスティバル2023に行ってきたよ。次のページ

関連記事

  1. Windows 10

    【2017年4月版】Microsoft Edgeで開いているページを名前を付けて保存する方法

    2015年8月に、Microsoft Edgeで開いているページを名前…

  2. kintone

    kintone hive tokyo vol.9に参加しました。

    2019年6月20日(木)に豊洲PITで開催された、「kintone …

  3. ブックマークレット

    ページのタイトルを取得するブックマークレット

    表示中のページのタイトルを取得するブックマークレットを作ってみました。…

  4. Power Automate for desktop

    APIを使ったkintoneとPower Automate for desktopの連携(2)

    前回の記事ではkintone REST APIを使ってPower Au…

  5. Power Automate for desktop

    APIを使ったkintoneとPower Automate for desktopの連携

    前回の記事でkintone 開発者ライセンスの取得方法を紹介したので、…

  6. ブックマークレット

    ブックマークレットの登録方法

    今回はブックマークレットをブラウザへの登録する方法を紹介します…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP