2017-05-17 21 views
1

文書のフィールドを「作成するときに計算する」必要があるので、ここではClient + Formulaのみのオプションです。IBM Lotus Dominoで@GetDocFieldを使用して現在のデータベースと異なるデータベースを使用する方法

私は@DbLookup( "": "NoCache"; "サーバー": "db"; "表示"; "キー"; fieldName)を使用しています。別のサーバ/データベースを参照し、特定のドキュメントのUNIDに戻ってきます。 UNIDは現在のデータベースではなく、サーバー/ dbデータベースに有効です。このUNIDを使用して、リモートドキュメントの値をフェッチ/設定するにはどうすればよいですか。 IBMのドキュメントでは、ローカルDBのみの@GetDocField(UNID、fieldName)と@SetDocField(UNID、fieldName、value)が見つかりました!

このUNIDは、リモートデータベース上のドキュメントを表すため、実際に意味のある方法でこのUNIDを使用するにはどうすればよいでしょうか。私は答えを40分探しました!

+0

ターゲットデータベースのUNIDによってインデックス付けされたビューがある場合は、DbLookupをGetDocFieldに相当するものとして使用できます。しかし、Torstenが以下に述べるように、現在のデータベースの外にはSetDocFieldに相当するものは存在しません。これを行うには、LotusScript(またはJava)コードを呼び出す必要があります。 –

答えて

5

これは数式言語を使用することはできません。あなたは本当にあなたが持っている状況で、ロータススクリプトを使用することができない場合 ロータススクリプトでは、あなたが

Dim db as New NotesDatabase("server" , "db") 
Dim doc as NotesDocument 
Set doc = db.getDocumentByUnid(uuid) 
Call doc.ReplaceItemValue("fieldname" , value) 

を使用することができます(通常、あなたがそれを必要なとき、あなたはおそらく唯一使用しようとどこ/ロータススクリプトを使用するオプションがあります間違ったコンテキスト/イベント/なにか)、上記のコードでlitteのLotusScript-Agentを作成し、notes.ini-パラメータ、profile-ドキュメント、またはあなたにとって最適なものを介してuuidを渡す可能性があります。

0

私の評判はコメントするには低すぎますので、私は思考を追加する答えを投稿する必要があります。 @UpdateFormulaContextを試しましたか?

UNID := @DbLookup(...[ReturnDocumentUniqueID]); 
@Command([OpenDocument]....UNID); 
@UpdateFormulaContext; 
@SetDocField(@DocumentUniqueID; ...); 

@UpdateFormulaContextは間違いなく(IBMのLotus Domino Designerヘルプから) '現行' のドキュメントをリセットすることができます:

tempDate := @GetDocField(@DocumentUniqueID;"CreatedDate"); 
@Command([NavPrev]); 
@Command([EditDocument]); 
@UpdateFormulaContext; 
@SetDocField(@DocumentUniqueID;"nextCreated";tempDate) 

「あなたがから値を抽出するために@UpdateFormulaContextを使用するかに値を設定することができます@DbName、@DbTitle、@Created、@DocumentUniqueID、@GetDocField、@GetField、@GetProfileDocumentなどの関数を使用して、ドキュメントやデータベース固有の情報にアクセスすることもできます。

ワース・ア・パンツ。

関連する問題