他人様の作成したkintoneアプリに手を加える必要が出た。
それはいいのだが、元アプリの構造には手を付けずに処理を追加しろとのお達し。
元々Customineで色々しているアプリなので、それに追記する形で作るかと色々考えたが、元の構造に手を付けないとすると、どうしても二重ループ処理が要る。要るんだけど、Customineで可能なのか?
やりたいこと「リストから要素を取り出す」でループ処理ができるなら二重ループもいけんじゃね? と希望的観測で作り始めて……結論から言うとできた。結構苦戦した。
ざっくり下記のような流れで二重ループが実現できた。
| No | やること | 条件 | アクション |
| 1 | 何らかの手段でレコードを取得する | ||
| 2 | リストから要素を取り出す (リスト=1) | いずれかのアクションの実行が完了した時 | 1,6 |
| 3 | 2をキーにしてレコードを取得する | リストから要素を取り出した時 | 2 |
| 4 | リストから要素を取り出す (リスト=3) | いずれかのアクションの実行が完了した時 | 3,5 |
| 5 | 4をキーにして何かする | リストから要素を取り出した時 | 4 |
| 6 | なにもしない | リストからの取り出しが終了した時 | 4 |
| 7 | ループ終了後の処理 | リストからの取り出しが終了した時 | 2 |
流れとしては、
- 1をリストデータとする(外側のループ)
- 2でリスト1から1件データを取り出す
- 3でそれを元に別のデータの塊を選択し、リストデータとする(内側のループ)
- 4でリスト3から1件データを取り出す
- 5でそれを元に何かする→4に戻る(リストがなくなるまで)
- リスト3がなくなったら2に戻る(リストがなくなるで2-5を繰り返す)
こんな感じ。
むしろハマったのは「リストから要素を取り出す」際のアクションの指定。
ここ、必ず「いずれかのアクション」を指定しないと、ループ自体が動きません。

コメント