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. kintone

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

    2018年6月14日(木)開催のイベント「kintone hive t…

  2. ブックマークレット

    bitlyで短縮URLを取得するブックマークレット

    今回はbitlyで短縮URLを取得するブックマークレットを紹介します。…

  3. Windows 10

    Microsoft Edgeで開いているページを名前を付けて保存する

    2017/4/15 追記:現在この記事に書いてある方法は使えなくな…

  4. ブックマークレット

    Bingで期間指定検索するオプション 他

    Bingで期間指定検索するオプション 他Bingで検索するとG…

  5. Google関連

    [Google Apps Script]Google フォームとkintoneを連携させる方法(添付…

    前回の記事では、GASを使ってGoogle フォームで入力された回答を…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP