I am migrating a Lotus Notes database to SQL Server using the LN java API. While traversing through each LN field in the documents I find all tabular info have field names like fld, fld_1, fld_2 etc where fld represents the name of a column and the numbering scheme is to take care of each individual row. Is there an simple way of extracting these info as arrays using the LN java API?
-
There's no simple way, or more specifically, no way that Lotus Notes will help you with the task. Lotus Notes is a 'flat-file' database and each document is allowed to have any number of items (columns) within it.
Although a Lotus Notes form might display data in a tabular format using a table or layout region, the document (record) that holds that data is simply like a single row of a SQL table, and there are no ways to logically group items of that document, for example, to relate all the fld_ items together.
My suggestions is to use whatever data structure you find convenient to get the data from the items into SQL. That might be an array or a custom object that can then be saved to the database.
-
Well "simple" can be an ambiguous term.
If you haven't solved this problem yet. You can write a method that loops around and grabs each field like this:
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. }; } }You'll need to make sure you import the appropriate NotesJava API's in your project.
Remember that each field on a document is effectively and array with 1 or more values. Those fields ("field_1", "field_2", etc) were defined arbitrarily by a developer. This is a common practice to emulate table-like data structures. Usually the fields represent columns not rows. But accessing the field in this way using the "item" object should give you access to the data.
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.