2.3.2 許可外ソフトウェアがインストールされている資産をリストアップする場合の記述例
許可外ソフトウェアがインストールされている資産と、そのソフトウェアをリストアップしてファイルに出力する場合の記述例を次に示します。この例では、リストを作成するために、[JOIN_FIND]タグを使って複数クラスを結合して検索しています。
-
出力ファイルの内容例
この記述例の処理で出力されるファイルの内容例を次に示します。
"ソフトウェア名","バージョン","資産番号","部署","利用者" "SoftwareA","0100","0000000001","本社/営業部/営業1課","ユーザ1" "SoftwareA","0101","0000000001","本社/営業部/営業1課","ユーザ1" "SoftwareB","0100","0000000001","本社/営業部/営業1課","ユーザ1" "SoftwareA","0100","0000000002","本社/営業部/営業2課","ユーザ2"
#AssetInformationManager HTML 0005
#===============================================================================
# 変数定義
#===============================================================================
[VAR]
STATUS
DUMMY
WORK
ECHOMSG
MSG
FILENAME
[SET_VALUE]
MSG = $GETSESSION('MSG')
#===============================================================================
# 許可外ソフトウェアのインストール情報をCSV出力(メイン)
#===============================================================================
[BEGIN]
[VAR]
ASSET_NO
GROUP
USER
SOFTNAME
SOFTVR
FH
LINE
[ARRAY]
OUTLINE
[SET_VALUE]
FILENAME = $GETSESSION('CSV')
FH = $FILEOPEN(FILENAME, RENEW)
$SETARRAY(OUTLINE,'ソフトウェア名')
$SETARRAY(OUTLINE,'バージョン')
$SETARRAY(OUTLINE,'資産番号')
$SETARRAY(OUTLINE,'部署')
$SETARRAY(OUTLINE,'利用者')
$FILEARRAY(FH, OUTLINE)
$CLEARARRAY(OUTLINE)
LINE = 0
[TRANSACTION]
[ASSET_ITEM_LOOP]
[JOIN_FIND]
[JOIN]
joinassoc;InstalledListLink;
joinfrom;InstalledList,InstalledInfo;
jointype;INNER;
[JOIN]
joinassoc;InstalledLink;
joinfrom;InstalledInfo,AssetInfo;
jointype;INNER;
[JOIN]
joinfrom;AssetInfo,GroupInfo;
jointype;OUTER;
joinkey;AssetInfo.GroupID,GroupInfo.GroupID;
[FIND_DATA]
(InstalledList.InstalledPermit = '2')
[GET_VALUE]
SOFTNAME = InstalledList.InstalledName
SOFTVR = InstalledList.InstalledVersion
ASSET_NO = AssetInfo.AssetNo
GROUP = GroupInfo.FullPathName
USER = AssetInfo.UserName
[SET_VALUE]
$SETARRAY(OUTLINE,SOFTNAME)
$SETARRAY(OUTLINE,SOFTVR)
$SETARRAY(OUTLINE,ASSET_NO)
$SETARRAY(OUTLINE,GROUP)
$SETARRAY(OUTLINE,USER)
$FILEARRAY(FH, OUTLINE)
$CLEARARRAY(OUTLINE)
LINE = $ADD(LINE, 1)
[ASSET_ITEM_LOOP_END]
[SET_VALUE]
$SETSTATUS('NORMAL')
[TRANSACTION_END]
[SET_VALUE]
$FILECLOSE(FH)
[IF]
(LINE = 0)
[THEN]
[SET_VALUE]
ECHOMSG = 'データはありませんでした'
$ECHO(ECHOMSG)
$EXIT(1)
[ELSE]
[SET_VALUE]
ECHOMSG = LINE+'件のデータを出力しました'
$ECHO(ECHOMSG)
[IF_END]
[END]