やったこと
outsystemsで、処理の回数を指定してループを回す方法を2通り考えてみた
記事を書こうと思ったきっかけ
処理したいリストがあるわけではなく、「単純に5回だけループを回したいんだよなあ」って時に、
こいつではできないので(引数にRecordListが必要だから)ちょっと悩んだからです
以下、1を5回足すという単純な例で説明していきます
パターン1
これは「フローチャート for文」でググるとすぐにわかりました
たまにoutsystemsの実装でわからなくなったら、「フローチャート」で検索したりします
パターン2
以下のように、指定した幅の連番が格納されるリストを生成するアクション(Rangeアクション)を作って、その戻り値をFor Eachに渡す
連番を生成するアクションを以下のように作りました(こっちは結局if文でループさせているんですけどね)
個人的にはパターン2のほうが読みやすいですが、人によるんでしょうかね?
でもパターン2だと速度が遅くなりそう…
(追記) 実行時間を比較してみた
あと、パターン1だと、iの足し忘れとか条件の書き間違いによる無限ループが怖いです(私は絶対にやる自信があります)
注意すること
パターン2での話ですが、RecordListの引数のところで、以下のような渡し方をしてしまうと、
一回ループが回る毎に、このRangeアクションが実行されてしまって無限ループに陥ります
こういう実装ができないようにするためにも、RangeアクションのFunctionプロパティはNoにしといたほうがいいかもしれません
そもそも
私が知らないだけで、for文のもっといい書き方があるかもしれません
知ってる人がいたら教えてほしいです