ODCでExternal Logicを作成するには? ~OutSystems最新版でのC#実装方法とは~(vol.32)
- 公開日:
- 最終更新日:
OutSystems Developer Cloud(以降、ODCという)
では、ほとんどの処理をローコードで実装することができますが、同時にC#での実装を行い、アプリケーションの機能をさらに拡張することのできる「External Logic」を開発することができます。外部システムとの接続に.NETのライブラリが必要な場合などで、このExternal Logicが効果を発揮します。
*External Logicは、OutSystems 11では「Extension」と呼ばれていたものに相当する機能です。
本ブログ記事では、External Logicの機能概要をご説明のうえ、実装から環境へのパブリッシュの方法について、実際の操作画面を交えながらわかりやすく解説します。
目次
OutSystems Developer Cloud (ODC)のExternal Logicとは?
ODCでC#によるコーディングや.NETのライブラリを利用したい場合は、通常のクラスライブラリを「External Logic」として変換する必要があります。
クラスライブラリ:C#や.NETで構築したロジック(≒クラス)をライブラリとしてまとめたもの
- External Libraries Source Software Development Kit(SDK):C#や.NETで構築したロジック(≒クラス)をODCで使用可能な状態=「External Logic」として実装するためのライブラリ
- External Logic:「External Libraries SDK」を使用してC#や.NETで構築したロジック(≒クラス)を実装し、それらをパッケージ化した「クラスライブラリ」をODC Portalへアップロードすることで、ODCで使用可能な状態となった「クラスライブラリ」
*「External Libraries SDK」を使用してC#や.NETで構築したロジック(≒クラス)を実装した後、それらをパッケージ化した「クラスライブラリ」をODC Portalへアップロードすることで、ODCで使用可能な状態=「External Logic」となります。
*「External Logic」には、以下2つが含まれます。
- C#や.NETで構築したロジック(≒実際の処理を行うクラス)
- 上記1.をServer Actionとしてアクセス可能にするためのインターフェイス
(②は「External Libraries SDK」をインポートして作成します)
→ 上記①②をパッケージ化した「クラスライブラリ」をODC Portalへアップロードすることで、ODCで使用可能な状態=「External Logic」となります。
開発者は.NET 8のビルドをサポートするIDEツール(Visual Studioなど)を使ってC#のコーディングを行い、ビルドしたプロジェクトをODCの環境にアップロードすることができます。アップロードされたクラスライブラリは、ODCのアプリケーションからServer Actionとして実装する際に利用できるようになります。
実際のところ、アプリケーションに必要な業務ロジックのほぼすべてはODC Studioで開発することができるため、External Logicは主に.NETライブラリをODCで利用可能にする目的で用いられることになるかと思います。実際に弊社では、Google Cloudクライアントライブラリの一部機能を利用するために、External Logicを使用した実績がございます。また、2024年9月現在は標準機能ではサポートされていないSOAP(Simple Object Access Protocol) Webサービスの使用も、External Logicを経由することで可能になります。
なお、External Logicは、別エディションであるOutSystems 11(以下、OS11)でいう「Extension」に該当します。Extensionは、「Integration Studio」というツールを介して、Visual Studioを使ったC#によるコーディングによって開発することができましたが、ODCではIDEがVisual Studioに限定されなくなりました。また、Integration Studioの提供もなくなったため、最小限の開発環境で実装できるようになったと言えます。
一方で、これまではIntegration Studioが担っていた部分を開発者が理解しておく必要が出てきました。
そこで次章では、Integration Studioが担っていた部分も含めて、External Logicの実装方法を解説していきます。
OutSystems Developer Cloud (ODC)のExternal Logic作成方法①機能を実装する
ここからは、実際にExternal Logicを開発し、ODC Studioで利用可能にするまでの手順をご紹介します。開発ツールはVisual Studioを使用します。
- プロジェクトの作成
Visual Studioを起動し、新しいプロジェクトの作成から「クラス ライブラリ」を選択して次へ進みます。フレームワークは必ず「.NET 8.0 (長期的なサポート)」を選択します。
- SDKのインストール
プロジェクトが作成されたら、NuGetパッケージの管理から「ExternalLibraries.SDK」を検索してインストールします。
- インターフェイスの実装
External Logicでは、実際の処理を行うクラスと、それをServer Actionとしてアクセス可能にするためのインターフェイスが必要です。プロジェクト作成時に自動で作成されたクラスを前者とし、後者のインターフェイスを実装するために項目を一つ追加します。
*通常のC#の実装では、インターフェイスの名称は「I~」とつけます。ODCで読み込んだ際には頭文字のIを除いた残りの名称がLibraryの名称になります。 インターフェイスには先ほどインストールしたSDKをインポートし、[OSInterface]という修飾子をつけて実装します。この中にはODC Studioで読み込まれた際にServer Actionとなるメソッドを定義します。
- 処理の実装
実際の処理を行うクラスに移り、インターフェイスに定義したメソッドと同名のメソッドを用意して、処理内容を実装します。上図ではStringを受け取り、「入力されたテキスト:」を付加して返却する単純な処理を実装しました。
- プロジェクトのPublish
コードが完成したらプロジェクトを保存してVisual Studio上のターミナルを使用してPublishします。
C#のクラスライブラリの実装は以上となります。サンプルのServer Actionで扱っているデータ型はStringのみですが、この入出力の変数の型には、基本的な.NETのデータ型/構造体/リストを用いることができます。
OutSystems Developer Cloud (ODC)のExternal Logic作成方法②環境にアップロードする
開発したクラスライブラリを実際にODC Studioで利用可能にするためには、ODC Portalで自環境にアップロードする必要があります。
本章では、出力したクラスライブラリをアプリで利用可能にするまでの手順を追っていきましょう。
- 出力内容を圧縮
Visual StudioでPublishしたファイルは、ターミナルに記載されたフォルダパス上に出力されます。
*通常は ./プロジェクト名/bin/Release/net8.0/linux-x64/publish/* が出力されたファイルになります。
ファイルをすべて選択して、ZIPファイルに圧縮します。 - ODC Portalへアップロード
圧縮したZIPファイルは、ODC Portalを使用して環境上にアップロードします。
まずODC Portalにログインし、サイドメニューからExternal Logicの画面を開きます。
この画面では、これまでにアップロードしたExternal LogicやForgeを利用してインストールしたExternal Logicが一覧で表示されています。
右上の「Create library」を押下して進むと、以下の画面が開きます。
「Browse」から作成したZIPファイルを選択し、「Continue」を押下します。
ZIPファイルの内容の解析が行われます。
解析が完了すると、先ほどVisual Studioで実装した内容に即したActions、Structuresが表示されます。今回のサンプルは一つのActionのみを定義したので、Structuresはありません。
内容に問題がなければ、「Publish library」を押下します。これにより開発環境で利用可能になります。 - ODC Studioで実装
では、実際に開発環境でExternal Logicを呼び出してみましょう。
ODC Studioで利用する際は、「Add public elements(プラグのアイコン)」よりServer Actionとして自身のアプリケーション/ライブラリに参照を追加することができます。
ここから先の実装は、他の通常のServer Actionと同様です。 以下のように、正しくExternal Logicが実行されていることが確認できました。
まとめ
さてここまで、External Logicの機能概要と実装方法について解説してまいりました。
ODCでは、これまでのOutSystemsと同様に、ローコードの強みを活かしながらC#で実現できる機能も活用した幅広いユースケースに対応することが可能です。両者を適切に使い分けることで、機能充実度の高いアプリケーションを効率良く開発できますので、是非、External Logicをご活用いただければと思います。
弊社は、ODCの導入実績はもちろん、積極的にODCの機能調査/検証を行っております。また、数多くのOutSystems導入プロジェクトの経験やOutSystemsを用いた様々なアプリケーション開発プロジェクトの知見をもとに、お客様の社内でOutSystemsの活用を推進するCenter of Excellence(CoE)チームを組成し、スムーズな導入と環境全体の統制、そして利用範囲の拡大をご支援するサービスをご提供しております。CoEチームの有用性や組成方法についてご興味のある方は、是非、弊社までお問い合わせください。
電通総研では、ローコード開発プラットフォーム:OutSystemsの導入/活用を支援する様々なサービスメニューをご用意しております。
ローコード開発のはじめの一歩を、電通総研と一緒に踏み出してみませんか?
電通総研のOutSystems関連サービスページ:https://itsol.dentsusoken.com/outsystems/service/
本ブログは、2024年9月1日時点の情報をもとに作成しています。
<筆者>
氏名:岡村 一輝
所属:株式会社電通総研 エンタープライズIT事業部
経歴:2019年よりOutSystems開発者として様々な案件に参画。
OutSystemsを用いた業務アプリケーション開発のリーダー、
内製開発者の育成を目的とした技術支援・トレーニングの豊富な経験有。
保持資格:
– Mobile Developer Specialist (OutSystems 11 and ODC)
– Architecture Specialist (OutSystems 11)
– Associate Tech Lead (OutSystems 11)
– Expert Traditional Web Developer (OutSystems 11)