9.106 GET_LICENSE_STATUS
このLANSAシステムのLANSAライセンスのステータスを特定の日付で取得します。
この組み込み関数を使って定期的にジョブを実行することにより、ライセンス期限切れの警告を事前に受け取ることができます。
Þこれは、 開発環境のみで使用される特殊BIF です。
各製品の対応
LANSA/AD |
使用可 |
RDMLX では使用不可 |
Visual LANSA for Windows |
未対応 |
|
Visual LANSA for Linux |
未対応 |
引数
番号 |
タイプ |
必須/任意 |
記述 |
最小長 |
最大長 |
最小小数桁数 |
最大小数桁数 |
---|---|---|---|---|---|---|---|
1 |
N |
任意 |
日付(YYYYMMDD)時点のライセンス状況 |
8 |
8 |
0 |
0 |
2 |
A |
任意 |
ライセンス・コード。このライセンス・コードのステータスを要求します。この引数の指定がない場合、引数1で指定された日付のライセンスすべてのステータスが戻されます。(*) |
3 |
3 |
||
3 |
A |
任意 |
ライセンス・バージョン(*) この引数の指定がないか空白の場合、ライセンス・バージョンは「1」と仮定されます。 |
1 |
1 |
0 |
0 |
4 |
A |
任意 |
チェックが必要な長いライセンス・コード(*) |
24 |
24 |
0 |
0 |
戻り値
番号 |
タイプ |
必須/任意 |
記述 |
最小長 |
最大長 |
最小小数桁数 |
最大小数桁数 |
---|---|---|---|---|---|---|---|
1 |
L |
必須 |
ライセンス・ステータスを含める作業リスト(*) |
* |
* |
0 |
0 |
2 |
A |
任意 |
戻りコード OK = ライセンス・ステータスのリスト(満載または一部)が戻された。リストに戻された以上のフィールドは存在しない OV = リスト(満載)が戻された。ただしリストに収まらなかったエントリーがさらに存在する |
2 |
2 |
(*) ライセンス・バージョンが「1」に設定されている場合、4番目の引数が指定されても無視されます。呼び出し元のRDMLファンクションは、項目の長さの合計が正確に4バイトかつ32,767エントリー以下の作業リストを提供しなければなりません。戻されるそれぞれのリスト項目は、次のような形式にする必要があります。
開始 |
終了 |
説明 |
1 |
3 |
ライセンス・コード |
4 |
4 |
状況 Y/N. |
ライセンス・バージョンが「2」に設定されている場合、2番目の引数は無視され、指定されても、 4番目の引数が要求されているライセンス・コードのステイタスとして使用されます。呼び出し元のRDMLファンクションは、項目の長さが正確に25バイトかつ9,999エントリー以下の作業リストを提供しなければなりません。戻されるそれぞれのリスト項目は、次のような形式にする必要があります。
開始 |
終了 |
説明 |
1 |
24 |
ライセンス・コード |
25 |
25 |
状況 Y/N. |
技術ノート
IBM iライセンス:戻されるライセンス・コードには、このLANSA システムの永久ライセンスが含まれます。さらにIBM iの導入処理を使ってIntegratorがインストールまたはアップグレードされている場合はLANSA Integratorキー・ライセンスが含まれます。LANSA Integratorが単独でインストールされている場合、GET_LICENSE_STATUSでIntegratorのライセンスは戻されません。
例
現在有効で、かつ来月期限の切れるライセンスを検索します。
DEFINE FIELD(#CODE1) TYPE(*CHAR) LENGTH(3)
DEFINE FIELD(#CODE2) TYPE(*CHAR) LENGTH(3)
DEFINE FIELD(#STATUS1) TYPE(*CHAR) LENGTH(1)
DEFINE FIELD(#STATUS2) TYPE(*CHAR) LENGTH(1)
DEF_LIST NAME(#WLIST1) FIELDS((#CODE1) (#STATUS1)) TYPE(*WORKING
)
DEF_LIST NAME(#WLIST2) FIELDS((#CODE2) (#STATUS2)) TYPE(*WORKING
)
DEF_LIST NAME(#BLIST) FIELDS((#CODE2) (#STATUS2))
DEFINE FIELD(#EXPDATE) TYPE(*DEC) LENGTH(8) DECIMALS(0)
DEFINE FIELD(#YESTERDAY) TYPE(*DEC) LENGTH(8) DECIMALS(0)
DEFINE FIELD(#RETCODE) TYPE(*CHAR) LENGTH(2)
********** Today + 31 days : to get licenses which will expire
********** next month
USE BUILTIN(FINDDATE) WITH_ARGS(#YYYYMMDD 31 J J) TO_GET(#E
XPDATE)
********** WLIST2 will contain license status in 31 days time.
CLR_LIST #wlist2
USE BUILTIN(GET_LICENSE_STATUS) WITH_ARGS(#EXPDATE) TO_GET(
#WLIST2)
********** Today - 1 day : to get yesterday's date
USE BUILTIN(FINDDATE) WITH_ARGS(#YYYYMMDD -1 J J) TO_GET(#Y
ESTERDAY)
********** WLIST1 will contain license status yesterday.
CLR_LIST #wlist1
USE BUILTIN(GET_LICENSE_STATUS) WITH_ARGS(#YESTERDAY) TO_GE
T(#WLIST1)
********** Compare the status in a month's time with the status
********** yesterday to find licenses which will expire in the
********** next month.
CLR_LIST #blist
SELECTLIST #wlist2
IF COND('#status2 = N')
LOC_ENTRY IN_LIST(#WLIST1) WHERE('#code1 = #code2')
IF COND('(#IO$STS = OK) *AND (#STATUS1 = Y)')
ADD_ENTRY #BLIST
ENDIF
ENDIF
ENDSELECT
DISPLAY FIELDS((#EXPDATE)) BROWSELIST(#BLIST)