🧩 はじめに
kintoneカスタマイズをしていると、
「毎回同じ処理を書いてるな…」という場面、多くありませんか?
本記事では、「1行で呼び出せる軽量関数(スニペット)」 を10個まとめて紹介します。
開発現場での再利用性と読みやすさを意識した、“構造的なJS開発” の一歩目です。
🧱 1. Snippets概要(sample10個)
| ファイル名 | 機能概要 | 主な用途 |
|---|---|---|
basic-utility.js |
RESTショートカット・文字列エスケープ・ログ関数 | API呼び出しの共通基盤 |
get-all-records.js |
カーソル自動フォールバック付きレコード取得 | 100件超のデータ取得に対応 |
like-from-today.js |
FROM_TODAY() 風日付関数 |
日付の加算・減算を簡単に |
matches.js |
条件評価ユーティリティ | equals / includes / regex 等 |
normalize-phone.js |
電話番号の正規化 | 全角→半角&ハイフン除去 |
record-count.js |
件数取得 | 重複チェックや総数確認に |
require-either.js |
「どちらか必須」バリデーション | AかBどちらか入力必須に |
run-all-lookups.js |
ルックアップ自動再取得 | 複数ルックアップを一括実行 |
spinner.js |
シンプルなローディング表示 | 非同期処理中のUI表示に |
toast.js |
右下通知(非モーダル) | 軽量通知・完了メッセージ用 |
⚙️ 2. コアユーティリティ
🧰 basic-utility.js
共通で使える3つの便利関数:
// REST APIショートカット
const API = (path, method, body) =>
kintone.api(kintone.api.url(path, true), method, body);
// クエリエスケープ
const qesc = (s) => String(s ?? '').replace(/\\/g, '\\\\').replace(/"/g, '\\"');
// ログ出力(ON/OFF切替)
const LOG = { enabled: true, d: (...a) => LOG.enabled && console.log('[TK]', ...a) };
💾 3. データ操作系
📦 get-all-records.js
カーソル自動切替で1万件でも安全に全件取得。
const records = await getAllRecords(appId, ['顧客名', '住所'], '部署 in ("営業")');
🔢 record-count.js
総件数をサクッと知りたいときに。
const dup = await countBy(appId, `顧客コード = "${code}"`);
if (dup > 0) alert('重複があります!');
📅 4. 日付・テキスト整形系
⏳ like-from-today.js
FROM_TODAY(3, 'DAYS') のような関数をJSで再現。
const threeDaysLater = fromToday(3, 'DAYS'); // → '2025-11-09'
📞 normalize-phone.js
電話番号の入力を統一!
normalizePhone('090−1234−5678');
// => "09012345678"
🧮 5. 条件判定・入力チェック系
⚖️ matches.js
多様な演算子に対応した条件評価ユーティリティ。
matches('equals', 'ABC', 'ABC'); // true
matches('includes', 'abc@example.com', 'example'); // true
matches('empty', ''); // true
🧩 require-either.js
どちらかのフィールドが必須、という条件を一行で。
const msg = requireEither(record, 'TEL', 'MAIL');
if (msg) event.error = msg;
🔁 6. レコード操作系
🔍 run-all-lookups.js
ルックアップを複数同時に再取得!
await runAllLookups(event.record, ['顧客コード', '商品コード']);
🎨 7. UI補助系
⏱ spinner.js
軽量スピナーUI。非同期処理の待ち時間に最適。
Spinner.show();
// 非同期処理...
Spinner.hide();
💬 toast.js
右下に“ふわっと出る”通知UI。
モーダルよりも邪魔にならないタイプです。
toast('保存が完了しました!');
🧠 8. 開発スタイル:「小さくまとめて、大きく使う」
このスニペット集の狙いは、「ロジックを構造化して再利用する」こと。
- 関数を小さく分ける
- 処理の意図を明確にする
- チーム全体で同じ“構文文化”を育てる
そうすれば、JSカスタマイズもプラグイン開発もずっと扱いやすくなります。
🚀 9. まとめ
“小さく、軽く、再利用できる”
— それが kintone Snippets Collection の思想です。
💡 kintone App Toolkitを使えば、kintone上で既存コードにSnippetsをワンクリックで挿入することができます。もちろん、そのままデプロイまで完了できます。