1

多くのフィールドを持つ 10 万を超えるドキュメントを含む Lotus データベースデータをエクスポートする最良の方法は何ですか? アプリケーション ロジックは必要ありません。アプリケーション内に格納されたデータだけです。データベースには、すべてのドキュメントのフォーム デザイン要素が含まれているわけではありません。LEIは私たちの選択肢ではありません。

  1. 現在、Java エージェントを使用してデータを MS EXCEL にエクスポートしていますが、実行時間が長すぎます。
  2. 方が高速である可能性があります。
  3. ...または、十分に高速な代替ソリューションはありますか?
4

2 に答える 2

2

おそらく、すべてを取得する最も簡単な方法は、DXL にエクスポートし、その DXL から必要なデータを読み取ることです。

データベース (LotusScript エージェント) に文書化された最初の選択をエクスポートするためのサンプル コードを次に示します。C:\temp\data.xml というファイルを書き込みます。

Option Public
Option Declare

Sub Initialize
    Dim nsn As New NotesSession
    Dim ndb As NotesDatabase
    Dim ndc As NotesDocumentCollection
    Dim ndo As NotesDocument
    Dim ndxle As NotesDXLExporter
    Dim nst As NotesStream
    On Error Resume Next

    Set ndb = nsn.CurrentDatabase
    Set ndc = ndb.UnprocessedDocuments
    Set ndo = ndc.GetFirstDocument

    Set nst = nsn.createStream
    If (Not(nst.Open( "c:\temp\DATA.xml" ))) Then
        Print "Open File DATA.xml Failed" 
    End If
    nst.truncate

    Set ndxle = nsn.CreateDXLExporter (ndo, nst)

    ndxle.Convertnotesbitmapstogif = true ' Not always needed.

    Call ndxle.Process()
    MsgBox ndxle.Log
    Call nst.Close()
End Sub
于 2013-01-23T10:43:22.907 に答える
0

データを XML としてファイルに取得する効率的で簡単な方法は、次のような URL を使用してデータを取得することです。

/view?ReadViewEntries&Start=1&Count=1000

100K のすべてを 1000 のチャンクで取得するコードがあります (この値はデータの量に応じて調整される場合がありますが、大きすぎるとサーバーがハングする可能性があります)。

ビューには、すべてのドキュメントとすべてのアイテムが列として含まれています。

このアプローチはサーバーの HTTP タスクに多くの負荷をかけるため、静かな時間に実行することをお勧めします。

データを Excel に取得する必要がある場合は、現在のエージェントを調べて、最適化できるかどうかを確認する必要があります。

于 2013-01-23T10:12:57.513 に答える