0
0

外部システム連携に役立つ!kintoneアプリのフィールド名とIDを取得して一覧化するスクリプト

Last updated at Posted at 2024-07-25

課題

kintoneで外部システムとの連携を設定するときなどに、
外部システムでフィールドIDだけで表示/指定することがあるが、
IDを英数字で設定している場合、ぱっと見ではそれが何を表しているか分からない。
(自分で付けたものの130個以上あったので私は覚えきれない…)

しかし、kintone上のGUIで下記のように1個1個確認していくには大変すぎる。
他人に共有するのも大変だし。。。

そのため、フィールド名とフィールドIDが並んだ一覧を取得したい。
(ついでに、チャットGPTにID名を含むSQLを書かせたい)
JavaScriptを使ってかんたんに取得できる方法を記載していく。

事前準備(必要なパッケージのインストール) ※初回のみ

ターミナルから必要なパッケージをインストールしておく

npm install axios json2csv

取得用コードの作成

以下のコードを新しいJavaScriptファイルとして作成してください。
なお、subdomain、appId、apiTokenの値は対象のアプリのものに変更してください。

getKintoneFieldsToCSV.js
const axios = require('axios');
const { Parser } = require('json2csv');
const fs = require('fs');

const subdomain = 'subdomain'; // 対象kintoneサブドメインを指定
const appId = 'app-id'; // 対象アプリIDを指定
const apiToken = 'api-token'; // 対象アプリで作成したAPIトークンを指定

const url = `https://${subdomain}.cybozu.com/k/v1/app/form/fields.json`;

// フィールド情報を取得し、CSVに書き出す関数
async function fetchAndExportFields() {
    try {
        const response = await axios.get(url, {
            headers: { 'X-Cybozu-API-Token': apiToken },
            params: { app: appId }
        });

        const fields = response.data.properties;
        const csvData = Object.keys(fields).map(fieldCode => ({
            "Field Name": fields[fieldCode].label, 
            "Field ID": fieldCode 
        }));

        // フィールド名で昇順にソート
        csvData.sort((a, b) => a["Field Name"].localeCompare(b["Field Name"]));

        // JSONデータをCSVフォーマットに変換
        const json2csvParser = new Parser({ fields: ["Field Name", "Field ID"] });
        const csv = json2csvParser.parse(csvData);

        // CSVファイルに書き込む
        fs.writeFileSync('kintone_fields.csv', csv);
        console.log('CSV file successfully written: kintone_fields.csv');

    } catch (error) {
        console.error('Error:', error);
    }
}

// 関数を実行
fetchAndExportFields();

完了したらデスクトップなどのわかりやすい場所に、
「getKintoneFieldsToCSV.js」という名前で保存します。

実行

まず、先ほど設定したJavaScriptと同じディレクトリまで移動する
下記はデスクトップに移動するコマンド

cd ~/Desktop

移動後、下記を入力し、JavaScriptを実行

node getKintoneFieldsToCSV.js

問題なく完了すれば、
デスクトップ上にkintone_fields.csvという名前で、
フィールド名とフィールドIDの一覧のCSVが生成されるので確認する

image.png

応用

これをチャットGPTなどのAIにUPして学習させれば、
つどアルファベットのIDを記載することなく、フィールド名でSQLを書かせられるので、
IDの確認方法だけでなく、分析用クエリの制作にも有用である。

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0