Hitachi

JP1 Version 12 JP1/IT Desktop Management 2 - Asset Console アクセス定義ファイル作成ガイド


[TRANSACTION](トランザクション範囲定義)

アクセス定義ファイルを使用して操作画面をカスタマイズしている場合、トランザクションとして扱う範囲を指定します。

トランザクションとして定義した範囲の処理を終了するときに、処理状態が正常(NORMAL)の場合はトランザクションのコミットを、処理状態が正常以外の場合はトランザクションのロールバックを行います。

〈このページの構成〉

形式

[TRANSACTION]
  ・・・
  [BEGIN]
    ・・・
  [END]
[TRANSACTION_END]

指定する値

トランザクションの処理を記述します。

注意事項

トランザクション処理を終了するかどうかは、トランザクション処理を終了するタグである[TRANSACTION_END]、またはトランザクション処理を途中で抜ける組み込み関数$BREAKで、参照した終了状態によって判定されます。終了状態が「NORMAL」の場合は直前にコミットします。「NORMAL」以外のときはコミットしません(ロールバックします)。

アクセス定義ファイルの終了状態は、タグや組み込み関数の実行によって随時更新されます。トランザクション中に終了状態の更新を伴う処理を複数指定した場合、最後に指定した終了状態を基に、データベースのコミットまたはロールバックが実行されます。

そのため、[TRANSACTION_END]タグおよび組み込み関数$BREAKでその直前にコミットする場合は、$SETSTATUSで「NORMAL」を明示的に指定してください。また、コミットしない(ロールバックする)場合は、「NORMAL」以外を明示的に指定してください。

なお、トランザクション処理は階層化できません。

記述例

トランザクション処理の記述例を次に示します。

[TRANSACTION]
  [APPEND]
    AssetInfo
  [DATA]
    AssetInfo.AssetID = '10000'
    AssetInfo.AssetNo = '10000'
    AssetInfo.AssetWorkKind = '001'
    AssetInfo.AssetKind = '001'
    AssetInfo.AssetBranchNo = '0'
  [SET_VALUE]
    STATUS = $GETSTATUS()
  [IF]
    STATUS = NORMAL
  [THEN]
    ##処理1
    [APPEND]
      InstalledInfo
    [DATA]
      InstalledInfo.InstalledID = '10000'
      InstalledInfo.AssetID = '10000'
    [SET_VALUE]
      STATUS = $GETSTATUS()
    [IF]
      STATUS = NORMAL
    [THEN]
      ##処理2
      [SET_VALUE]
        MSG = 'TRANSACTION : COMMIT'
        $ECHO(MSG)
    [ELSE]
      ##処理3
      [SET_VALUE]
        MSG = 'TRANSACTION : ROLLBACK'
        $ECHO(MSG)
    [IF_END]
  [ELSE]
    ##処理4
    [SET_VALUE]
      MSG = 'TRANSACTION : ROLLBACK'
      $ECHO(MSG)
  [IF_END]
[TRANSACTION_END]

上記の処理では、次のように例外処理が実行されます。