モジュールについて
概要
モジュールという形でGeneXusの一部オブジェクトを再配布できるようです。
とりあえず使ってみたので備忘録です。
参考リンク
参考
Module Objectwiki.genexus.com
参考
Modules Distribution in GeneXuswiki.genexus.com
環境
GeneXus 16 u2
C#.Net
作ってみる
※ライセンス不足で英語版しか起動できなかった。
まずはKB上でモジュールを作成します。これはフォルダ作る時と同じ感じで。
適当なプロシージャを作る。
今回は日付を変換する感じで、適当に。。。
// 変数の初期化
&P_DateStr.SetEmpty()
If Not &P_Date.IsEmpty()
// 日付を「YYYY年MM月DD日」に変換
&P_DateStr = PadL(&P_Date.Year().ToString().Trim(), 4, !"0") + !"年" +
PadL(&P_Date.Month().ToString().Trim(), 2, !"0") + !"月" +
PadL(&P_Date.Day().ToString().Trim(), 2, !"0") + !"日"
Endif
Return
Parm(in:&P_Date, out:&P_DateStr);
この状態だと配布はできないので梱包して配布できる形にする。
作成したパッケージを右クリックして「package module」を選択。
そしてOKボタンを押せばパッケージファイルが以下の場所に作成されます。
C:\Models\GX16U2_BLOG_20190610\modules\OqiitaModule_1.0.opc
(.opcはOpen Packaging Conventionらしいです)
opcはZip圧縮になっていて、中にC#ならDLLが梱包されています。
Javaならたぶんjarが梱包されるはず!
使ってみる
別のKBを作成して開きます。
メニューから Knowledge Manager > Manage Module References を選択。
同じ環境で作成した場合は以下のように一覧に出てくるはずです。
そのままInstallボタンを押します。
Successful が出れば、作成したプロシージャが使用可能です。
場所は以下の場所で入っています。
Event 'Test'
MSG(OqiitaModule.Pro_DateCov(&Date))
Endevent
補足
1度追加したmoduleは以下に格納されており、一覧から消したい場合はこのフォルダからopcを削除すればいいようです。
C:\Users\【ユーザー名】\AppData\Roaming\GeneXus\GeneXus\16\Modules\
モジュールに入れることができるのは
データプロバイダ、プロシージャ、外部オブジェクト、SDT、ドメインだけです。
モジュール内のオブジェクトはDBアクセスできません。
再配布方法
まったく違う環境では以下のlocalを右クリックしてアップロードを行います。
まとめ
XPZでプロシージャインポートよりは便利。でも編集できないしWebPanel、トランザクション入らないのがちょっと不便。
あとはWebにアップロードしてそれを参照できれば
バージョンアップとかに対応できるし、誰でも作ってアップロードなんかもできて便利そう。
以上です。