2009-03-11 12 views
0

Ich migriere eine Lotus Notes-Datenbank mithilfe der LN Java-API zu SQL Server. Beim Durchlaufen jedes LN-Feldes in den Dokumenten finde ich, dass alle Tabellendaten Feldnamen wie fld, fld_1, fld_2 usw. haben, wobei fld den Namen einer Spalte darstellt und das Nummerierungsschema für jede einzelne Zeile zuständig ist. Gibt es eine einfache Möglichkeit, diese Informationen als Arrays mit der LN Java API zu extrahieren?Extrahieren von Wertelisten aus Lotus Notes-Feldern

Antwort

0

Es gibt keine einfache Möglichkeit, genauer gesagt, keine Möglichkeit, dass Lotus Notes Ihnen bei der Aufgabe hilft. Lotus Notes ist eine "Flat-File" -Datenbank und jedes Dokument darf eine beliebige Anzahl von Elementen (Spalten) enthalten.

Obwohl ein Lotus Notes-Formular Daten in einem Tabellenformat unter Verwendung einer Tabellen- oder Layoutregion anzeigen kann, ist das Dokument (Datensatz), das diese Daten enthält, einfach wie eine einzelne Zeile einer SQL-Tabelle und es gibt keine logischen Möglichkeiten Gruppieren Sie Elemente dieses Dokuments, um beispielsweise alle fld_-Elemente miteinander in Beziehung zu setzen.

Meine Vorschläge sind, die Datenstruktur zu verwenden, die Sie bequem finden, um die Daten von den Elementen in SQL zu erhalten. Dies könnte ein Array oder ein benutzerdefiniertes Objekt sein, das dann in der Datenbank gespeichert werden kann.

1

Nun "einfach" kann ein zweideutiger Begriff sein.

Wenn Sie dieses Problem noch nicht gelöst haben. Sie können eine Methode schreiben, die sich um und greift jedes Feld wie folgt Schleifen:

import lotus.domino.*; 
.... 
public static void main(String[] arg) { 

    for(int i=1 ;i<MAX_FIELD;i++) { 
     Item itm = doc.getFirstItem("field_"+String.valueOf(i)); 
     if (itm != null) { 
      // if it's a multi-value field. 
      Vector v = item.getValues(); 
      // do other stuff here with the values. 
     }; 
    } 
} 

Sie benötigen, um sicherzustellen, dass Sie die entsprechenden NotesJava API in Ihr Projekt importieren.

Denken Sie daran, dass jedes Feld in einem Dokument effektiv und Array mit 1 oder mehr Werten ist. Diese Felder ("field_1", "field_2" usw.) wurden willkürlich von einem Entwickler definiert. Dies ist eine gängige Praxis, um tabellenartige Datenstrukturen zu emulieren. Normalerweise repräsentieren die Felder Spalten, keine Zeilen. Der Zugriff auf das Feld über das Objekt "Objekt" sollte Ihnen jedoch den Zugriff auf die Daten ermöglichen.