大家帮我看看这个代理有什么问题?

netnest 2003-03-05 11:10:12
症状:用Notes调试时,发现doc没有item!? 为什么?当然运行此代理的表单域都全


Sub Initialize
Dim session As New NotesSession
Dim doc As NotesDocument
Set doc = session.DocumentContext

'发到待办事宜
Dim thisdb,dbsydb As NotesDatabase
Set thisdb=session.currentdatabase
Set dbsydb=session.getdatabase(thisdb.server,"oa\\dbsy.nsf")
Dim readername As notesname

tt=Evaluate("@name([cn];@username)")
myname=tt(0)
Forall i In doc.MeetMan
Set dbsydoc=dbsydb.CreateDocument
Set readername=New notesname(i)
dbsydoc.Form="dbsy"
dbsydoc.lx="被委托事宜"
dbsydoc.From=myname
dbsydoc.to=readername.common
dbsydoc.subject=myname+"发给你一件委托事宜"
dbsydoc.rq=Now
Dim readersItem As New NotesItem(dbsydoc,"reader",readername.Canonical,READERS)
Dim rtitem1 As Variant
Set rtitem1 = New NotesRichTextItem(dbsyDoc, "Body" )
Call rtitem1.AppendDocLink(doc,"请双击图标打开返回的文件" )
Call dbsyDoc.save(True,True,True)
End Forall
Call doc.save(True,True)

End Sub
...全文
26 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jimmyvk 2003-03-06
  • 打赏
  • 举报
回复
检查代理是否错误用notesagent类,查看文档变量情况在文档属性里的"域"下查看其当前值.
netnest 2003-03-06
  • 打赏
  • 举报
回复
谢谢大家的热心解答。

现在我遇到的问题的核心是:为什么我用Client端预览调用该代理的表单时,调试代理时发现doc变量中的item一个内容也没有,可是该表单明明有很多域的啊!?


我想大家调试一个代理在B/S结构中是否正常,也是用NotesClient端调试代理的吧?
walkskyman 2003-03-06
  • 打赏
  • 举报
回复
DocumentContext在client只能在视图中用,看帮助,在web下才指的是当前文档的后台文档,所以先看看你的doc有没有取对。
kingwgh 2003-03-06
  • 打赏
  • 举报
回复
在表单上放一个域:REMOTE_USER,计算公式为:remote_user
然后修改代码为:
Sub Initialize
Dim session As New NotesSession
Dim doc As NotesDocument
dim item as notesitem
Set doc = session.DocumentContext

'发到待办事宜
Dim thisdb,dbsydb As NotesDatabase
Set thisdb=session.currentdatabase
Set dbsydb=session.getdatabase(thisdb.server,"oa\\dbsy.nsf")
Dim readername As notesname

tt=doc.remote_user(0)
myname=tt
set item = doc.getfirstitem("MeetMan")
Forall i In item.values
Set dbsydoc=dbsydb.CreateDocument
Set readername=New notesname(i)
dbsydoc.Form="dbsy"
dbsydoc.lx="被委托事宜"
dbsydoc.From=myname
dbsydoc.to=readername.common
dbsydoc.subject=myname+"发给你一件委托事宜"
dbsydoc.rq=Now
Dim readersItem As New NotesItem(dbsydoc,"reader",readername.Canonical,READERS)
Dim rtitem1 As Variant
Set rtitem1 = New NotesRichTextItem(dbsyDoc, "Body" )
Call rtitem1.AppendDocLink(doc,"请双击图标打开返回的文件" )
Call dbsyDoc.save(True,True,True)
End Forall
Call doc.save(True,True)

End Sub
zhangxf 2003-03-06
  • 打赏
  • 举报
回复
同意: yeyeh(边走边看)
1.tt=Evaluate("@name([cn];@username)")得到的是服务器名,因为它是在服务器端运行的!
你可以用CGI变量来获得当前用户名,Remote_user
2.对于多值域的情况建议你建立一个函数来拆分获取,这样你可以随时调用,非常方便!
yeyeh 2003-03-05
  • 打赏
  • 举报
回复
另外,要遍列多值域,要先生成一个item对象;set item=doc.getfirstitem("MeetMan"),然后用
forall i in item.values 得到每个内容。
yeyeh 2003-03-05
  • 打赏
  • 举报
回复
首先,tt=Evaluate("@name([cn];@username)")是不对的,它只能得到代理签名者的名字,因为代理是在服务器端运行的嘛。

535

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 Exchange Server
社区管理员
  • 消息协作社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