2012-08-08 4 views
0

값이 현재 데이터베이스의 문서를 반복하는 반복이 있습니다.이 문서에는 데이터베이스와 뷰 이름이 있습니다. 반복은 데이터베이스와보기를 열고 그 안에에서 데이터를 검색 :이 모든 브라우저에서 잘 작동XPiNC에서 다른 데이터베이스의 뷰를 참조 할 수 없습니다.

var dbOther:NotesDatabase = session.getDatabase(null, doc.getItemValueString("Database")); 
if(dbOther != null){ 
    var lookupView:NotesView = dbOther.getView(doc.getItemValueString("ViewName")); 
    var viewNav:NotesViewNavigator = lookupView.createViewNavFromCategory(key); 
}  

하지만 나는 다음과 같은 오류가 Notes 클라이언트에서 xpage을 볼 경우 : 예외는 방법 NotesDatabase를 호출 발생했습니다. getView (string) null

Server 및 FilePath 속성을 로그에 기록하여 dbOther 변수가 설정되었는지 테스트했습니다. getViews 및 getAliases를 사용하여 루프를 생성하여 뷰를 볼 수 있는지 확인한 후 모든 뷰 별칭이 문제없이 로그에 기록되었습니다.

값을 문서에서 올바르게 선택하지 않았지만 동일한 오류가 발생하는 경우 수동으로보기 이름을 입력했습니다.

XPiNC의 다른 데이터베이스에있는보기에 연결할 수있는 방법이 있습니까? 나는 당신의 페이지에 뷰 데이터 소스를 동적으로 추가 할 수있게 해주는 XSnippet을 발견했다. 나는 이것이 내 문제를 해결할 수 있다고 생각하지만, 모든 것을 다시 쓰기 전에 대체 솔루션이 있는지 찾아야한다.

+0

오랜만에이 문제에 대해 읽었습니다. http://xpages.info/XPagesHome.nsf/Entry.xsp?documentId=B21BE03574FE36AD852578CB0066B5AD. 기본적으로 저자는 데이터베이스를 호출하기 위해'@Name ("[CN]", @ Subset (@DbName(), 1)) + "!! dbname.nsf"구문을 사용했습니다. 이게 너에게 도움이 될지도 모른다. – Naveen

+0

나는 원래 그 글을 썼다. 그것은 문제였습니다. 나는 그것이 이후 버전에서 수정되었다고 말했지만, 나는 그것을 실제로 확인하지 못했다. 더 이상 XPiNC를 많이 사용하지 않습니다. –

+0

이 솔루션을 게시하기 전에 찾았지만 NotesDatabase 개체로 설정하는 방법을 잘 모르겠습니다. 데이터베이스를 검색했지만 getView를 사용하는 방법을 알지 못했습니다. –

답변

3

데이터베이스에 핸들을 얻기의 이러한 다른 몇 가지 방법을 시도는 :

var dbOther:NotesDatabase = session.getDatabase("", doc.getItemValueString("Database")) 

이 하나가 대신 database.getServer()을 사용

이 사람은 현재 서버를 표시하는 대신 null 매개 변수의 ""를 사용하여 null 매개 변수 :

var dbOther:NotesDatabase = session.getDatabase(database.getServer(), doc.getItemValueString("Database")) 

이 항목은 sessionAsSigner을 사용하여 액세스 권한을 얻습니다.

var dbOther:NotesDatabase = sessionAsSigner.getDatabase(database.getServer(), doc.getItemValueString("Database")) 

당신이 로터스 노츠 8.5.3 클라이언트를 사용하고 (대신 현재 사용자의 자격 증명을 사용하여) 데이터베이스 오?

+0

안녕하세요, 당신이 제안한 각 솔루션을 시도, 문제를 해결 한 database.getServer()를 사용했다. 모든 도움을 주셔서 감사합니다 –

+0

database.getServer()가 해결책 인 이유는 "현재 서버가 무엇입니까?"라는 질문에 기반합니다. 'null'및 ' ""'은 현재 서버에 사용됩니다. 브라우저 내에서 현재 서버는 응용 프로그램을 실행하는 서버입니다. 그러나 로컬 XULRunner가 XPage를 제공하는 서버이기 때문에 XPiNC 내에서 현재 서버가 로컬 시스템입니다. 데이터베이스의 로컬 복제본이없는 경우 Notes에 사용할 서버를 지정해야합니다. –