こんにちは。伴走ナビでkintoneの構築・お客様の伴走支援しています!伴走ナビの鍋島です!
この記事にたどり着いたみなさんの中には
「kintoneで売上管理をする際にループ処理は出来ないの?」
「ループ処理をするためにどのようにアプリをつくればいいか知りたい!」
という悩みを抱えている方が多いのではないでしょうか?
実際にkintoneではループ(繰り返し)処理がデフォルトではできません。しかしながらプラグインを活用したカスタマイズをおこなうことで、疑似的なループ処理が可能になります。
そこで本記事ではkrewDataを使った疑似的なループ処理をおこなう方法について紹介します。これまで200件以上のkintone改修に携わった知識を活かして分かりやすく解説するので、ぜひ最後まで読んでみてくださいね!
🔳この記事でわかること
・kintoneでループ(繰り返し)処理を行う方法
・ループ処理が有効活用できる場面について
・kintoneで疑似的なループ処理の実例と手順
🔳こんな人におすすめの記事です
・kintoneでループ(繰り返し)処理を行いたい方
・ループ(繰り返し)処理の活用例や実際の手順を知りたい方
・krewDataの活用例を知りたい方

そもそもループ処理(繰り返し処理)とはなに?
まずはそもそも「ループ処理とは何ぞ?」という方向けに調べてみたところ、下記のような記載が見つかりました。
ループ[loop]とは指定条件が満たされるまで何度も繰り返し行われる処理のこと。なお、終了条件の指定や次の命令を実行させないと、繰り返しの実行が続き、次の動作に移れない状態を無限ループという。ループとは:loop – IT用語辞典・Web制作用語集
ざっくり言えば、同じことを何度も繰り返す処理、のことです。今回の記事では指定した回数分のレコードを作成する、という処理を行っています。
ループ処理(繰り返し処理)の活用事例
ループ処理の意味は理解できたかと思いますが、実際にどんな場面に使えるの?という方のために活用事例を紹介します。
例えば、保険営業の売り上げ成績を管理する場合をイメージしてみましょう。
月額10,000円の自動車保険を年払いで契約いただいたとします。年払いなので一括で120,000円が入金されるのですが、月額10,000円の商品なので毎月10,000円×12ケ月という形で計上しなければならず、手入力で対応するというケースがあるかと思います。
このようなケースは手間や入力ミスに繋がるため、管理するシステムに「売上120,000円」「1年間」と入力したら自動で毎月10,000円が自動計上されるのが理想的なのです。
その他にも、サブスク契約のように「解約日の日付までは毎月○○円の売り上げが計上される」というような場合も同様に動いてほしいという要望が多々あるのです。
そこで自動的に繰り返し計上される設定を実現する方法を、この記事で解説していきます。
kintoneでループ処理を実現するには?
今回の記事ではkrewDataリアルタイム実行プランを活用して指定した回数分のレコードを作成する、という処理で要望を満たす動きを実現しています。
(組んでいる動きが厳密なループ処理とは違うので、ループ処理に似せた動き、ということでタイトルには「疑似的な」という表現を間に挟んでいます。)
さて、プログラミングの感覚に近いとよく言われるkrewDataですが、ループ処理(繰り返し処理)を組むことが出来ません。
しかしながら、実務的にループ処理が欲しい場面は多々ありますし、ループ処理が可能になればkintoneカスタマイズの幅が広がると思うので、何とかループ処理(の様な動き)を組んでみよう、と取り組んでみました。
ラジカルブリッジ様のkrewDataでkintoneに存在しないレコードを生成する方法を参考にさせていただいています。
タイムカードや売上管理のような、ある程度決まった数(1か月分の1日単位レコードの生成/1年分の1か月単位のレコードを生成)を作る方法についてはリンク先のラジカルブリッジ様の方法で処理可能ですので、私はレコード内の任意の数値フィールド(または計算フィールド)の値の回数だけ処理を行う、という形でのkrewDataフローの設定例をお見せします。
疑似的ループ処理の実例紹介|デモアプリの説明
今回は私がデモとして作成した、社内の大型備品の予約管理アプリを使って動きを説明していきます。
左の予約アプリのレンタル期間始をα、レンタル日数をnとして
krewDataにより、日付の値が「α,α+1,α+2,……,α+n-1」となるn個のレコードを右の予約一覧表アプリに作成するフローを作成します。
余談ですが、左の予約アプリに表示されている「予約する」ボタンは、ジョイゾー様のkrewData手動実行プラグインを使っています。このボタンを押すことでkrewDataが稼働します。オススメ。

なお、本筋に関係ない話ですが、右のアプリのレコードは、通常、krewSheetを用いて下記のような形で表示されるように設定してあります。
予約者によってセルの色を変更できます。

