はじめに
皆さん、初めまして。
今回はOutSystemsで作成した簡単な画面をPower Appsに移行できるか検証しました。
移行対象の画面
ドロップダウンから値を取得し、足し算を行うだけの画面
- 確認するポイント
- ドロップダウンの選択肢を保持するテーブル
- 画面構成
- ドロップダウン変更時のイベント処理
手順
①omlファイル(OutSystems独自のファイル形式)をXMLに変換
②XMLファイルからプロンプト生成
③Power Appsでプロンプトを利用しアプリ作成
手順1 XMLファイルへの変換
調べた結果、以下のフォーラムのアプリを使用するのがよさそうと感じた
https://www.outsystems.com/forge/component-overview/159/outdoc-o11
②DataActionを作成し、XMLファイルを取得
(ダウンロードはOnAfterFetchで実施している)

手順2.プロンプトの生成
①TeamのCopilotにXMLを渡し、プロンプトの生成を依頼
XMLがあるため初回は具体的な指示なし → プロンプトに間違いが見られた
→ドロップダウンが2つ,足し算の結果を表示することを明記して再生成した
テーブル仕様:
- テーブル名: NumberList
- 主キー: Id(数値/自動採番)
- 列:
- Number(整数、必須): 画面で選択する数値
画面構成:
- ヘッダーラベル: Text = "Screen1"
- ドロップダウン A(名前: AddNumberA)
- Items = NumberList
- 表示/選択単位 = レコード(Number 列を表示)
- ドロップダウン B(名前: AddNumberB)
- Items = NumberList
- 表示/選択単位 = レコード(Number 列を表示)
- 合計表示ラベル(名前: lblSum)
- Text = 2つのドロップダウンで選択された Number の合計を表示
- 初期表示は "未選択" または 0 を想定
状態管理(変数):
- varA: ドロップダウン A の選択レコード(型: NumberList レコード)
- varB: ドロップダウン B の選択レコード(型: NumberList レコード)
- varSum: 合計値(数値)
イベント:
- AddNumberA.OnChange:
- varA に AddNumberA.Selected を代入
- varSum を Coalesce(varA.Number, 0) + Coalesce(varB.Number, 0) に更新
- AddNumberB.OnChange:
- varB に AddNumberB.Selected を代入
- varSum を Coalesce(varA.Number, 0) + Coalesce(varB.Number, 0) に更新
表示:
- lblSum.Text に varSum を表示
- いずれか未選択なら 0 または "未選択" 表示にする
手順3.Power Appsでのアプリ作成
①テーブル → Power AppsのCopilot+プロンプトで作成可能
(列名に若干の修正が必要)

テーブルのレコードは自分で作成する必要あり
②UI → Power AppsのCopilot+プロンプトで作成可能
(配置は自分で修正)

③ロジック → Power AppsのCopilot+プロンプトでは作成不可。手作業で設定
Power Fxは手順2でプロンプトを生成した際に提示されていた内容を利用
詳しく指定すればCopilotでも作成できるが、手作業の方が早くなる
まとめ
(ソート順は直せていないが)OutSystemsアプリの移行は可能だった。
- UIとテーブルはCopilotでほぼ自動化可能
- ロジックは手動設定が必要


