@DocumentUniqueID (式言語)

データベースの全レプリカの中で文書を一意的に識別するユニバーサル ID です。ユニバーサル ID は、16 進数値 (0-9、A-F) を組み合わせた 32 桁の文字列です。

ユニバーサル ID はユニーク ID や UNID ともいいます。

構文

@DocumentUniqueID

使用法

レプリカデータベース内の 2 つの文書が同じユニバーサル ID を持つときは、それらの文書はレプリカです。

この関数は、文書内で実行するどの式でも使用できます。

UNID を表示するには、この関数の結果をテキストに変換する必要があります。つまり、@Text(@DocumentUniqueID) を指定する必要があります。

UNID は、文書の全体的な ID 番号の一部分です。文書 ID を調べるには、[文書のプロパティ] インフォボックスの [文書 ID] タブをクリックします。UNID は、OF (1 行目) と ON (2 行目) に続く 2 行に、2 つの 8 文字のセグメントで示されます。

作成した文書の UNID が変更されることはありません。文書をコピーして貼り付けると、貼り付けられた文書には新しい UNID が与えられます。

各返答文書にある [$Ref] という特殊なフィールドには親文書の UNID が含まれています。

フィールド式では、@DocumentUniqueID (文字列には変換されません) は文書へのリンクとなります。

  1. 次の列式では、ビューの各文書の UNID が表示されます。
    @Text(@DocumentUniqueID)
  2. 次の計算結果フィールド式では、現在の文書への文書リンクが作成されます。
    @DocumentUniqueID
  3. この「作成時の計算結果」フィールド式を返答文書で使用すると、親文書への文書リンクが作成されます。[返答] フォームのプロパティインフォボックスの [式で選択文書からの値を引き継ぐ] チェックボックスがオンでなければなりません。
    @InheritedDocumentUniqueID
  4. 新しい返答文書の [Project] フィールドを、親であるメイントピック文書の [Project] フィールドと一致させるものとします。[返答] フォームのプロパティインフォボックスで [式で選択文書からの値を引き継ぐ] チェックボックスをオンにします。[返答] フォーム上で [Project] という計算結果フィールドを設定し、次の式を指定します。
    Project
  5. フィールドの引き継ぎが行われるのは、返答文書を作成するときの一度だけです。ただし、ここでは返答文書の作成後にメイントピックにアクセスしようとしています。定期的に実行されるエージェントを作成します。データベース内で [返答] フォームを使用するすべての文書を選択し、次の式を実行します。
    FIELD Project := @GetDocField($Ref; "Project");
    @All
  6. 問題を解決する処理は少々長くなります。例えば、[By doc ID] という非表示ビューを作成し、次の選択式を指定します。
    SELECT Form = "Main Topic"

    最初の列はソートされる列で、この列には次の式を指定します。

    @Text(@DocumentUniqueID)

    定期的に実行されるエージェントを作成します。データベース内で [返答] フォームを使用するすべての文書を選択し、次の式を実行します。

    FIELD Project := @DbLookup("":""; ""; "By doc ID"; @Text($Ref); "Project");
    @All

    エージェントが実行されるたびに、[By doc ID] ビューで、現在の返答文書の親文書 (つまり、@DocumentUniqueID が現在の文書の [$Ref] フィールドと一致する文書) であるメイントピックが検索されます。次に、[Project] フィールドの内容が親文書から子文書にコピーされます。

クロスリファレンス

LotusScript® NotesDocument クラスの UniversalID プロパティ

Java™ Document クラスの UniversalID プロパティ

LotusScript NotesRichTextDocLink クラスの DocUNID プロパティ