【GeneXus】モジュール

モジュールについて

概要

モジュールという形でGeneXusの一部オブジェクトを再配布できるようです。
とりあえず使ってみたので備忘録です。

参考リンク

参考 Module Objectwiki.genexus.com
参考 <br /> Modules Distribution in GeneXuswiki.genexus.com

環境

GeneXus 16 u2
C#.Net

作ってみる

※ライセンス不足で英語版しか起動できなかった。

まずはKB上でモジュールを作成します。これはフォルダ作る時と同じ感じで。

適当なプロシージャを作る。
今回は日付を変換する感じで、適当に。。。

Pro_DateCov - Source

// 変数の初期化
&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

Pro_DateCov - Rule

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 が出れば、作成したプロシージャが使用可能です。
場所は以下の場所で入っています。

適当にWebPanelを作って、使用してみます。

ファイル名

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にアップロードしてそれを参照できれば
バージョンアップとかに対応できるし、誰でも作ってアップロードなんかもできて便利そう。

以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください