Lotus notes domino access视图能否接受视图选择条件

Lotus notes domino access视图能否接受视图选择条件,lotus-notes,lotus-domino,lotus,Lotus Notes,Lotus Domino,Lotus,如果使用dominoaccess视图作为REST调用访问数据库视图,是否仍需要将视图选择参数作为URL查询字符串的一部分传递,特别是接受日期范围?这是为了将结果限制在某些标准内 我已经看到了“keys”和“keysmatch”参数,但这对范围选择问题没有帮助 怀疑没有,只是想得到一些专家的反馈 据我所知,这是不可能的。您可以使用query参数来检索与您提交的搜索查询(执行dominoftsearch)匹配的文档 更多详细信息可以在这里的文档中找到:您可以轻松地在Domino服务器上编写自己的RE

如果使用dominoaccess视图作为REST调用访问数据库视图,是否仍需要将视图选择参数作为URL查询字符串的一部分传递,特别是接受日期范围?这是为了将结果限制在某些标准内

我已经看到了“keys”和“keysmatch”参数,但这对范围选择问题没有帮助


怀疑没有,只是想得到一些专家的反馈

据我所知,这是不可能的。您可以使用query参数来检索与您提交的搜索查询(执行dominoftsearch)匹配的文档


更多详细信息可以在这里的文档中找到:

您可以轻松地在Domino服务器上编写自己的RESTAPI,并让它接受例如日期范围

我在这里的演讲中有这样的例子:

下面是组成REST调用的服务器代理的Lotusscript代码:

Use "Class.URL"
Use "Class.JSON"

Sub Initialize
    '*** Local Notes classes used in agent
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim thisdb As NotesDatabase
    Dim view As NotesView
    Dim col As NotesViewEntryCollection
    Dim entry As NotesViewEntry 
    Dim doc As NotesDocument
    '*** Custom classes
    Dim url As URLData
    Dim json As JSONData
    '*** Local variables to hold arguments passed from URL
    Dim startdate As String
    Dim enddate As String
    '*** Other local variables
    Dim jsontext As String 

    '*** Create new URLData object
    Set url = New URLData()
    '*** Create new JSONData object
    Set json = New JSONData()

    '*** Check start date and convert from ISO to US date format
    If url.IsValue("start") Then
        startdate = ISOtoUS(url.GetValue("start"))
    Else
        startdate = "01/01/1980"
    End If

    '*** Check end date and convert to US date format
    If url.IsValue("end") Then
        enddate = ISOtoUS(url.GetValue("end"))
    Else
        enddate = "12/31/2199"
    End If

    '*** Send MIME header to browser
    Print "content-type: application/json"
    jsontext = ""
    Set db = session.CurrentDatabase
    Set view = db.GetView("Events")
    Set col = view.AllEntries
    Set entry = col.GetFirstEntry()
    Do Until entry Is Nothing
        If CDat(entry.ColumnValues(0))>=CDat(startdate) Then
            If CDat(entry.ColumnValues(0))<=CDat(enddate) Then
                Call json.SetValue("id", CStr(entry.ColumnValues(5)))
                Call json.SetValue("title",CStr(entry.ColumnValues(3)))
                Call json.SetValue("start", Format$(CDat(entry.ColumnValues(7)),"mm/dd/yyyy hh:nn ampm"))
                Call json.SetValue("end", Format$(entry.ColumnValues(8),"mm/dd/yyyy hh:nn ampm"))
                Call json.SetValue("className","eventData eventData" + CStr(entry.ColumnValues(6)))
                Call json.NoStatus()
                '*** Make the entry editable (change date/time) 
                Call json.SetBoolean("editable", True)
            End If
        End If
        jsontext = jsontext + json.GetJSON() + "," + Chr$(13)
        Set entry = col.GetNextEntry(entry)
    Loop
    If Len(jsontext)>4 Then
        jsontext = Left$(jsontext,Len(jsontext)-2)
    End If
    Print "[ " + jsontext + " ]"
End Sub


%REM
    Function ISOtoUS
    Description: Convert ISO date to US date,
    e.g 2015-05-08 to 05/08/2015
%END REM
Function ISOtoUS(dateISO As String) As String
    Dim tmp As String
    ' 2015-02-03
    tmp = Mid$(dateISO,6,2) + "/"
    tmp = tmp + Mid$(dateISO,9,2) + "/"
    tmp = tmp + Left$(dateISO,4)
    ISOtoUS = tmp 
End Function
使用“Class.URL”
使用“Class.JSON”
子初始化
'***代理中使用的本地Notes类
将会话设置为新便笺会话
Dim db As NotesDatabase
将此数据库设置为备注数据库
如注释视图所示的暗视图
Dim col As NotesViewEntryCollection
作为备注的Dim条目VIEWENTRY
标注文档作为注释文档
'***自定义类
将url设置为url数据
将json定义为JSONData
'***用于保存从URL传递的参数的局部变量
暗起始日期为字符串
Dim enddate作为字符串
'***其他局部变量
Dim jsontext作为字符串
'***创建新的URLData对象
Set url=New URLData()
'***创建新的JSONData对象
Set json=New JSONData()
“***检查开始日期并将ISO日期格式转换为US日期格式
如果url.IsValue(“开始”),那么
startdate=ISOtoUS(url.GetValue(“开始”))
其他的
startdate=“01/01/1980”
如果结束
'***检查结束日期并转换为美国日期格式
如果url.IsValue(“结束”),那么
enddate=ISOtoUS(url.GetValue(“end”))
其他的
enddate=“12/31/2199”
如果结束
'***将MIME头发送到浏览器
打印“内容类型:应用程序/json”
jsontext=“”
Set db=session.CurrentDatabase
Set view=db.GetView(“事件”)
设置col=view.AllEntries
Set entry=col.GetFirstEntry()
直到进入无所谓为止
如果CDat(entry.ColumnValues(0))>=CDat(startdate),则

如果CDat(entry.ColumnValues(0))是的,那也是我得出的结论。通过全文索引实现搜索已经完成了这项工作,尽管还不能确定性能开销,多亏了这个选项。具体地说,这是一个关于dominoaccess视图的查询,因为这已经实现了,所以希望节省一些时间,但是链接确实很有用。