$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]タグで指定します。同時更新の抑止は、更新の場合だけに有効です。追加・削除では同時更新を抑止できません。