$GETSTATUS(ブロック終了状態取得関数)
処理の終了状態を取得します。取得できる終了状態は、NORMAL(正常)、NODATA(データなし)、ERROR(異常)、MULTI(別ユーザでの更新あり)の4つです。
形式
返却値=$GETSTATUS()
指定する値
-
返却値
取得した終了状態を設定する変数名を指定します。
記述例
資産番号「R11111」の情報を検索し、その資産の状態を「在庫」に更新する場合の記述例を次に示します。この例では、検索後、ほかの制御で「R11111」の情報がすでに更新されている場合はエラーとなります。
[TRANSACTION] [CLASS_FIND] AssetInfo [FIND_DATA] (AssetInfo.AssetNo = 'R11111') [GET_VALUE] ASSETID = AssetInfo.AssetID ASSETSTATUS = AssetInfo.AssetStatus ASSETNO = AssetInfo.AssetNo UPDCK = AssetInfo.UpdateTime [SET_VALUE] STATUS = $GETSTATUS() [IF] STATUS = NORMAL [THEN] [UPDATE] AssetInfo [DATA] AssetInfo.AssetID = ASSETID AssetInfo.AssetStatus = '301' AssetInfo.UpdateTime = UPDCK [SET_VALUE] STATUS = $GETSTATUS() [IF] (STATUS = NORMAL) [THEN] [SET_VALUE] MSG = 'ASSETNO('+ASSETNO+') の状態を更新しました' $ECHO(MSG) [IF_END] [IF] (STATUS = MULTI) [THEN] [SET_VALUE] MSG = 'ASSETNO(' +ASSETNO+ ') はすでに他制御で更新されています' $ECHO(MSG) [IF_END] [IF] (STATUS != NORMAL) and (STATUS != MULTI) [THEN] [SET_VALUE] MSG = 'ASSETNO(' +ASSETNO+ ') の状態を更新できません' $ECHO(MSG) [IF_END] [ELSE] [SET_VALUE] MSG = 'ASSETNO(' +ASSETNO+ ') は登録されていません' $ECHO(MSG) [IF_END] [TRANSACTION_END]
この例のように同時更新を抑止する場合は、「クラス名.UpdateTime」を検索時に取得して、取得した値をそのまま[UPDATE]タグで指定します。同時更新の抑止は、更新の場合だけに有効です。追加・削除では同時更新を抑止できません。