2008-09-12 6 views

답변

5
Set s = New NotesSession 
Set db = s.CurrentDatabase 

If db.Server <> "" Then 
    Set sName = New NotesName(db.Server) 
Else 
    Set sName = New NotesName(s.Username) 
End If 
-3
'initialize event of a WebQueryOpen agent 

Dim s As New notessession 
Dim servername As String 
servername = s.UserName 
+0

's.UserName'은 신뢰할 수 없습니다. 코드가 웹 사용자 또는 특수 서명 Notes ID <로 실행 중일 수 있습니다. 이 호출에서 실제 서버 이름을 가져 오지 못했습니다. – Ben

1

이미 제공하는 샘플 코드가 좋은 그러나 나는 또한이 방법을 그냥 서버의 계층 이름을 얻을 :

Set s = New NotesSession 
Set db = s.CurrentDatabase 
If db.Server <> "" Then 
    Set sName = New NotesName(db.Server) 
Else 
    Set sName = New NotesName(s.Username) 
End If 
ServerName = sName.Abbreviated 
0

게리의 답변이 가장 적합합니다. 실제로 계층 적 구문을 사용하여 서버 이름을 식별 할 수 있습니다.

dim session as new notesSession 
dim strCurrServer as string 
dim nmServer as notesName 

strCurrServer = session.currentagent.servername 
' this bit is optional 
set nmServer = new notesName(strCurrServer) 
' then you can do stuff like this 
print nmServer.Abbreviated 

웹 쿼리 오픈 에이전트에서 서버 이름을 가져 오는 가장 빠른 (더러운) 방법이 될 것입니다. notesName 클래스는 계층 적 이름을 다루기위한 편리한 객체입니다. link text

관련 문제