ロジックをカプセル化して再利用する
OutSystemsでは、再利用性と抽象化を高めることで、作成したアクションを他のアクションフローで呼び出すことができます。これにより、ロジックが集中化され維持が容易になります。たとえば、ロジックを1箇所変更するだけで、利用するすべてのユーザーが恩恵を得られます。
アクションでロジックをカプセル化するには、以下の手順を実行します。
- ロジックをデバイスで実行するかサーバーで実行するかに応じて、[Logic]タブでクライアントまたはサーバーアクションを作成します。
- アクションフローでロジックを実装します。
カプセル化されたロジックを他のアクションで使用するには、以下の手順を実行します。
- アクションのフローを開きます。
- カプセル化されたロジックを含むアクションを[Logic]タブからドラッグし、フローにドロップします。
- 必要に応じて入出力パラメータの値を設定します。
例
場所の検索やレビューができるアプリケーションGoOutWebでは、CreateOrUpdatePlaceエンティティアクションを使用して場所の作成や更新ができます。ただし、場所の作成や更新をデータベースで行う前に、場所が有効であることを確認します。このためには、事前に場所を検証し、有効である場合にデータベースに保存するアクションを作成します。このアクションは、場所を作成または更新するすべての状況で使用します。
アクションを作成するには、以下の手順を実行します。
-
[Logic]タブに移動し、Server Actionsフォルダを右クリックして新しいサーバーアクションを追加します。「
Place_CreateOrUpdate
」という名前を付けます。 -
以下の入力パラメータを追加します。
- Place型の
Place
。
- Place型の
-
以下の出力パラメータを追加します。
- Place Identifier型の
PlaceId
。 - Text型の
ErrorMessage
。 - Boolean型の
Success
(デフォルトはTrueに設定)。
- Place Identifier型の
-
ロジックを実装します。
- NameとAddressの各アトリビュートが空でないことを確認します。
- CreateOrUpdatePlaceを実行して、Idを出力パラメータPlaceIdに割り当てます。
GoOutWebアプリケーションで場所の作成や更新を行う際にこのアクションを使用するには、以下の手順を実行します。
- [Interface]タブで[PlaceEdit]画面を見つけ、[Save]画面アクションを開きます。
- Place_CreateOrUpdateアクションを[Logic]タブからアクションフローにドラッグします。
- 場所のデータをアクションに渡します。PlaceForm.Record.Place。
- 戻り値(PlaceId、Success、およびErrorMessage)を使用してエンドユーザーにフィードバックします。
- パブリッシュしてテストします。
このアクションを使用するもう1つの状況は、GoOutWebアプリケーションのモバイル版であるGoOutアプリケーションです。エンドユーザーが一覧にない場所のレビューを書く場合に使用します。レビューの作成にあわせて場所も作成される必要があります。
このケースを実装するには、「モジュール間でコードを公開して再利用する」もご覧ください。