0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[ODC]QRコードをサーバ側で生成するForgeコンポーネント「QRCoder」

Posted at

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コード画像をカスタマイズしたい時に調べればよさそう。
スクリーンショット 2025-02-01 18.45.28.png

結果は、QRコードの画像バイナリ(Binary Data型)として出力される。

フォーマット付きのデータを埋め込んだQRコードを生成する

例えば、座標情報は、緯度と経度を「geo:緯度,経度」フォーマットの文字列にすることで、読み込み時に地図アプリで指定座標を開かせることができる(iPhoneで確認した)。
対応するフォーマットの文字列に詰め替えをするのが、QRCoder PayloadのAction群。

座標情報の場合の利用例。
座標の変換にはQRCoder Payload/GenerateGeoLocationを使う。このActionのOutput ParameterをQRCoder/GeneratePngCode Actionのpayloadに渡せばよい。
image.png

ライセンスチェック

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を多数公開している。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?