0
0

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ループをしたい

Last updated at Posted at 2022-05-08

INDEX

  • 目的
  • 実装
  • あとがき

1. 目的

for (int i = 0; i < 10; i++) {
  // ループでやりたい処理
}

Javaでいう所のこんな処理をOutSystemsで実装したい!

image.png
…というのも、OutSystemsだとどうもこういうの↑しか無さそうなんですよねω
うちは既にあるリストをぶん回すんじゃなく、回数を指定して回したいんじゃあ!!1

2. 実装

2.1. 結論

先に結論を書くとどうやら、現状ではIfウィジェットを使って自前で実装するか、少々回りくどいが回したい数だけ要素を持ったリストを作ってFor Eachウィジェットで回す等しないとダメなようだ。

2.2. 動作サンプル

ここではサンプルとして、1~10までの和を文字列リストにして画面に出すという物を作ってみた。

デモサイト

ちなみに会社の事は関係なしに記事を書いている為、Personal Environmentです。一定期間アクセスが無いとスリープされてしまうので、もしアクセスできなかったら諦めて下さいω

2.3. プロジェクトファイル

こちら からOMLファイルをダウンロードして下さい。

2.4. サンプルの説明

2.4.1. 準備

Home画面にデータソースを準備します。Fetch Data from Other Sourcesで作ったDataAction1に紐づけています。ダミーデータを生成するだけなので引数はありません。
image.png

DataAction1で生成したText型リストをTableSourceに設定します。
image.png

次は、DataAction1の中で実際にForカウンタループを使ってリストを作って行きます。

2.4.2. リストを生成するサーバアクションのIFを整える

DataAction1から呼び出すサーバアクションを作ります。
わざわざサーバアクションにしているのは、リストに要素追加等の操作はサーバアクション限定という縛りがある為です。

まずは、Server Actionにサーバアクションを作ります。(ここではForLoopSampleAction
image.png

OutDatasはText型リストです。ちなみにJavaっぽく書くならこういうサーバアクションにしようとしています。

public List<String> ForLoopSampleAction() {
    List<String> OutDatas = new ArrayList<>();
    for (int Index = 0; Index < LoopNum; Index++) {
        TempSum += Index + 1;
        OutDatas.add((Index + 1) + "回目: " + TempSum);
    }
    return OutDatas;
}

ForLoopSampleActionを作ったら、DataAction1から呼び出します。
ForLoopSampleActionからの戻り値もしっかりAssignします。
image.png

2.4.3. サーバアクションの中身を実装する

さて最後。ぶっちゃけここだけが肝。
image.png

  1. Assignでループで使用する変数の初期化をする
  2. Ifウィジェットは、Break条件として、Index < LoopNumが成立する間はTrueに流れてループするようにを定義します。
  3. TempSumAssignは単に1~10の総和を求めています。リスト表示用
  4. ListAppendで、OutDatasのリストに要素を追加します。これはサーバアクション内でしか使えません
  5. Index++Assignで、人力でIndexのカウントアップ処理をしています

2.4.4. 動作確認

できた!
image.png

3. あとがき

今回は私が苦手意識を持つ最強自社フレームワーク、最強自社ツールのなどと言われるカテゴリの一種だと思い込んでいるローコードツールネタを書きました。
ローコードツール周囲でも流行りつつあり、IT系記事でも持てはやされているのですが、正直外部のプログラマにガッツリこれを使わせている現状があって違和感を感じずにはいられない自分がいます。作るものも作る人も変わってないし。
POC用途とか、プログラマがいないサービス提供企業が使って改修していくってなら分からんでもないんですが…。
そんな経緯があってイマイチ良い印象が持てないでいます。うちももう老害なんだろうなあ。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?