【问题标题】:Run "Repeatagent" on Xpage在 Xpage 上运行“Repeatagent”
【发布时间】:2019-03-11 15:43:15
【问题描述】:

我希望以下代理在单击按钮时运行,代理的工作是检查用户是否希望文档(在本例中为日记条目)具有重复日期。所以我试图一次创建多个文档。我在 Notes 应用程序中运行了一个模拟的 Lotusscript,它似乎工作正常,但我不知道如何在我的 Xpage 上运行它。 代码:

Sub Initialize
Dim session As New NotesSession 
Dim db As NotesDatabase
Dim UIdoc As NotesUIDocument
Dim doc As NotesDocument 
Dim Workspace As New NotesUIWorkspace
Set db = session.CurrentDatabase
Set UIdoc = workspace.CurrentDocument
Dim Radio As String
Dim String1 As String
Dim Counter As Integer
Print("Repeat Agent Triggered and Variables Initialized")
String1 = UIdoc.FieldGetText("SubjectTX")
Radio = UIdoc.FieldGetText( "RepeatValueTX" )
Dim ret As Variant 
Dim Newdate As New NotesDateTime(UIdoc.FieldGetText("DiaryDateDT")) 
Print(Radio)
Print(String1)
Print("Select Case...")
Select Case Radio
    Case "Day": 
        Print("Case Day in use")
        For Counter = 1 To 7
            Call Newdate.AdjustDay( 1 )
            Set doc = db.CreateDocument
            doc.SubjectTX = "Day Revision " + String1
            doc.DiaryDateDT = NewDate
            Call doc.Save( True, True )
        Next
    Case "Week":
        Print("Case Week in use")
        For Counter = 1 To 4
            Call Newdate.AdjustDay( 7 )
            Set doc = db.CreateDocument
            doc.SubjectTX = "Week Revision:" + String1
            doc.DiaryDateDT = NewDate
            Call doc.Save( True, True )
        Next
    Case Else: 
        Print("No Case or Saving and Closing")
End Select
   Print("exited switch, Saving and Closing now")
   Call UIdoc.Save()
   Call UIdoc.Close()

结束子

代理设置为“允许受限操作”、“以 Web 用户身份运行”、目标:无、“代理列表选择”。

应该执行代理的 Javascript

database.getAgent("Repeatagent").run()

也许我在这里遗漏了一些重要的东西,如果有更好的方法,请告诉我!

我对笔记还很陌生,并且从帮助菜单中将其捆绑在一起,因此如果您有解决方案,请尝试非常广泛地解释。

谢谢

【问题讨论】:

    标签: javascript xpages lotus-notes lotusscript lotus


    【解决方案1】:

    我建议将此代理转换为 Java Bean 并直接从 Xpage 的 querysave 事件中调用它。

    如果您仍然喜欢 lotusscript 代理,那么您需要将 UI 类更改为后端(NotesUIDocument -> NotesDocument),因为您无法访问后端代理中的 NotesUIWorkspace。在这种情况下,看看将documentcontext 传递给代理

    【讨论】:

      【解决方案2】:

      您需要解决几个问题:

      • 要在服务器上触发的代理只能包含后端类。您的代理包含仅 NotesClient 的 uidoc

      • 您尝试从 ui 类中获取值

      如果您不想让自己头疼,您可以用 JavaScript 或 Java 将代码重写为一个简单的函数。您将会话和数据库作为顶级对象。从 XPage 上的按钮调用它们并将值作为参数传递。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-06
        相关资源
        最近更新 更多