はじめに
Hello, World!編で何となく操作を理解したので、カスタムテーブルなどを作成していこうと思います。
Hello, World!編までは極力双子さんに質問しながらやっていきましたが、直感的にできそうなのでまずはやってみて、わからないことが出た時だけ聞くようにします。
筆者はOutSystemsについて体系的な学習は一切しておらず完全に独学となります。
生成AIに質問しつつアプリを作成しています(公式ドキュメントも一切見ていないです)記事の内容には正しくない情報が、含まれる可能性があります。ご了承ください。
前回までの記事
ServiceNowエンジニアがOutSystemsを触ってみる~Hello, World!編~
やってみよう
カスタムテーブル作成
-
テーブル作成

Data > Database 右クリック > Add Entity を選択
これでテーブルができたはずです

-
カラム作成

Database > テーブル選択(ここではIncident)し右クリック >Add Entity Attribute を選択
カラム名を入力

ひとまずカスタムテーブルができたようです
次はこれを表示するUIを作成します
カスタムテーブルUI作成&実行
- リスト&フォーム作成
さすがに初見ではよくわからないので双子さんに聞きます

テーブルのことは、Entityというのがこの世界では一般的なようですね
なんか箱ができました
リストができました!
右上の Add Incidentボタンで新規レコードが作成できます

ServiceNowでいうところのフォーム画面はEditという画面になってました

ひとまず、リスト&フォームはできました。
2列表示にしてみよう
右側のInterface > Widgets Treeで設定する方が直接Widgetを選択して動かすより簡単でした

入れ子の順番に注意してください
今回はMainContent > Form > Columns2 Widget > 各Column > それぞれの Containerとなっています
メニューを作ってみよう
ServiceNowでいうところのNavigationメニューを作ってみます
このメニューを左側に表示するには
Interface タブのLayouts フォルダを選択します
ここに上部表示のLayoutTopMenuと左表示のLayoutSideMenuがあります

レイアウトを変更したい画面をダブルクリックで開きます
デザイン画面の何もないあたりをクリックします

プロパティをLayoutSideMenuに変更します(デフォルトはLayoutTopMenu)
メニューのサイズ変更は基本的にできません
結論から言うと、OutSystemsの標準機能(Propertiesの設定だけ)では**「動的なリサイズ」はサポートされていません。** OutSystemsのレイアウトは、基本的にレスポンシブ(画面幅に応じて固定または自動切り替え)を前提としているからです。
メニューにセクションを設定する
Submenuというウィジェットを使うことで親子関係を持つセクションを作成できます
InterfaceのCommon > Menu をダブルクリックします

左のツールバーからSubmenuを選びます(検索で絞り込むと便利です)

これをドラッグ&ドロップしていきます
Widgets Treeを利用した場合、一番上にSubmenuを持っていき、Itemsの下に、子供となるナビゲーション(Link)を配置します

リスト画面の項目変更
このリスト画面に表示するカラム、順番を設定していきます
さすがにわからなかったので双子さんに聞きました

Widgets Treeのドラッグ&ドロップで簡単に並び替えられました

と、思ったら・・・・
ヘッダーだけ並び替えされていて中のデータは並び替えされていませんでした

Widgets Treeを見てみると確かにHeader Rowは順番が変わっていますが、Rowは元のままでした

ひとまず完成
所感
結構時間がかかりました・・・

そもそも設計思想が違うのでしかたないかなと思います。
ただ、インシデント管理の画面はできたと思います。
操作に慣れてくるとある程度直感的に開発できるかと思います。ServiceNowに慣れていると設定箇所が多く結構戸惑います。
あと、こまったらWidgets Treeを使うと良さそうです。
次回
よく使いそうなカラムタイプとかまとめようかと思います


