疑似的ループ処理の実例紹介|具体的な設定手順
制御アプリを作成する
ループ処理を制御するためのアプリとなります。ループの上限回数を決めるために使っています。必要な項目としては、重複禁止かつ必須にした数値フィールドだけで大丈夫です。
※サンプルでは日付フィールドも作っていますが、krewDataフロー簡略化のために作っているだけなので、制御的には不要なフィールドです。

制御アプリのレコードを作成する
制御アプリにレコードを作ります。1~任意のループ上限回数までの数値を入力したcsvを作成し、先ほどのアプリに取り込みましょう。
今回は最大で5年分まで予約できる想定で作っているので、365*5=1825レコードほど作成しています。
最大10回のループであれば1から10までの10レコードを作成する、という様に作成するレコード数は、利用シーンに合わせて調整してください。

krewDataを設定する
krewDataの全体図としては、このようになっています。各コマンドの内容は、この後で説明します。

入力アプリの設定
入力アプリの設定にはパラメータ設定を使用します。パラメータを使用しているので、krewDataはリアルタイム実行プランが必要になります。
パラメータの使い方については、krewData パラメータをご確認お願いします。
まず、制御アプリからの入力は、このように設定してあります。今回はこの設定により、1825レコード中の3レコードのみ取得しています。

次に、レンタル機器使用予約アプリ(krewData疑似ループ処理) 以下、予約アプリの入力については、このように設定してあります。パラメータを使うことで、krewData稼働のきっかけとなった1レコードのみを取得できます。

定数の追加コマンドの設定
定数の追加については上下2つのコマンドで全く同じ内容で組んであります。
次のアプリ結合コマンドでキーとなる項目が欲しいので、「結合キー」などのフィールド名で、保存する定数には全く同じ値を入力してください。

ここまでの設定でプレビューを確認すると、このようになっています。
今回のプレビューでは、n=レンタル日数=3ということで3レコード取得しています。

アプリ結合コマンドの設定
アプリ結合では、先ほど定数の追加コマンドで設定した結合キーを使って結合します。
これにより、プレビューの様に、予約アプリから入ってきた1レコードが3レコードに増えます。

データ編集コマンドの設定
ループ処理の肝、α,α+1,α+2,α+3,……,α+nという処理をここで行っています。プレビューは見やすくなるよう、必要な項目だけをフィールド選択で取り出しています。
レンタル期間始に制御番号が加わった日付が生成されていることがわかります。
最後のコマンドでは、日付が本来必要な日付+1日されているので、-1日して調整しています。
今回のデータ編集コマンドは、日付編集を使って処理していますが、Excel等で馴れている方は数式を使って処理する方が簡単だと思います。1コマンドで完結しますし。

