4D v15

Get locked records info

ホーム

 
4D v15
Get locked records info

Get locked records info 


 

Get locked records info ( aTable ) -> 戻り値 
引数   説明
aTable  テーブル in ロックされたレコードについて調べたいテーブルを指定
戻り値  Object in ロックされたテーブルについての詳細

説明   

4D v14 R3 から導入

テーマ: レコードロック

新しいGet locked records info コマンドは、 aTable で指定したテーブル内で現在ロックされているレコードについての情報を含んだobject を返します。

返されたオブジェクトは、オブジェクトの配列である"records"プロパティを格納しています:

{
    "records": [
        description object,
        (…)
    ]
}

それぞれの"description object" 配列の要素は、指定されたテーブル内でのロックされたレコードを検知し、以下のプロパティに情報を格納します:

プロパティ詳細
contextIDUUID (文字列)ロックをしているデータベースコンテキストのUUID
contextAttributesオブジェクトLOCKED BY コマンドをレコードに適用したときと同じ情報を含むオブジェクト。LOCKED BYとの違いは、Get locked records info はシステムで定義されたユーザー名を返し、4Dユーザー名を返すのではないという点です(以下の説明を参照)
recordNumber倍長整数ロックされたレコードのレコード番号

注: コマンドの挙動をより分かりやすくするために、4D v14 R3 以降 LOCKED ATTRIBUTES コマンドは LOCKED BY と改名されました。

contextAttributes オブジェクトは以下のプロパティから構成されています:

  • task_id: プロセスの参照番号
  • user_name: OSによって定義されたユーザー名
  • user4d_id: 4Dユーザー番号
  • host_name: ホストマシンの名前
  • task_name: プロセス名
  • client_version: クライアントアプリケーションのバージョン

注: 以下のコードを使用することによって、 user4d_id の値から4Dユーザー名を取得することができます:

 GET USER LIST($arrNames;$arrIDs)
 $4DUserName:=Find in array($arrIDs;user4d_id)

注: このコマンドは 4D と 4D Server に対してのみ有効です。リモートの4D またはコンポーネントから呼び出された場合には常に無効なオブジェクトを返します。ただし、 "Execute on server" オプションが有効化されている場合には呼び出し可能です。この場合返されるオブジェクトには、4Dリモートからの呼び出しの場合にはサーバーの、コンポー ネントからの呼び出しの場合にはホストデータベースの情報が含まれます。

例題  

以下のコードを実行します:

 $vOlocked :=Get locked records info([Table])

[Table]のテーブル内にて二つのレコードがロックされていた場合には、以下の様なオブジェクトが$vOlockedに返されます:

{
    "records": [
        {
            "contextID": "A9BB84C0E57349E089FA44E04C0F2F25",
            "contextAttributes": {
                "task_id": 8,
                "user_name": "roland",
                "user4d_id": 1,
                "host_name": "iMac de roland",
                "task_name": "P_RandomLock",
                "client_version": -1342106592
            },
            "recordNumber": 1
        },
        {
            "contextID": "8916338D1B8A4D86B857D92F593CCAC3",
            "contextAttributes": {
                "task_id": 9,
                "user_name": "roland",
                "user4d_id": 1,
                "host_name": "iMac de roland",
                "task_name": "P_RandomLock",
                "client_version": -1342106592
            },
            "recordNumber": 2
        }
    ]
}

コードが4D Server上で実行され、リモートのクライアントマシンによってロックされている場合、以下の様なオブジェクトが$vOlocked 内に返されます:

{
    "records": [
        {
            "contextID": "B0EC087DC2FA704496C0EA15DC011D1C",
            "contextAttributes": {
                "task_id": 2,
                "user_name": "achim",
                "user4d_id": 1,
                "host_name": "achim-pcwin",
                "task_name": "P_RandomLock",
                "is_remote_context": true,
                "client_uid": "0696E66F6CD731468E6XXX581A87554A",
                "client_version": -268364752
            },
            "recordNumber": 1
        }
    ]
}

 
プロパティ 

プロダクト: 4D
テーマ: ランゲージ

 
履歴 

 
ARTICLE USAGE

4D v15 - アップグレードリファレンス(標準版) ( 4D v15)