0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

kintone Snippets Collection:簡易関数でJS開発を効率化!

Posted at

🧩 はじめに

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をワンクリックで挿入することができます。もちろん、そのままデプロイまで完了できます。

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?