0

xpage の背後にあるすべての機能を表す Java Bean があります。xpage を保存するとメソッドが呼び出され、xpage データ ソースを DominoDocument オブジェクトとして渡します。私が抱えている問題は、著者と読者のフィールドを設定するときです。「item.setAuthors(true);」を使用するために Item オブジェクトを取得できません。DominoDocument オブジェクトを使用するため、代わりに Document オブジェクトを取得する必要があります。

(dDoc = DominoDocument passed into the save method via SSJS call to it)

Document doc = dDoc.getDocument(true); 
Vector<String> editors = new Vector<String>();       
editors = getUniqueList(dDoc,editors,"AdditionalEditors") ;  
Item item = doc.replaceItemValue("Authors", editors);  
item.setAuthors(true) ; 
doc.save(); 

新しいドキュメントの最初の保存は機能しているように見えますが、その後の保存では現在のドキュメントの新しい複製コピーが作成されます。バックエンドの変更がフロントエンドのドキュメントに渡されていません。dominoDocument オブジェクトを使用して author/readers フィールドを設定する方法や、バックエンド ドキュメントで保存を呼び出した後に DominoDocument を変更内容でラップする方法はありますか。dDoc.restoreWrappedDocument() を試しましたが、うまくいきませんでした。

4

1 に答える 1

0

Author フィールドと Reader フィールドを取得するには、次の 2 つのオプションがあります。

  • それらをフォームに追加し、保存操作に「ComputeWithForm」を指定します
  • フィールドを設定する querySave イベントにコードを追加します。そこにドキュメントを保存しないでください (ドキュメントが保存される前に実行される関数です)。

いずれにせよ、どのスコープでも dDoc への参照を保持しないようにしてください

于 2013-03-25T15:54:46.670 に答える