SAPABAP-ロックオブジェクト

ロックオブジェクトは、複数のプログラムによる同じデータへのアクセスを同期するために使用されるABAPディクショナリによって提供される機能です。データレコードは、特定のプログラムの助けを借りてアクセスされます。SAPでは、データがデータベースに挿入またはデータベースで変更されたときの不整合を回避するために、ロックオブジェクトが使用されます。データレコードをロックするテーブルは、キーフィールドとともにロックオブジェクトで定義する必要があります。

ロック機構

以下は、ロック機構で実現される2つの主な機能です。

  • プログラムは、読み取りまたは変更しているデータレコードについて他のプログラムと通信できます。

  • プログラムは、別のプログラムによって変更されたばかりのデータを自分自身が読み取らないようにすることができます。

A lock requestプログラムによって最初に生成されます。次に、この要求はエンキューサーバーに送信され、ロックがロックテーブルに作成されます。エンキューサーバーがロックを設定し、プログラムは最終的にデータにアクセスする準備が整います。

ロックオブジェクトの作成

Step 1−トランザクションSE11に進みます。次の画面が開きます。

Step 2− [オブジェクトのロック]ラジオボタンをクリックします。Eで始まるロックオブジェクトの名前を入力し、[作成]ボタンをクリックします。ここではEZLOCK12を使用します。

Step 3 −簡単な説明フィールドに入力し、[テーブル]タブをクリックします。

Step 4 − [名前]フィールドにテーブル名を入力し、ロックモードを[書き込みロック]として選択します。

Step 5 − [パラメータのロック]タブをクリックすると、次の画面が表示されます。

Step 6−保存してアクティブ化します。自動的に2つの汎用モジュールが生成されます。汎用モジュールをチェックするには、移動→モジュールのロックを使用することができます。

Step 7 − [モジュールのロック]をクリックすると、次の画面が開きます。

ロックオブジェクトが正常に作成されました。

ロックオブジェクトに含まれるテーブルのキー項目はロック引数と呼ばれ、汎用モジュールの入力パラメータとして使用されます。これらの引数は、ロックオブジェクト定義によって生成されたロックを設定および削除するために使用されます。