3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

outsystemsで、処理の回数を指定してループ(For Each)を回したい

Last updated at Posted at 2019-11-06

やったこと

outsystemsで、処理の回数を指定してループを回す方法を2通り考えてみた

記事を書こうと思ったきっかけ

処理したいリストがあるわけではなく、「単純に5回だけループを回したいんだよなあ」って時に、
image.png
こいつではできないので(引数にRecordListが必要だから)ちょっと悩んだからです

以下、1を5回足すという単純な例で説明していきます

パターン1

if文で実装する
image.png

これは「フローチャート for文」でググるとすぐにわかりました
たまにoutsystemsの実装でわからなくなったら、「フローチャート」で検索したりします

パターン2

以下のように、指定した幅の連番が格納されるリストを生成するアクション(Rangeアクション)を作って、その戻り値をFor Eachに渡す

image.png

連番を生成するアクションを以下のように作りました(こっちは結局if文でループさせているんですけどね)
image.png

個人的にはパターン2のほうが読みやすいですが、人によるんでしょうかね?
でもパターン2だと速度が遅くなりそう…
(追記) 実行時間を比較してみた

あと、パターン1だと、iの足し忘れとか条件の書き間違いによる無限ループが怖いです(私は絶対にやる自信があります)

注意すること

パターン2での話ですが、RecordListの引数のところで、以下のような渡し方をしてしまうと、
image.png
一回ループが回る毎に、このRangeアクションが実行されてしまって無限ループに陥ります
こういう実装ができないようにするためにも、RangeアクションのFunctionプロパティはNoにしといたほうがいいかもしれません
image.png

そもそも

私が知らないだけで、for文のもっといい書き方があるかもしれません
知ってる人がいたら教えてほしいです

3
5
4

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
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?