问题描述
我在 LotusScript 中有一个代理,它构建了一个格式整齐的文档链接和描述表,用作每月提醒摘要。当我手动运行它(Agent-Run)时,它会发送一条与代码匹配的完美消息。
但是,当我安排同一个代理时,输出会丢失所有表格样式以及附加的文档链接。这使得出站电子邮件无用。服务器在 ACL 中作为经理,检查所有角色的权限与我的 ID 相同/更高。在代理属性中,安全设置级别为 3,以允许具有完全管理权限的受限操作。
选项公开 选项声明
子初始化 Dim 会话作为新的 NotesSession Dim db 作为 NotesDatabase 设置 db = session.currentdatabase Dim docs,keydocs 作为 NotesDocumentCollection Dim keydoc,doc As NotesDocument Dim dt As New NotesDateTime(Today) Dim dtstr,key As String,svr As String,sendto As string Dim mfgview、dptview 作为 NotesView Dim reldb 作为 NotesDatabase 设置 reldb = session.Getdatabase("Server","db.nsf") Dim relview 作为 NotesView Set relview = reldb.Getview("(Categorized docs-Rev_ob)") Dim bkmdoc 作为笔记文档
Set mfgview = db.Getview("DutyRosterMaint") 'mfg dept
Set dptview = db.Getview("2-5 years dept") 'docs needed to be reviewed
Dim j,keydocct,keyct As Integer
Dim vardp,varnm As Variant
vardp = Evaluate({@DBColumn("":"Nocache";@DBName;"DutyRosterMaint"; 1)})'get dept name in array
keyct = UBound(vardp)
If keyct > 0 Then
Set keydoc = mfgview.GetFirstDocument
'Do Until keydoc Is Nothing
For j = 0 To keyct-1
key = vardp(j)
varnm = Evaluate({@DBLookup("":"Nocache";@DBName;"DutyRosterMaint";"}& key &{";2;[FailSilent])})
Set docs = dptview.Getalldocumentsbykey(key,true)
Dim dcct,i,cellnm As Integer
dcct = docs.count
If dcct>0 Then
Dim maildoc1 As New NotesDocument ( db )
Dim rtitem1 As New NotesRichTextItem ( maildoc1,"Body" )
Call rtitem1.AppendText ("Hello,")
Call rtitem1.AddNewLine ( 2)
Dim bodytxt As String
bodytxt = "This is an automated monthly email. "&_
"You are receiving this email because you are listed as the reviewer responsible for the documents below." &_
Chr$(13) & Chr$(13) &_
"The documents listed have not been revised in in 2 years (xx) or 5 years (all other types).Please determine if these documents are still necessary,accurate and suitable for use or coordinate with the appropriate individual to conduct the review." &_
Chr$(13) & Chr$(13) &_
"When done,the 'Set Review Date' button must be clicked on each document to reset the document review date. " &_
Chr$(13) & Chr$(13) &_
"If you have any questions or need assistance,please contact me or refer to BKM-0013 section VIII for additional guidance. " &_
Chr$(13) & Chr$(13) &_
"Thank you,"
Call rtitem1.AppendText (bodytxt)
Call rtitem1.AppendDocLink(bkmdoc,"xx-0013")
Call rtitem1.AppendText( " xx-0013")
Call rtitem1.AddNewLine ( 2)
Dim rtnav As NotesRichTextNavigator
Set rtnav = rtitem1.Createnavigator
Dim richStyle As NotesRichTextStyle
Set richStyle = session.CreateRichTextStyle
richStyle.Bold = True
richStyle.Underline = True
richStyle.FontSize = 12
Call rtitem1.Appendstyle(richStyle)
Call rtitem1.AppendText (key)
Set richStyle = session.CreateRichTextStyle
richStyle.Bold = False
richStyle.Underline = False
richStyle.FontSize = 10
Call rtitem1.Appendstyle(richStyle)
Call rtitem1.AddNewLine ( 1)
Dim rtt As NotesRichTextTable
Dim styles(0 To 5) As NotesRichTextParagraphStyle
'link
Set styles(0) = session.CreateRichTextParagraphStyle
styles(0).Alignment = 0
styles(0).Firstlineleftmargin = 0
styles(0).Leftmargin = 0
styles(0).RightMargin = RULER_ONE_CENTIMETER * 0.7
'approval date
Set styles(1) = session.CreateRichTextParagraphStyle
styles(1).Alignment = 0
styles(1).Firstlineleftmargin = 0
styles(1).Leftmargin = 0
styles(1).RightMargin = RULER_ONE_CENTIMETER * 2
'docnum
Set styles(2) = session.CreateRichTextParagraphStyle
styles(2).Alignment = 0
styles(2).Firstlineleftmargin = 0
styles(2).Leftmargin = 0
styles(2).RightMargin = RULER_ONE_CENTIMETER * 2
'title
Set styles(3) = session.CreateRichTextParagraphStyle
styles(3).Alignment = 0
styles(3).Firstlineleftmargin = 0
styles(3).Leftmargin = 0
styles(3).RightMargin = RULER_ONE_CENTIMETER * 7.5
'rev
Set styles(4) = session.CreateRichTextParagraphStyle
styles(4).Alignment = 0
styles(4).Firstlineleftmargin = 0
styles(4).Leftmargin = 0
styles(4).RightMargin = RULER_ONE_CENTIMETER * 0.8
'last editor
Set styles(5) = session.CreateRichTextParagraphStyle
styles(5).Alignment = 0
styles(5).Firstlineleftmargin = 0
styles(5).Leftmargin = 0
styles(5).RightMargin = RULER_ONE_CENTIMETER * 4
Set rtt = rtnav.Getfirstelement(RTELEM_Type_Table)
Call rtitem1.Appendtable(dcct+1,6,styles)
maildoc1.Form = "Memo"
If varnm(0) = "" THen
maildoc1.SendTo = "Test"
Else
maildoc1.SendTo = varnm
End if
Dim devnm(2) As Variant
devnm(1) = "Test"
maildoc1.SendTo = devnm
maildoc1.CopyTO = "Test"
maildoc1.Subject = "Process Document Review Due for: " & key
Set doc = docs.Getfirstdocument()
'link
Call rtnav.Findnthelement(RTELEM_TYPE_TABLECELL,1)
Call rtitem1.Begininsert(rtnav)
Call rtitem1.AppendText("Link")
Call rtitem1.EndInsert
'approval date
Call rtnav.Findnthelement(RTELEM_TYPE_TABLECELL,2)
Call rtitem1.Begininsert(rtnav)
Call rtitem1.AppendText("Approval Date")
Call rtitem1.EndInsert
'docnum
Call rtnav.Findnthelement(RTELEM_TYPE_TABLECELL,3)
Call rtitem1.Begininsert(rtnav)
Call rtitem1.AppendText("Doc Num")
Call rtitem1.EndInsert
'title
Call rtnav.Findnthelement(RTELEM_TYPE_TABLECELL,4)
Call rtitem1.Begininsert(rtnav)
Call rtitem1.AppendText("Title")
Call rtitem1.EndInsert
'rev
Call rtnav.Findnthelement(RTELEM_TYPE_TABLECELL,5)
Call rtitem1.Begininsert(rtnav)
Call rtitem1.AppendText("Rev")
Call rtitem1.EndInsert
'last editor
Call rtnav.Findnthelement(RTELEM_TYPE_TABLECELL,6)
Call rtitem1.Begininsert(rtnav)
Call rtitem1.AppendText("Last Editor")
Call rtitem1.EndInsert
cellnm = 7
For i = 1 To dcct
If doc.Status(0) = "Approved" then
'link
Call rtnav.Findnthelement(RTELEM_TYPE_TABLECELL,cellnm)
Call rtitem1.Begininsert(rtnav)
Call rtitem1.AppendDocLink(doc,doc.DocNum(0))
Call rtitem1.EndInsert
'approval date
Call rtnav.Findnthelement(RTELEM_TYPE_TABLECELL,cellnm+1)
Call rtitem1.Begininsert(rtnav)
Call rtitem1.AppendText(doc.DisplayAppDate(0))
Call rtitem1.EndInsert
'docnum
Call rtnav.Findnthelement(RTELEM_TYPE_TABLECELL,cellnm+2)
Call rtitem1.Begininsert(rtnav)
Call rtitem1.AppendText(doc.DocNum(0))
Call rtitem1.EndInsert
'title
Call rtnav.Findnthelement(RTELEM_TYPE_TABLECELL,cellnm+3)
Call rtitem1.Begininsert(rtnav)
Call rtitem1.AppendText(doc.Subject(0))
Call rtitem1.EndInsert
'rev
Call rtnav.Findnthelement(RTELEM_TYPE_TABLECELL,cellnm+4)
Call rtitem1.Begininsert(rtnav)
Call rtitem1.AppendText(CStr(doc.Revision(0)))
Call rtitem1.EndInsert
'last editor
Call rtnav.Findnthelement(RTELEM_TYPE_TABLECELL,cellnm+5)
Call rtitem1.Begininsert(rtnav)
Call rtitem1.AppendText(doc.LastEditor(0))
Call rtitem1.EndInsert
Else
If doc.Revision(0) > 1 Then
Dim reldc As NotesDocument
Set reldc = relview.Getdocumentbykey(doc.DocNum(0),True)
If Not (reldc Is Nothing) Then
'link
Call rtnav.Findnthelement(RTELEM_TYPE_TABLECELL,cellnm)
Call rtitem1.Begininsert(rtnav)
Call rtitem1.AppendDocLink(reldc,reldc.DocNum(0))
Call rtitem1.EndInsert
'approval date
Call rtnav.Findnthelement(RTELEM_TYPE_TABLECELL,cellnm+1)
Call rtitem1.Begininsert(rtnav)
Call rtitem1.AppendText(reldc.DisplayAppDate(0))
Call rtitem1.EndInsert
'docnum
Call rtnav.Findnthelement(RTELEM_TYPE_TABLECELL,cellnm+2)
Call rtitem1.Begininsert(rtnav)
Call rtitem1.AppendText("*"&reldc.DocNum(0))
Call rtitem1.EndInsert
'title
Call rtnav.Findnthelement(RTELEM_TYPE_TABLECELL,cellnm+3)
Call rtitem1.Begininsert(rtnav)
Call rtitem1.AppendText(reldc.Subject(0))
Call rtitem1.EndInsert
'rev
Call rtnav.Findnthelement(RTELEM_TYPE_TABLECELL,cellnm+4)
Call rtitem1.Begininsert(rtnav)
Call rtitem1.AppendText(CStr(reldc.Revision(0)))
Call rtitem1.EndInsert
'last editor
Call rtnav.Findnthelement(RTELEM_TYPE_TABLECELL,cellnm+5)
Call rtitem1.Begininsert(rtnav)
Call rtitem1.AppendText(reldc.LastEditor(0))
Call rtitem1.EndInsert
End If
End If
End if
Set doc = docs.getnextdocument(doc)
cellnm = cellnm +6
Next
svr = UCase(db.Server)
If InStr(svr,"DEV") > 0 Or svr = "" Then
Call rtitem1.Addnewline(1)
If varnm(0) = "" Then
sendto = "Test"
Else
sendto = "Test"
End If
Call rtitem1.Addnewline(3)
Call rtitem1.AppendText( "-------------------------------------------------------------------------------------------------")
Call rtitem1.Addnewline(1)
Call rtitem1.AppendText( "Bypassed delivery for testing from being delivered to : " & sendto)
maildoc1.sendto = "Test"
Call maildoc1.Send( true )
Else
Call maildoc1.Send( true )
End If
End If
'Set keydoc = mfgview.getnextdocument(keydoc)
'Loop
next
MsgBox "Notifications have been sent successfully."
End If
结束子
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)