2016-07-11 7 views
0

이 코드로 문서를로드하는 데 문제가 있습니다.DynamicControl을 외부 데이터베이스의 데이터 소스와 함께 사용

var c = getComponent("dynp") 
c.show("contact",{action:'editDocument',documentId:unid}) 

실제로는 단지 성가신 문제입니다.

var unid은 다른 데이터베이스의 문서를 가리키고 있지만 c.show은 해당 문서가 DynamicContent 코드와 동일한 데이터베이스에 있어야합니다. 는 I 그러므로 오류마다 호출 얻는 c.show("contact",{action:'editDocument',documentId:unid})

dynp 에러 mydynamic.xsp 예외 호출 방법 NotesDatabase.getDocumentByUNID (java.lang.String의)에 발생한 오류

맞춤형 컨트롤 데이터 소스는

<xp:dominoDocument formName="myForm" var="doc1" databaseName="#{javascript:getExternaldb()}" />

입니다.

따라서 문서가 올바르게로드됩니다. 하지만 여전히 성가신 오류가 발생합니다 (관리자는 만족스럽지 않습니다)

이 오류를 방지하는 방법이 있습니까?

답변

1

당신은 매개 변수로 데이터베이스 이름을 전달하지 않을거야. ignoreRequestParams를 사용하지 않으면 데이터 소스에 넣은 내용을 덮어 쓰면서 현재 데이터베이스를 사용하게됩니다.

매개 변수로 전달하면 작동합니까?

+0

나는'ignoreRequestParams = "true/false"'를 시도하고 문서가 잘로드된다. 사용자 정의 컨트롤을 열기 전에 오류가 발생합니다. d.show 명령은 데이터 소스를 알기 전에 getDocumentByUNID를 사용한다고 생각합니다. 그러나'd.show'에서 매개 변수로 데이터베이스 이름을 전달할 수 있다면 괜찮을 것입니다. 하지만 지금 구문은 없습니까? –

+0

다른 매개 변수의 구문은 속성 이름과 일치하는 것으로 보입니다. 따라서'databaseName = "# {javascript : getExternaldb()}"가 작동 할 것입니다 (CSJS 내에서 SSJS를 사용할 수 있으며 CSJS 브라우저로 전달되는 –

+0

내가 올바른 구문을 'var에 DB를 발견했다. NotesDatabase = getExternalDb(); var에는 dbserver = db.getServer() VAR dbfilepath = @ReplaceSubstring (db.getFilePath(), "\\ ","/ "); VAR의 DBNAME = +는 dbserver"! "dbfilepath +]. VAR UNID viewentries.getDocument =() getUniversalID(); VAR의 D = getComponent ("dynC "); d.show ("contact", action : 'editDocument', databaseName : dbname, documentId : unid})};' –

0

나는 당신이하는 일을 한 번도 해보지 않았습니다. 나는 네가 정말로하려는 것을 얻지 못한다. 나는 c.show의 액션 부분을 보지 못했다. 그리고 드물게 getComponent를 사용합니다.

동적 패널과 작동하는 사용자 정의 컨트롤 권한이 있습니까? 편집 모드 대 읽기 모드를 올바르게 제어하려고합니까? editMode = true/false와 같은 것으로 viewScoped 변수를 설정하지 않는 이유는 무엇입니까? 그런 다음 사용자 정의 컨트롤에서이를 읽음으로써 모드를 결정하십시오. 그 필요가 그 행동 사업 ...

+0

c.show에서 사용되는 매개 변수는 뷰 패널에서 동적 내용 컨트롤에서 문서를 여는 방법을 자세히 설명하는 문서에 나와 있습니다. https://www.ibm.com/support/knowledgecenter/SSVRGU_9.0.1/com.ibm.designer.domino.ui.doc/extlib_controls_dynamic.html – jpishko

+0

c.show ("contact", {action : 'editDocument' , documentId : unid}) url /myDb.nsf#content=contact&action=editDocument&documentId=002767D4D4DABC5BC1257FE A00420593으로 변환하면 정상적으로 작동합니다. editDocument/OpenDocument에서 문제가되지 않습니다. d.show가 문서가 다른 데이터베이스에 저장 될 때 log.nsf에서 오류를주는 것은 "그냥"성가신 문제입니다. 물론 URL을 직접 계산할 수도 있습니다. 또한 정상적으로 작동 할 것이라고 생각하지만 표시 기능을 사용할 수 있다면 사용하지 않으시겠습니까? –

+0

왜 사용하지 않습니까? 바로 그 이유 때문에 당신은 문제가 있습니다. 내장 된 것들이 항상 가장 쉬운 작업은 아닙니다. :) –