LockRecord

説明

レコードのロックを作成します。

レコードのロックの取得には、最大の待ち時間 (秒数) を指定する機能が含まれます。この値は、ロックを試みて失敗するまで、既存のロックが解除されるのを待機する時間です。wait_seconds パラメータで指定された値が経過するまでに、ロックを取得できない場合、ロックの試みは失敗します。

以下の理由のいずれかによってロックを取得できない場合、このメソッドは例外をスローします。
  • 機能レベルが FL7 未満である。
  • レコード タイプがシステム所有である。
  • レコードが別のユーザーによってロックされる。
  • レコードが別のセッションによってロックされる。
  • レコードがロック中に更新された。
レコードのロックを使用可能にするには、レコード タイプごとに次のようにします。
  • タイプが BASE の LockRecord という名前の新規アクションを追加します。
  • アクションに Action_Initialization フックを追加し、フックが LockRecord メソッドを呼び出すようにします。次に例を示します。
    $entity->LockRecord(0);
注: このメソッドは、バージョン 7.1 で使用可能になります。

構文

VBScript

entity.LockRecord wait_seconds 

Perl

$entity->LockRecord(wait_seconds); 
識別子
説明
entity
Entity オブジェクトは、ユーザー データ レコードを表します。構文のこの部分を省略すると、フック内では、現在のデータ レコードに対応する Entity オブジェクトが想定されます (VBScript のみ)。
wait_seconds
ロックを試みて失敗するまで、既存のロックが解除されるのを待機する秒数を指定する Long。
戻り値
なし。

VBScript

Function Defect_LockRecord(param)
' Lock Record for RECORD_SCRIPT_ALIAS action
  ' param As Variant
  ' record type name is Defect
    REM add your hook code here
  ' don't wait
    LockRecord(0) 
End Function


Sub Defect_Initialization(actionname, actiontype)
' Lock Record for BASE action Action_Initialization hook
  ' actionname As String
  ' actiontype As Long
  ' action is LockRecord
  ' record type name is Defect
    REM do any setup for the action here
    LockRecord(0)
End Sub

Perl

sub Defect_LockRecord {
 # Lock Record Script for RECORD_SCRIPT_ALIAS action
 my($result);
 my($param) = @_;
 # record type name is Defect

 if (ref ($param) eq "CQEventObject") {
   # add your CQEventObject parameter handling code here
 } elsif (ref (¥$param) eq "SCALAR") {
     # Add your scalar parameter handling code here
     # The Web clients support scalar parameter type only,
     # so the hook code added in the above section, needs to be duplicated here
    } else {
     # Add your handling code for other type parameters here, for example:
     # die("Unknown parameter type");
       }
 # don't wait
   $entity->LockRecord(0);   
  return $result;
 }


sub Defect_Initialization {
 # Lock Record script for BASE action Action_Initialization hook
    my($actionname, $actiontype) = @_;
    # $actionname as string scalar
    # $actiontype as long scalar
    # action is LockRecord
    # record type name is Defect
    # Do any setup for the action here.
      $entity->LockRecord(0);
}

フィードバック