まとめ|krewDataを活用した疑似的ループ処理でアプリ作成の幅を広げよう!
本記事では、以下について解説しました。
- そもそもループ処理とはなにか
- ループ処理が有効活用できる場面について
- krewDataリアルタイム実行プランを活用した疑似的なループ処理の実例と手順
について解説してきました。今回紹介した方法を参考に、自社にとって負担になっている作業を軽減できれば嬉しいかぎりです。
また、アプリの応用発展例としてフォームブリッジ等と組み合わせて、貸会議室等の予約管理アプリを作ってみるのも良いかもしれません。また、最終的な表示についてもカレンダー表示系のプラグインと合わせることで少し違った表示ができそうだな、なんて妄想していたりもします。
私はこんなアプリに使ってみたよ!という実例があれば、ぜひコメントにて教えてください!
みなさんのコメントが今後の私のモチベーションアップにつながります。
それでは、よきkintoneライフを。
機能から探す
-
外部サービス連携
ASTERIA WARP Core Adobe Sign連携プラグイン AppsME BIZTELコールセンター BizteX Connect BizteX Connect kintone × Google Workspace コネクタ BizteX Connect kintone × M365 コネクタ BizteX Connect kintone × OpenAI コネクタ BizteX Connect kintone × Slack コネクタ BlueBean BowNow Box for kintone CData Drivers for kintone CLOUDPAPER CTIコネクテル for kintone ClimberCloud外部連携オプション CloudGate UNO Coopel(クーペル) DBHUB for kintone & Google ドライブ DataSpider Servista kintoneアダプタ Dropbox for kintone Dropbox for kintone 2.0 Dropbox for kintone Premium Eight Team×kintone連携プラグイン GMOサイン × RepotoneU Pro連携プラグイン Googleカレンダー双方向連携プラグイン Great Sign × kintone コネクター HENNGE One HelloSign for kintone JSEdit for kintone KAIZEN PDF Premium KAIZEN SIGN KAIZEN board Kairos3 × kintone コネクター LITONE for kintone MakeLeaps kintone連携オプション MiiTel×kintone連携プラグイン PCA商魂 B2クラウド 送り状連携 Reckoner SATORI×kintone連携プラグイン SHANON CONNECT kintone コネクタ SMS送信プラグイン Sansan for kintone Shopify×kintone連携プラグイン Teams向けメッセージ送信プラグイン TēPs Unifinity X-point Cloud(エクスポイントクラウド) Zendesk for kintone freeeサイン freee連携kintoneプラグイン freee連携プラグインセット kincone(キンコン) kintone for LINE WORKS【チャット登録機能】 kintone for LINE WORKS【通知機能】 kintone×マネーフォワードクラウド請求書連携 monday.com × kintone コネクター sansan with kintone smart at message おりこうブログAI(kintone 連携オプション) おりこうブログDX カイクラ kintone連携 ガリバー商談管理 on kintone ガルキンワークフロー連携プラグイン クライゼル クラウドサイン MAKE クラウドサイン連携アプリ ストレージコネクト マネーフォワード for kintone マネーフォワード ケッサイ for kintone メディアSMS for kintone メールワイズ メール送信プラグイン レッツ原価管理Go2連携ツール 契約書管理 on kintone 楽楽B2B for kintone 楽楽明細 for kintone 配配メール×kintone連携プラグイン -
帳票出力
-
UI改善(操作性向上)
ATTAZoo + Boost! Attachment Boost! Cascade Boost! Linkage Boost! Spread Boost! Style BulkReuse EMログ Excel読み込みプラグイン FUプラグインセレクト Googleヒートマッププラグイン KAIZEN サブスク債権管理プラグイン KAIZEN 郵送代行プラグイン KAIZEN一覧列固定表示プラグイン KAIZEN必須入力指定プラグイン KAIZEN関連レコードテーブルコピープラグイン KASIKA for kintone MTG効率化プラグイン QRコード読み取りプラグイン Runbook Spreadsheetプラグイン URLエンコードプラグイン benry gusuku Customine(カスタマイン) kinkozi kintone アプリ一覧プラグイン kintone スプレッドシートプラグイン kintoneタブ表示プラグイン kintone独自ルックアップ画面プラグイン kintone表記ゆれ変換プラグイン kintone計算式プラグイン kinveniシリーズQR・バーコード読み取り krewSheet smart at tools for kintone Excel いいね!プラグイン お手軽アクセス数記録プラグイン こだわりkintone ふりがな取得プラグイン みえる、PDF アプリアクションプラグイン アプリ一覧表示プラグイン アプリ内ルックアッププラグイン アプリ間コピープラグイン アプリ間レコードコピープラグイン アプリ間レコード一括コピープラグイン アプリ間レコード一括更新プラグイン アプリ間レコード更新プラグイン アプリ間レコード集計プラグイン アプリ間更新プラグイン イチランプラグイン エラーフィールド入力促進プラグイン カテゴリー別アプリ一覧表示プラグイン コピーボタン設置プラグイン コメント欄非表示プラグイン サブテーブルソートプラグイン サブテーブルルックアッププラグイン サブテーブル操作プラグイン サブテーブル行コピープラグイン サブテーブル集計プラグイン サブ画面表示kintoneプラグイン サムネイル一覧表示プラグイン ステータス連動必須フィールド設定プラグイン タイムテーブル表作成プラグイン タブ区切りプラグイン タブ表示プラグイン タブ表示プラグインPro ツリー構造一覧表示プラグイン ツールチッププラグイン テキスト検出プラグイン テーブルへのコピープラグイン テーブルデータコピープラグイン テーブルデータ一括編集プラグイン テーブルデータ一括表示プラグイン テーブルデータ一括転送プラグイン テーブルデータ転送プラグイン テーブルフィールドコピープラグイン テーブル一覧表示プラグイン テーブル内フィールド計算プラグイン テーブル拡張プラグイン テーブル明細行レコード分割プラグイン テーブル編集ビュープラグイン テーブル行列変換プラグイン テーブル行自動追加プラグイン テーブル複数行初期表示プラグイン テーブル設定プラグイン データ同期プラグイン トーニチ・ネクスタ・メイシ ドラッグスクロールプラグイン ドロップダウン絞り込みプラグイン バーコードでPi!kintoneプラグイン バーコード読み取りプラグイン フィールドデータコピープラグイン フィールドレイアウト数値変更プラグイン フィールド・ステータス一括更新プラグイン フィールド制御プラグイン フィールド情報/データ一括更新プラグイン フィールド結合プラグイン フィールド遷移キー追加プラグイン フィールド非表示プラグイン フルスクリーンプラグイン プロセス毎の入力必須プラグイン プロセス管理プラグイン プロセス管理履歴記録Proプラグイン ポータル内アプリ表示プラグイン ユーザー/組織/グループ属性取得プラグイン ユーザー連動ルックアッププラグイン リンク先別タブ表示プラグイン ルックアップ/階層区分対応ドロップダウン変換プラグイン ルックアップアプリ表示プラグイン ルックアップコピーフィールド検索プラグイン ルックアップコピー元登録プラグイン ルックアップコピー先反映プラグイン ルックアップデータ変換プラグイン ルックアッププラグイン ルックアップレコードコピープラグイン ルックアップ元追加・更新プラグイン ルックアップ内サブテーブルコピープラグイン ルックアップ動的絞り込みプラグイン ルックアップ反映プラグイン ルックアップ編集登録プラグイン ルックアップ階層別一覧表示プラグイン レコードデータコピー(メール転記)プラグイン レコードページのリンクコピープラグイン レコード一括操作プラグイン レコード一括更新プラグイン レコード一覧計算プラグイン レコード同時編集確認プラグイン レコード連続編集プラグイン レコード連続追加プラグイン レコード重複チェックプラグイン ログインユーザー連動各種設定プラグイン ワンボタン入力プラグイン 一覧テキスト絞り込み検索プラグイン 一覧レコード一括更新/クリアプラグイン 一覧レコード集計コピープラグイン 一覧個別指定プラグイン 一覧画面でコメント閲覧プラグイン 一覧画面で文字列複数行改行プラグイン 一覧画面印刷プラグイン 一覧画面編集プラグイン 一覧集計プラグイン 予実管理プラグイン 他画面ポップアップ表示プラグイン 住所/緯度経度変換プラグイン 住所自動入力プラグイン 入力ヒント表示プラグイン 入力フィールドマスクプラグイン 入力値チェックプラグイン 入力制御プラグイン 入力規制・自動変換プラグイン 全角不許可フィールド値変換プラグイン 再利用フィールド指定プラグイン 再利用レコード初期化プラグイン 写り込みぼかし加工プラグイン 削除レコード復元プラグイン 前年対比プラグイン 勤務シフト表/出勤簿作成プラグイン 印刷設定プラグイン 印鑑押印プロセス連携プラグイン 各種ユーザー情報編集プラグイン 各種月次集計プラグイン 吹き出しメッセージ表示プラグイン 和暦・年齢変換プラグイン 在庫管理プラグイン 変更通知プラグイン 定例レコード一括生成プラグイン 実行時エラー捕捉プラグイン 希望調査振り分けプラグイン 年度記録プラグイン 年齢算出プラグイン 感情分析プラグイン 手書き/画像編集プラグイン 手書き2プラグイン 承認一覧プラグイン 文字列編集・連結プラグイン 文字変換置換プラグイン 文字結合プラグイン 新デザイン版 条件書式プラグイン 既読チェックプラグイン 日付→曜日変換プラグイン 日付フィールド入力補助プラグイン 日付プラグイン 日付印生成プラグイン 日付変換プラグイン 日付計算プラグイン 明細行追加プラグイン 曜日計算プラグイン 書式設定プラグイン 条件付き入力制御プラグイン 条件分岐フィールド非表示プラグイン 条件分岐処理プラグイン 検索拡張プラグイン 横断検索プラグイン 機能拡張スタンダード All-In 法人番号検索プラグイン 添付ファイル一括ダウンロードプラグイン 添付ファイル表示プラグイン 画像位置情報取得プラグイン 監査用詳細ログ出力プラグイン 祝日名取得プラグイン 移動平均集計プラグイン 簡単検索プラグイン 簡単検索ボックスプラグイン 簡単検索ボックス・プラグイン 簡易スクロールプラグイン 自動全角⇔半角変換プラグイン 自動車検査登録情報検索プラグイン 自己紹介プラグイン 複数レコードサブテーブル化プラグイン 複数レコードテーブル作成プラグイン 複数日付選択カレンダープラグイン 複数条件フィルタリングプラグイン 複数選択系フィールド階層化プラグイン 評価スコア計算プラグイン 語彙検索/翻訳プラグイン 課税区分別消費税算出プラグイン 連続利用時間制限プラグイン 選択絞込みプラグイン 選択肢絞り込みプラグイン 選択項目値アプリ化プラグイン 郵便バーコード生成プラグイン 郵便番号検索プラグイン 都道府県/市区町村/町名/郵便番号変換プラグイン 関連サブテーブル一覧表示プラグイン 関連フィールドデータ一括取得プラグイン 関連レコード⇒サブテーブル登録プラグイン 関連レコードからテーブル登録プラグイン 関連レコード一覧フィールド集計プラグイン 関連レコード拡張プラグイン 関連レコード集計プラグイン 階層タブプラグイン 項目選択フィールド連動各種設定プラグイン -
会計システム・請求
-
勤怠・給与
-
その他