For loop lotusnotes中的无限循环

For loop lotusnotes中的无限循环,for-loop,lotus-notes,infinite-loop,lotusscript,For Loop,Lotus Notes,Infinite Loop,Lotusscript,运行代理时,我得到无限循环错误。此代理将获取文档的值。其中一个值是请求日期,另一个值是响应日期。如果这两者之间的差异大于3,我需要选择该文档并将其发送给一个人。请帮我弄清楚怎么做 Sub Initialize On Error GoTo ErrorOut Dim sess As NotesSession Dim db As NotesDatabase Dim vwSearchRequests As NotesView Dim reqNumColl

运行代理时,我得到无限循环错误。此代理将获取文档的值。其中一个值是请求日期,另一个值是响应日期。如果这两者之间的差异大于3,我需要选择该文档并将其发送给一个人。请帮我弄清楚怎么做

Sub Initialize

    On Error GoTo ErrorOut  

    Dim sess As NotesSession
    Dim db As NotesDatabase
    Dim vwSearchRequests As NotesView
    Dim reqNumColl As NotesDocumentCollection
    Dim doc, searchDoc, reqNumDoc As NotesDocument
    Dim body As NotesMIMEEntity
    Dim header As NotesMIMEHeader
    Dim stream As NotesStream
    Dim reqPanelRes As Variant
    Dim reqNum,  totalNoRes, reqNumCount, total As Integer
    Dim reqDate, reqDate1, reqDate2, firstresponse, reqSerLine, reqSerArea, reqIntType, response As String



    Dim MailsendTime As New NotesDateTime("")
    Dim CurDate As New NotesDateTime("")
    Dim diff As Long
    Dim diff1 As Long


    Set sess = New NotesSession
    Set db = sess.CurrentDatabase
    Set vwSearchRequests = db.GetView("RequestDocConsolidated")
    Set searchDoc = vwSearchRequests.GetFirstDocument


    MsgBox "hello"
    Set stream = sess.CreateStream
    'sess.ConvertMIME = False ' Do not convert MIME to rich text
    Set doc = db.CreateDocument
    doc.Form = "Memo"
    Set body = doc.CreateMIMEEntity
    Set header = body.CreateHeader("Subject")
    Call header.SetHeaderVal("myHire - Consolidated Report")
    Set header = body.CreateHeader("To")
    Call header.SetHeaderVal("Ashutosh Das/India/IBM@IBMIN")
    Call stream.writetext(|<HTML>|)
    Call stream.writetext(|<head>|)
    Call stream.writetext(|<style>|)
    Call stream.writetext(|table.gridtable{border-width: 1px; border-color: #666666; border-collapse: collapse; width: 95%;}|)
    Call stream.writetext(|table.gridtable th{font-family: verdana,arial,sans-serif; font-size: 11px; color: #FFFFFF; border-width: 1px; padding: 4px; border-style: solid; border-color: #666666; background-color: #09092a;}|)
    Call stream.writetext(|table.gridtable td{font-family: verdana,arial,sans-serif; font-size: 11px; color: #000000; border-width: 1px; padding: 4px; border-style: solid; border-color: #666666; background-color: #ffffff;}|)
    Call stream.writetext(|</style>|)
    Call stream.writetext(|</head>|)
    Call stream.writetext(|<body bgcolor="white">|)
    'Call stream.writetext(|<img src="\myHire_Header.jpg" alt="myHire">|)
    Call stream.writetext(|<font style="font-family: verdana,arial,sans-serif; font-size: 13px; color: #333333;"><br><br>Report to show list of second line escalations gone out SL vise<br><br></font>|)
    Call stream.writetext(|<table class="gridtable">|)
    Call stream.writetext(|<tr>|)
    Call stream.writetext(|<th>Service Line</th><th>Service Area</th><th>Date of Notification</th><th>Panel Name</th><th>Tech/PDM</th><th>Panel Manager</th><th>Date Escalation mail was sent</th><th>Manager response to first escalation</th><th>Date second escalation mail was sent</th><th>Manager response to second escalation</th>|)
    Call stream.writetext(|</tr>|)

    While Not searchDoc Is Nothing

        reqNum = searchDoc.PS_RequestNo(0)

        reqSerLine = searchDoc.PS_Service_Line(0)
        reqSerArea = searchDoc.PS_Service_Area(0)
        reqDate = CStr(Format(searchDoc.RequestSendDate(0),"dd/mm/yyyy hh:mm:ss"))
        PanelId = searchDoc.PANELID(0)
        PanelType = searchDoc.Panel_Type(0)
        PeM_ID = searchDoc.PeM_NotesID(0)
        PanelResponsedate = searchDoc.PanelResponsedate(0) 
        total = 0   

        MsgBox "Hi1"
        Set reqNumColl = vwSearchRequests.GetAllDocumentsByKey(searchDoc.PS_RequestNo(0))
        Set reqNumDoc = reqNumColl.GetFirstDocument
        reqNumCount = reqNumColl.Count

        For i = 1 To reqNumCount
            If Not reqNumDoc.GetFirstItem("PanelResponse") Is Nothing Then
                reqPanelRes = reqNumDoc.GetItemValue("PanelResponse") 

                Set MailsendTime = New NotesDateTime(searchDoc.REQUESTDATE(0))
                Set CurDate = New NotesDateTime(Today)
                diff = CurDate.TimeDifference(MailsendTime)  
                diff1 = CurDate.TimeDifference(searchDoc.PanelResponsedate(0))  
                NoDays = Int(diff/86400)
                NoDays1 = Int(diff1/86400)

                MsgBox "Hi2"
                If CStr(reqPanelRes(0)) = "Accepted" Then
                    response = "Yes"
                End If

                If CStr(reqPanelRes(0)) = "Rejected" Then
                    response = "Yes"
                End If

                If CStr(reqPanelRes(0)) = "OOO" Then
                    response = "Yes"
                End If
            Else
                response = "No"
            End If
            total = total + 1

            reqDate1 = CStr(searchDoc.RequestSendDate(0)+ 2 )
            reqDate2 = CStr(searchDoc.RequestSendDate(0)+ 3 )
            Set reqNumDoc = reqNumColl.GetNextDocument(reqNumDoc)

            MsgBox "Hi3"
            If total = reqNumCount Then
                Call stream.writetext(|<tr>|)
                Call stream.writetext(|<td>| & reqSerLine & |</td><td>| & reqSerArea & |</td><td>| & reqdate & |</td><td>| & PanelId & |</td><td>| & PanelType & |</td><td>| & PeM_ID & |</td><td align=right>| & reqDate1 & |</td><td align=right>| & firstresponse & |</td><td align=right>| & reqdate2 & |</td><td align=right>| & CStr(response) & |</td>|)
                Call stream.writetext(|</tr>|)
            End If

            Set searchDoc = vwSearchRequests.GetNextDocument(searchDoc)
        Next        
    Wend

    MsgBox "Hi4"
    Call stream.writetext(|</table>|)
    user$ = sess.CommonUserName 'if scheduled agent this returns the name of the server
    'Below uses the ampersand (&) to concatenate user$
    Call stream.writetext(|<br>|)
    Call stream.writetext(|<font style="font-family: verdana,arial,sans-serif; font-size: 13px; color: #333333;">Thank you.<br><br>Regards,<br><br><b>myHire Team</b>.</font>|)
    Call stream.writetext(|</body>|)
    Call stream.writetext(|</html>|)
    Call body.SetContentFromText(stream, "text/HTML;charset=UTF-8", ENC_IDENTITY_7BIT)
    Call doc.Send(False)
    sess.ConvertMIME = True ' Restore conversion - very important

    Exit Sub

ErrorOut:
    Print "Error ocurred - Agent: agMailSendDailyReport; Error Line: " & Erl & "; Error: " & Error & "."
    Exit Sub
End Sub
子初始化
关于错误转到错误输出
将ses变暗为noteSession
Dim db As NotesDatabase
将请求按备注查看
Dim REQUNUMCOLL As NOTES文档集合
Dim文档、searchDoc、reqNumDoc As notes文档
朦胧的身躯
将标题设置为NotesMIMEHeader
暗淡无光
Dim-ReqPanels作为变体
Dim reqNum、totalNoRes、reqNumCount、总计为整数
尺寸reqDate、reqDate1、reqDate2、firstresponse、reqSerLine、reqSerArea、reqIntType、响应为字符串
Dim MailsendTime作为新的NotesDateTime(“”)
Dim CurDate作为新注释日期(“”)
暗差与长
暗扩散1一样长
设置sess=新的notesession
Set db=sess.CurrentDatabase
设置vwSearchRequests=db.GetView(“RequestDocConsolidated”)
设置searchDoc=vwSearchRequests.GetFirstDocument
MsgBox“你好”
Set stream=sess.CreateStream
“sess.ConvertMIME=False”不将MIME转换为富文本
Set doc=db.CreateDocument
doc.Form=“备忘录”
设置正文=doc.CreateMIMEEntity
Set header=body.CreateHeader(“主题”)
调用header.SetHeaderVal(“myHire-合并报告”)
Set header=body.CreateHeader(“To”)
调用header.SetHeaderVal(“Ashutosh Das/印度/IBM@IBMIN")
调用stream.writetext(| |)
调用stream.writetext(| |)
调用stream.writetext(| |)
调用stream.writetext(| table.gridtable{border width:1px;border color:#666666;border collapse:collapse;width:95%;}}
调用stream.writetext(| table.gridtable th{字体系列:verdana,arial,无衬线;字体大小:11px;颜色:#ffffffff;边框宽度:1px;填充:4px;边框样式:纯色;边框颜色:#66666666;背景颜色:#09092a;}|)
调用stream.writetext(| table.gridtable td{字体系列:verdana,arial,无衬线;字体大小:11px;颜色:000000;边框宽度:1px;填充:4px;边框样式:纯色;边框颜色:#66666666;背景色:#ffffff;}}
调用stream.writetext(| |)
调用stream.writetext(| |)
调用stream.writetext(| |)
'调用stream.writetext(| |)
调用stream.writetext(|

报告以显示第二行升级的列表) 调用stream.writetext(| |) 调用stream.writetext(| |) Call stream.writetext(|服务行服务区通知日期面板名称tech/PDMPanel manager日期上报邮件是sentManager对第一次上报的响应日期第二次上报邮件是sentManager对第二次上报的响应|) 调用stream.writetext(| |) 虽然不是,但什么都不是 reqNum=searchDoc.PS\u请求编号(0) reqSerLine=searchDoc.PS\u服务\u行(0) ReqSerrea=searchDoc.PS\u服务\u区域(0) reqDate=CStr(格式为searchDoc.RequestSendDate(0),“dd/mm/yyyy hh:mm:ss”)) PanelId=searchDoc.PanelId(0) PanelType=searchDoc.Panel\u类型(0) PeM_ID=searchDoc.PeM_NotesID(0) PanelResponsedate=searchDoc.PanelResponsedate(0) 总数=0 MsgBox“Hi1” 设置reqNumColl=vwSearchRequests.GetAllDocumentsByKey(searchDoc.PS_RequestNo(0)) 设置reqNumDoc=reqNumColl.GetFirstDocument reqNumCount=reqNumColl.Count 对于i=1的重新计数 如果不是reqNumDoc.GetFirstItem(“PanelResponse”)则为空 reqPanelRes=reqNumDoc.GetItemValue(“PanelResponse”) 设置MailsendTime=newnotesdatetime(searchDoc.REQUESTDATE(0)) 设置CurDate=newnotesdatetime(今天) diff=CurDate.时差(MailsendTime) diff1=CurDate.TimeDifference(searchDoc.PanelResponsedate(0)) NoDays=Int(差异/86400) NoDays1=Int(diff1/86400) MsgBox“Hi2” 如果CStr(需求面板(0))=“已接受”,则 答复=“是” 如果结束 如果CStr(需求面板(0))=“拒绝”,则 答复=“是” 如果结束 如果CStr(需求面板(0))=“OOO”,则 答复=“是” 如果结束 其他的 答复=“否” 如果结束 总计=总计+1 reqDate1=CStr(searchDoc.RequestSendDate(0)+2) reqDate2=CStr(searchDoc.RequestSendDate(0)+3) 设置reqNumDoc=reqNumColl.GetNextDocument(reqNumDoc) MsgBox“Hi3” 如果总数=reqNumCount,则 调用stream.writetext(| |) 调用stream.writetext(| |&reqSerLine&|&reqSerArea&|&reqdate&|&PanelId&|&PanelType&|&PeM |&reqDate1&|&firstresponse&|&reqdate2&|&CStr(响应)&) 调用stream.writetext(| |) 如果结束 设置searchDoc=vwSearchRequests.GetNextDocument(searchDoc) 下一个 温德 MsgBox“Hi4” 调用stream.writetext(| |) user$=sess.CommonUserName'如果调度代理返回服务器的名称 '下面使用符号(&)连接用户$ 调用stream.writetext(|
|) 致电stream.writetext(|谢谢。

问候,

我的员工团队。|) 调用stream.writetext(| |) 调用stream.writetext(| |) 调用body.SetContentFromText(流,“text/HTML;charset=UTF-8”,ENC_IDENTITY_7BIT) 调用doc.Send(False) sess.ConvertMIME=True“还原转换-非常重要 出口接头 错误输出: 打印“出现错误-代理:AgmailSendDailReport;错误行:”&Erl&“错误:&ERR&” 出口接头 端接头
您的代码行

   Set searchDoc = vwSearchRequests.GetNextDocument(searchDoc)
应在代码行下一步之后

否则