1

私のデータが格納されているLotus Dominoデータベース(IBM Notesの背後にあるもの)があります。 私のレールアプリケーションでは、ライブレポートを作成するためにデータを分析したいと考えています。IBM Dominoデータベースのデータをレールアプリケーションに抽出する

私の最初の考えは、ノーツのエージェントの助けを借りてデータをエクスポートすることでしたが、それは非常に非効率的で、レポートを有効にしたい場合は役に立ちません。

誰でもDominoデータベースからのレポート作成に関する経験がありますか?

+0

あなたは –

+0

Dominoはまた、WebサーバーとアプリケーションサーバーでDominoデータへのRESTインターフェイスを取得するには、Dominoアクセスサービスを使用することができます、あなたはそこからレポートを作成することができます –

+0

また、Javaでコーディングし、Jackson、Gson、JSON.simpleなどのライブラリを使用して、ドミノでWebサービスプロバイダを作成することもできます。 –

答えて

2

Pe Henrik氏の言うとおり、Domino Access Servicesを使用できます。 Youlは、要求されたデータをJSON(または別のサーバーにある場合はJSONP)として返す独自のAPI /関数を記述することもできます。私はここでそれについてbloogedている:これらのリンクのサンプルコードもあり http://blog.texasswede.com/mwlug-2015/http://blog.texasswede.com/my-connect-2016-presentation-demo-database/http://blog.texasswede.com/calling-a-notes-web-agent-from-another-server-using-jsonp/ は私もこのテーマをカバーして2つのプレゼンテーションを持っています。

しかし、そのような外部Webアプリケーションにデータを提供するLotusScriptエージェントを作成することは難しくありません。ここで

あなたがJSONを返すのに役立ちます私のLotusScriptのクラスである:

%REM 
    Library Class.JSON by Karl-Henry Martinsson 
    Created Oct 9, 2014 - Initial version 
    Updated Nov 6, 2015 - Added JSONP support 
    Description: Class to generate simple JSON from values 
%END REM 

Option Public 
Option Declare 

Class JSONdata 
    Private p_json List As String 

    Public Sub New() 
     '*** Set default value(s) 
     me.p_json("ajaxstatus") = "" 
    End Sub 

    %REM 
     Property Set success 
     Description: Set success to true or false 
    %END REM 
    Public Property Set success As Boolean 
     If me.success Then 
      Call me.SetValue("ajaxstatus","success") 
     Else 
      Call me.SetValue("ajaxstatus","error") 
     End If 
    End Property 

    %REM 
     Property Get success 
     Description: Not really used... 
    %END REM 
    Public Property Get success As Boolean 
     If me.p_json("ajaxstatus") = |"success"| Then 
      me.success = True 
     Else 
      me.success = False 
     End If 
    End Property 

    %REM 
     Sub SetMsg 
     Description: Set msg item 
    %END REM 
    Public Sub SetMsg(message As String) 
     Call me.SetValue("msg",message) 
    End Sub 

    Public Sub SetErrorMsg(message As String) 
     Call me.SetValue("errormsg",message) 
     me.success = False 
    End Sub 

    Public Sub SetValue(itemname As String, value As String) 
     Dim tmp As String 
     Dim delimiter As String 
     '*** Check for quote (double and single) and fix value if needed 
     tmp = Replace(value,Chr$(13),"<br>") 
     tmp = FullTrim(Replace(tmp,Chr$(10),"")) 
     If InStr(tmp,|"|)>0 Then 
      If InStr(tmp,|'|)>0 Then 
       tmp = Replace(tmp,|"|,|"|) 
       delimiter = |"| 
      Else 
       delimiter = |'| 
      End If 
     Else 
      delimiter = |"| 
     End If 
     '*** Store value with delimiter in list 
     me.p_json(itemname) = delimiter & tmp & delimiter 
    End Sub 

    Public Sub SetData(itemname As String, value As String) 
     '*** Store value in list 
     me.p_json(itemname) = value 
    End Sub 

    %REM 
     Function GetJSON 
     Description: Return a JSON object as text 
    %END REM 
    Function GetJSON As String 
     Dim json As String 
     '*** Opening curly braces + CR 
     json = "{" + Chr$(13) 
     '*** Loop through all list elements and build JSON 
     ForAll j In me.p_json 
      json = json + |"| + ListTag(j) + |":| + j + "," + Chr$(13) 
     End ForAll 
     '*** Remove the comma after the last item 
     json = Left$(json,Len(json)-2) + Chr$(13) 
     '*** Add closing curly bracket and return JSON 
     json = json + "}" 
     GetJSON = json 
    End Function 

    %REM 
     Sub SendToBrowser 
     Description: Print JSON to browser, with correct MIME type 
    %END REM 
    Public Sub SendToBrowser() 
     '*** MIME Header to tell browser what kind of data we will return (JSON). 
     '*** See http://www.ietf.org/rfc/rfc4627.txt 
     Print "content-type: application/json" 
     Print me.GetJSON 
    End Sub 

    %REM 
     Sub SendJSONPToBrowser 
     Description: Print JSONP to browser, with correct MIME type 
    %END REM 
    Public Sub SendJSONPToBrowser(callbackFunction As String) 
     '*** MIME Header to tell browser what kind of data we will return (Javascript). 
     '*** See http://www.rfc-editor.org/rfc/rfc4329.txt 
     Print "content-type: application/javascript" 
     Print callbackFunction + "(" + me.GetJSON + ")" 
    End Sub 

End Class 
関連する問題