2025/02/01時点で、QRコードを出力するODC向けForgeコンポーネントは既にいくつかある。
多くはクライアント側で生成するだが、QRCoderはサーバ側でQRコードを生成する。その概要と使い方を見ていく。
環境情報
ODC Studio(Version 1.5.5)
QRCoder - Overview (ODC) | OutSystems (Version 1.1.0)
QRCoder Payload - Documentation (ODC) | OutSystems (Version 1.0.0)
使い方
インストール
ODC Portal > FORGE > All assetsページを開き、「QRCoder」で検索。
QRCoderとQRCoder PayloadをInstall。
QRCoder Payloadは後述するが必須ではない。
QRコードに埋め込みたいのがシンプルな文字列であれば不要。
文字列を埋め込んだQRコードを生成する
サーバー側のAction(Server/Service/Data Actionなど)で、QRCoder/GeneratePngCode Actionを呼ぶだけでよい。
payloadパラメータに埋め込みたい文字列を設定する。その他のパラメータは必須指定ではないので、生成されるQRコード画像をカスタマイズしたい時に調べればよさそう。
結果は、QRコードの画像バイナリ(Binary Data型)として出力される。
フォーマット付きのデータを埋め込んだQRコードを生成する
例えば、座標情報は、緯度と経度を「geo:緯度,経度」フォーマットの文字列にすることで、読み込み時に地図アプリで指定座標を開かせることができる(iPhoneで確認した)。
対応するフォーマットの文字列に詰め替えをするのが、QRCoder PayloadのAction群。
座標情報の場合の利用例。
座標の変換にはQRCoder Payload/GenerateGeoLocationを使う。このActionのOutput ParameterをQRCoder/GeneratePngCode Actionのpayloadに渡せばよい。
ライセンスチェック
Forgeのコンポーネントページによると、QRCoderはMIT、QRCoder PayloadはBSD-3。
ForgeコンポーネントはデフォルトではBSD-3なのだが、QRCoderはExternal Logicであり、.NETのライブラリを参照している。このライブラリにライセンスを合わせたものと思われる。
参照しているライブラリとは、同名のQRCoder。
codebude/QRCoder: A pure C# Open Source QR Code implementation
実装チェック
QRCoder
External Logicの.NETソリューションは、レポジトリが公開されている。
stefan-d-p/odc-qrcoder-library: OutSystems Developer Cloud External Logic Library to generate QR codes
シンプルな実装なので、あまり気にすることはなさそう。
NUnit3によるユニットテストプロジェクトが含まれている。
ODCのForgeコンポーネント、かつExternal Logicの場合、インストールしたコンポーネントから実装を取り出すことができない。そのため、ライセンス等で確実を期したいなら、上記の.NETレポジトリから自分でビルドしたものを利用する手もある。
QRCoder Payload
シンプルなODCのLibrary。外部ライブラリは使っていない。
使い方で見た通り、受け取った情報をQRコードに埋め込むための文字列にフォーマットするActionを多数公開している。