2016-04-07 9 views
0

ドミノアクセスビューを使用してRESTコールとしてデータベースビューにアクセスすると、ビュー選択パラメータをURLクエリ文字列の一部として渡すことはできますか?これは結果を一定の基準に限定することですか?ドミノアクセスビューでビュー選択基準を受け入れることができます

私は 'keys'と 'keysmatch'パラメータを見ましたが、これは範囲選択の問題に役立ちません。

いいえと疑っていますが、専門家からのフィードバックがほしいと思っていました。

答えて

1

私が知る限り、これは不可能です。 queryパラメータを使用すると、送信した検索クエリ(ドミノのftsearchを実行する)に一致するドキュメントを取得できます。

詳細はこちらドキュメントに記載されています:View/folder entries GET

+0

はい - それはトンです彼は結論も私に来た。フルテキストインデックスを使用した検索の実装では、パフォーマンスのオーバーヘッドは確認できませんでしたが、その場合は – oidsman

1

あなたが簡単にDominoサーバー上の独自のRESTのAPIを書いて、それが例えば日付範囲を受け入れる可能性があります。

私はここに私のプレゼンテーションで、この例を持っている:それは2つのヘルパークラスを使用していること

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 

注意:ここでhttp://blog.texasswede.com/my-connect-2016-presentation-demo-database/

は、REST呼び出しを構成するサーバーエージェントのLotusScriptコードであります私はあなたにも私のブログ上で、それらのコードを検索することができ、書いた: http://blog.texasswede.com/free-code-class-to-read-url-name-value-pairs/http://blog.texasswede.com/calling-a-notes-web-agent-from-another-server-using-jsonp/

+0

ありがとうございます。具体的には、これは既に実装されているので、時間を節約するためには本当に有益なリンクを探すために、Domino Access Viewのクエリでした。 – oidsman

関連する問題