自己紹介
こんにちは。tetraです。上場企業でSESをしています。
業務ではOutSystemsを使用することが多いです。
この記事でわかること
- OutSystemsでAggregateの中で疑似的なINを使用する方法
この記事でわからないこと
- OutSystemsの使い方など、基本的な部分
- SQLの基本的な部分
解決方法
OutSystemsにはIndex関数というBuiltIn関数があり、これをフィルターに適用します。
以下に例を示します。
例えば、嵐(5人組男性アイドルグループ)の中で櫻井、松本、大野の3名を抽出したいと考えた時にAggregateではInを使用できないため、別の方法が必要になります。
SQLを使用できる場合はそれを使用すれば問題ないですが、コーディングルールの影響などで、Aggregateを使用しなければいけない場合は画像のように対応します。
- 画像では最初のAssignに松本、桜井、大野の3名を変数に代入(この辺りは自由に変更してください。)
- ListAppendでText Structure List型の変数に代入します。
- String_Joinで#区切りの文字列にします。(検索時の文字列に影響のないseparatorを選択してください。)
- Aggregateのフィルター内でIndex("#"+String_Join+"#", GetUsers.FirstName)<>-1を使用します。
あるテキスト文字列が別のテキスト文字列の中に含まれているかどうかを確認するには、テキストビルトイン関数Indexを使用します。
Index関数は、別のtext文字列に含まれるkeyword文字列のゼロから始まる位置を表す整数を返し、keywordが見つからない場合は-1を返します 1
#いかがでしょうか?
いかがでしょうか。経験が浅いため至らぬところがまだまだあります。
もし間違い等に気がつきましたら、コメント又はtetraまでお知らせください。
参考文献