Lotus notes 正在运行邮件文档,服务器链接工作不正常

Lotus notes 正在运行邮件文档,服务器链接工作不正常,lotus-notes,lotusscript,lotus,lotus-formula,Lotus Notes,Lotusscript,Lotus,Lotus Formula,问题: 使用代理运行和发送邮件提供不同的链接 邮件包含不包含数据库的链接 我将其设置为发送到雅虎邮件 Sub Initialize() Print"Agent:First Reminder for LateIn Reason started running at " & DateValue(Now()) & "," + TimeValue(Now()) Dim ss As New NotesSession Dim db As NotesDatabase Dim LateInVw

问题:

  • 使用代理运行和发送邮件提供不同的链接

  • 邮件包含不包含数据库的链接

  • 我将其设置为发送到雅虎邮件

    Sub Initialize()
    Print"Agent:First Reminder for LateIn Reason started running at " & DateValue(Now()) & "," + TimeValue(Now())
    Dim ss As New NotesSession
    Dim db As NotesDatabase
    Dim LateInVw As NotesView
    Dim LateInDocs As NotesViewEntryCollection
    Dim LateEntry As NotesViewEntry
    Dim LateDoc As NotesDocument
    Dim StaffVw As NotesView, StaffDoc As NotesDocument
    Dim MailDoc As NotesDocument
    Dim rtBody As NotesRichTextItem
    Dim sysdoc As NotesDocument, sysVw As NotesView
    Dim AttVw As NotesView, Attdoc As NotesDocument
    
    Set db=ss.Currentdatabase
    
    Set sysVw=db.getview("($System Settings)")
    Set sysdoc=sysvw.getfirstdocument
    If sysdoc Is Nothing Then Exit Sub
    
    
    Set LateInVw=db.getview("(Testing Late-In Time Records)")
    
    
    Set StaffVw=db.getview("($Active Staff by ID)")
    
    Set AttVw = db.Getview("($Effective Attendance Setting By ID)")
    tdy=Datevalue(Now)
    
    'get all time records for today
    Set LateInDocs=LateInVw.Allentries
    Set lateEntry=LateInDocs.getfirstentry
    Do While Not LateEntry Is Nothing
        Set LateDoc=LateEntry.Document
        Set Attdoc=Attvw.Getdocumentbykey(LateDoc.TStaffID(0), True)
        If Attdoc.LateAtt(0)="Yes" Then
        If LateDoc.LateReason(0)=""  Then
            If Not ApprovedLateIn(LateDoc, LateDoc.TAmend(0), False) Then
            'get staff mail
                Set staffDoc=StaffVw.Getdocumentbykey(LateDoc.TStaffID(0), True)
                If Not staffdoc Is Nothing Then
                'send email with link to main menu
                    If email$<>staffDoc.email(0) Then
                    '   email$=staffDoc.email(0)
                        email$="chee111385@gmail.com"
                        Set Maildoc=New NotesDocument(db)
                        Set maildoc=db.Createdocument()
                        maildoc.Form="First Reminder Notification"
                        maildoc.Subject="Smartcard Attendance System: Late-In Notification for " +Format$(LateDoc.TDate(0),"dd/mm/yyyy")
                        Maildoc.StaffName=staffDoc.StaffName(0)
                        maildoc.Sendto="chee111385@gmail.com"
                    '   maildoc.NotifyDate=LateDoc.Tdate(0)
                        maildoc.NotifyTime=Timevalue(LateDoc.TAmend(0))
                        maildoc.NotesServer=sysdoc.ServerPath(0)
                        maildoc.NotesDBPath=sysdoc.DBPath(0)
                        maildoc.send(True)
                    End If
                End If
            End If 'check against unimas's jadual kedatangan
        End If 'check for late in reason
        End If 'check late-in on/off in attendance settings
        Set LateEntry=LateInDocs.Getnextentry(LateEntry)
    Loop
    
    
    End Sub
    
    子初始化()
    打印“代理:延迟原因的第一个提醒在“&DateValue(Now())&”、“+TimeValue(Now())开始运行”
    将ss变暗为新注释会话
    Dim db As NotesDatabase
    如注释视图所示的暗淡延迟视图
    Dim LateInDocs As NotesViewEntryCollection
    将延迟输入变暗为注释查看
    Dim LateDoc As notes文档
    将StaffVw调暗为注释视图,将StaffDoc调暗为注释文档
    Dim MailDoc As NOTES文档
    将rtBody标注为注释RichTextItem
    Dim sysdoc作为NotesDocument,sysVw作为NotesView
    调暗AttVw为注释视图,Attdoc为注释文档
    设置db=ss.Currentdatabase
    Set sysVw=db.getview(“($System Settings)”)
    设置sysdoc=sysvw.getfirstdocument
    如果sysdoc为Nothing,则退出Sub
    Set LateInVw=db.getview(“(测试延迟记录)”)
    设置StaffVw=db.getview(“($activestaff by ID)”)
    Set AttVw=db.Getview(“($Effective attention Setting By ID)”)
    tdy=日期值(现在)
    “获取今天的所有时间记录
    设置LateInDocs=LateInVw.Allentries
    Set lateEntry=LateInDocs.getfirstentry
    做事不迟到没什么
    Set LateDoc=LateEntry.Document
    设置Attdoc=Attvw.Getdocumentbykey(LateDoc.TStaffID(0),True)
    如果Attdoc.LateAtt(0)=“是”,则
    如果LateDoc.LateReason(0)=“那么
    如果未批准LATEIN(LateDoc,LateDoc.TAmend(0),False),则
    “收到员工邮件
    设置staffDoc=StaffVw.Getdocumentbykey(LateDoc.TStaffID(0),True)
    如果不是staffdoc什么都不是
    '发送带有主菜单链接的电子邮件
    如果电子邮件$staffDoc.email(0),则
    'email$=staffDoc.email(0)
    电子邮件$=”chee111385@gmail.com"
    设置Maildoc=新的NotesDocument(db)
    设置maildoc=db.Createdocument()
    maildoc.Form=“首次提醒通知”
    maildoc.Subject=“智能卡考勤系统:延迟通知”+格式$(LateDoc.TDate(0),“dd/mm/yyyy”)
    Maildoc.StaffName=staffDoc.StaffName(0)
    maildoc.Sendto=”chee111385@gmail.com"
    'maildoc.NotifyDate=LateDoc.Tdate(0)
    maildoc.NotifyTime=Timevalue(LateDoc.TAmend(0))
    maildoc.NotesServer=sysdoc.ServerPath(0)
    maildoc.NotesDBPath=sysdoc.DBPath(0)
    maildoc.send(True)
    如果结束
    如果结束
    如果结束,检查unimas的jadual Kedatatangan
    如果“检查延迟原因”,则结束
    如果“在考勤设置中检查延迟开/关”,则结束
    Set LateEntry=LateInDocs.Getnextentry(LateEntry)
    环
    端接头
    
  • 我将在这里附上我的图像文件和编码

    从这张图中你可以看到,实际上我想把

    notes://Mulu/SmartCard Attendance/sas-server.nsf/Scais Main?OpenFrameset

    但邮件发送的结果是

    notes:////Scais Main?OpenFrameset

    没有服务器和数据库。我不确定我的编码哪一部分是错的

    另一个附件是我用作mail.form的表单


    首先:像您这样使用自定义表单发送外部邮件不是最好的主意,因为目标系统可能无法相应地呈现所有内容

    也就是说,我将首先创建一个包含所有数据的文档,然后将其呈现给maildoc。代码如下所示:

    Dim Templatedoc as NotesDocument
    Dim body as NotesRichtextItem
    
    Set Templatedoc=New NotesDocument(db)
    Set Templatedoc=db.Createdocument()
    Templatedoc.Form="First Reminder Notification"
    Templatedoc.StaffName=staffDoc.StaffName(0)
    '   maildoc.NotifyDate=LateDoc.Tdate(0)
    Templatedoc.NotifyTime=Timevalue(LateDoc.TAmend(0))
    Templatedoc.NotesServer=sysdoc.ServerPath(0)
    Templatedoc.NotesDBPath=sysdoc.DBPath(0)
    
    Set maildoc=New NotesDocument(db)
    maildoc.Form = "Memo"
    maildoc.Subject="Smartcard Attendance System: Late-In Notification for " +Format$(LateDoc.TDate(0),"dd/mm/yyyy")
    maildoc.Sendto="chee111385@gmail.com"
    
    Set body = New NotesRichtextItem( maildoc, "Body" )
    Call Templatedoc.RenderToRTItem( body )
    
    maildoc.send(True)
    
    第二:设置两个字段(NotesServer和NotesDBPath)来计算链接。但实际上,您的链接是根据环境变量计算的,而这些变量不是在服务器上设置的

    将链接-计算-公式更改为:

    srv := NotesServer;
    pth := NotesDBPath;
    

    这应该是链接的诀窍。

    首先:像您这样使用自定义表单发送外部邮件不是最好的主意,因为目标系统可能无法相应地呈现所有内容

    也就是说,我将首先创建一个包含所有数据的文档,然后将其呈现给maildoc。代码如下所示:

    Dim Templatedoc as NotesDocument
    Dim body as NotesRichtextItem
    
    Set Templatedoc=New NotesDocument(db)
    Set Templatedoc=db.Createdocument()
    Templatedoc.Form="First Reminder Notification"
    Templatedoc.StaffName=staffDoc.StaffName(0)
    '   maildoc.NotifyDate=LateDoc.Tdate(0)
    Templatedoc.NotifyTime=Timevalue(LateDoc.TAmend(0))
    Templatedoc.NotesServer=sysdoc.ServerPath(0)
    Templatedoc.NotesDBPath=sysdoc.DBPath(0)
    
    Set maildoc=New NotesDocument(db)
    maildoc.Form = "Memo"
    maildoc.Subject="Smartcard Attendance System: Late-In Notification for " +Format$(LateDoc.TDate(0),"dd/mm/yyyy")
    maildoc.Sendto="chee111385@gmail.com"
    
    Set body = New NotesRichtextItem( maildoc, "Body" )
    Call Templatedoc.RenderToRTItem( body )
    
    maildoc.send(True)
    
    第二:设置两个字段(NotesServer和NotesDBPath)来计算链接。但实际上,您的链接是根据环境变量计算的,而这些变量不是在服务器上设置的

    将链接-计算-公式更改为:

    srv := NotesServer;
    pth := NotesDBPath;
    

    这应该是链接的诀窍。

    好的,你建议的链接已经工作了。。这是正确的。。但它仍然不允许我打开框架集本身…它仍然转到“查看”中,其中包含正在运行的数据。“LateInVw”。我只为迟到的人循环此视图,并强制他们转到框架集以输入迟到原因~好的,你建议的链接已经工作..这是正确的..但它仍然不允许我打开框架集本身…它仍然转到“视图”,其中包含迟到的数据。“LateInVw”。我只为迟到的人循环此视图,并强制他们转到框架集以输入迟到原因~