0

Lotus Notes バージョン 8.5.2 を使用しています。lotus.domino Java API は比較的初めてです。アクセス拒否グループ内のメンバーを取得してファイルに入れる必要があります。提供されている API を使用してメンバーにアクセスするにはどうすればよいですか? この点で何か助けていただければ幸いです..

返信から作成できるものから次のコードを思いつきました..正しい方向に向かっているかどうか教えてください。

lotus.domino.Document fDoc = null;
lotus.domino.Database fDb = null;
lotus.domino.View view = null;

fDb = NotesSess.getDatabase(sServerName, "names.nsf");
view = fDb.getView("DenyLists");
fDoc = view.getFirstDocument();
 while(fDoc != null)
   {
      java.util.Vector fItems = fDoc.getItems();
      for(int iCnt=0 ; iCnt < fItems.size();iCnt++)
          {
            lotus.domino.Item fItem = (Item) fItems.elementAt(iCnt);
                 if(fItem.getName()== "Members")
                      {
                         Vector fItemValues = fItem.getValues();
                         int fNumValues = fItemValues.size();
                         String fValueStr = null ;
                         for(int ii=0 ;ii < fNumValues ;ii++)
                           fValueStr = (String) fItemValues.elementAt(ii);
                        }
            }
    }

変数のメンバーを取得しますfValueStrか?

4

2 に答える 2

3

help\help85_designer.nsfNotes オブジェクト参照は、ほとんどのサーバーでローカルに見つけることができます。Web バージョンは、http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp?topic=%2Fcom.ibm.designer.domino.api にあります (多くのサンプル コードが含まれています) 。 doc%2Fr_domino_Database.html

ここにいくつかの擬似コードがあります:

NotesSession オブジェクトはすでに初期化されていると仮定しました。

  1. サーバー上で開き、これをオブジェクトnames.nsfに割り当てます。NotesDatabase
  2. ビューを取得し、これをオブジェクトDenyListsに割り当てます。NotesView
  3. NotesDocumentビューを反復処理して、新しいドキュメントをそれぞれオブジェクトに割り当てます。
  4. Deny Access Group ドキュメントから取得する NptesItem は、Members であり、ユーザーまたはネストされたグループのリストが含まれています。
于 2013-01-09T09:00:28.457 に答える
0

@PanuHaaramo のコメントに記載されているように、コードは無限ループです。DenyLists ビューにグループ ドキュメントが 1 つしかない場合は、while ループは不要なので削除してください。複数ある可能性がある場合は、while ループを維持しますが、終了の直前に fDoc=view.getNextDocument(fDoc) を追加します。

パヌはまた、あなたが必要以上に自分自身を苦しめているという点でも正しい. getItems() を使用して結果をループする代わりに、文字列のベクトルを返す getItemValue("Members") を使用できます。

また、コードを実行する環境でアクセス拒否リストのネストされたグループが使用されている可能性がある場合は、追加のコードを記述して各文字列をテストし、それがユーザーかグループかを確認する必要があります。 (再帰的に、拒否リスト内のグループにもグループを含めることができるため) ネストされたグループにアクセスし、そのメンバーを取得します。

于 2013-01-09T22:51:43.417 に答える