2.3.1 状態に応じて資産情報を更新・削除する場合の記述例
資産の状態を判定し、各状態に応じて資産情報を次のように更新・削除する場合の例を示します。
-
状態が「抹消」のハードウェア資産、および関連するすべての情報を削除します。
-
状態が「廃棄」(コードの範囲が500〜719)の状態に対して次の更新・削除をします。
-
ネットワーク情報のIPアドレス項目をクリアする。
-
インストールソフトウェア情報を削除する。
#AssetInformationManager HTML 0005 #=============================================================================== # 変数定義 #=============================================================================== [VAR] STATUS DUMMY ECHOMSG MSG ASSET_ID ASSET_NO ASSET_ST NETWORK_ID IPADDR IPKIND WORK #=============================================================================== # メッセージ出力ルーチン #=============================================================================== [SUB] ECHO [IF] MSG = '1' [THEN] [SET_VALUE] $ECHO(ECHOMSG) [IF_END] [SUB_END] #=============================================================================== # ハードウェア資産情報の削除(メイン) #=============================================================================== [BEGIN] [SET_VALUE] MSG = $GETSESSION('MSG') # メッセージ出力要否の取得 [TRANSACTION] [ASSET_ITEM_LOOP] [CLASS_FIND] AssetInfo [FIND_DATA] (AssetInfo.AssetKind = '001') and # ハードウェア資産 (AssetInfo.AssetStatus >= '500') # 資産状態が「運用」ではない資産 [GET_VALUE] ASSET_ID = AssetInfo.AssetID ASSET_NO = AssetInfo.AssetNo ASSET_ST = AssetInfo.AssetStatus [IF] (ASSET_ST = '999') [THEN] # 資産状態が「抹消」の資産情報を削除 [DELETE] AssetInfo [DATA] AssetInfo.AssetID = ASSET_ID [SET_VALUE] ECHOMSG = '資産番号['+ASSET_NO+' (ID:'+ASSET_ID+')]を削除しました' $GOSUB(ECHO) [ELSE] # 資産状態が「抹消」でない場合(「運用」でもない) [ASSET_ITEM_LOOP] # ネットワーク情報のIPアドレス項目をクリア [CLASS_FIND] NetworkInfo [FIND_DATA] (NetworkInfo.AssetID = ASSET_ID) [GET_VALUE] NETWORK_ID = NetworkInfo.NetworkID IPADDR = NetworkInfo.IPAddress IPKIND = NetworkInfo.IPAddressKind [UPDATE] NetworkInfo [DATA] NetworkInfo.AssetID = ASSET_ID NetworkInfo.NetworkID = NETWORK_ID NetworkInfo.IPAddressKind = '002' NetworkInfo.IPAddress = '' [SET_VALUE] ECHOMSG = '['+ASSET_ID+']ネットワーク情報['+NETWORK_ID+' '+IPADDR+']をクリアしました' $GOSUB(ECHO) $SETSTATUS('NORMAL') [ASSET_ITEM_LOOP_END] [ASSET_ITEM_LOOP] # インストールソフトウェア情報をすべて削除 [CLASS_FIND] InstalledInfo [FIND_DATA] (InstalledInfo.AssetID = ASSET_ID) [GET_VALUE] WORK = InstalledInfo.InstalledID [DELETE] InstalledInfo [DATA] InstalledInfo.AssetID = ASSET_ID InstalledInfo.InstalledID = WORK InstalledInfo.CreationClassName = 'InstalledInfo' [SET_VALUE] ECHOMSG = '['+ASSET_ID+']インストール情報['+WORK+']を削除しました' $GOSUB(ECHO) $SETSTATUS('NORMAL') [ASSET_ITEM_LOOP_END] [IF_END] [SET_VALUE] $SETSTATUS('NORMAL') [ASSET_ITEM_LOOP_END] [SET_VALUE] $SETSTATUS('NORMAL') [TRANSACTION_END] [END] #===============================================================================
-