Как получить базовый вид формы, используя lotusscript - PullRequest
1 голос
/ 05 октября 2010

Я новичок в lotusscript .У нас есть устаревшая система лотосных нот / домино.Нам нужно перенести данные из лотосных заметок в оракул.Модель данных Lotus Domino полностью отличается от модели данных Oracle.Итак, мы создаем реляционную таблицу для формы Lotus Notes .Я могу получить доступ к views программно, используя lotusscript.Но я не смог получить просмотров , связанных с заметкой с использованием lotusscript.Может ли кто-нибудь дать фрагмент кода или объяснить связь между from и view?Мне нужно перенести данные, связанные с одной формой , даже если она связана с несколькими представлениями заметок .

Будет ли работать следующий фрагмент кода?

Dim session As New NotesSession
Dim db As NotesDatabase
Dim notesDocumentCollection As NotesDocumentCollection

Set db = session.CurrentDatabase
Set notesDocumentCollection = db.FTSearch( """Form=Help Ticket""", 0)

For i = 1 To notesDocumentCollection.Count    
  Set doc = notesDocumentCollection.GetNthDocument( i )  
  ' process each document 

End Forall

Ответы [ 3 ]

2 голосов
/ 05 октября 2010

В Lotus Notes представления работают с использованием критериев выбора.Эти критерии могут ссылаться на формы (но не обязательно).Например, допустим, вы создали форму под названием «HelpTicket».Любые документы, созданные с использованием этой формы, можно затем выбрать для отображения в виде с помощью «формулы выбора вида», например, так:

SELECT Form="HelpTicket"

… и затем можно добавить столбцы в представлении для извлечения данных извыбранные документы, ссылаясь на поля, расположенные в форме HelpTicket.

Когда я подозреваю, что вы запутались в отношении отношения форма / представление, вокруг этой идеи переноса данных: формы являются схемойопределение связанных с ними данных и способ представления этих данных на индивидуальной основе.Теоретически, данные могут быть представлены через любое количество «определений» форм в Примечаниях, то есть данные и представление являются совершенно разными, но на практике - это связь между формой и документами, которые на нее ссылаются.

Кроме того, вероятно, стоит упомянуть, что Lotus Notes является , а не системой реляционной базы данных, ее проще описать как базу данных на основе документов или форму "NoSQL".

Теперь вернемся к представлениям: они затем представляют данные в виде столбцов, категорий и простых вычислений на основе базовых данных (столбец представления может либо просто ссылаться на значение поля, либо выполнять основные операции над этим значением с помощьюпроприетарный язык формул Lotus Notes).

Короче говоря, данные, которые необходимо перенести, - это ваши документы Lotus Notes.Представления не имеют никакого значения, хотя вы можете повторить то, что они предлагают, с точки зрения представления / визуализации указанных данных.

0 голосов
/ 30 июля 2014

Поздний ответ, но он может кому-то помочь: при попытке распределить аналогичные «термины» между Notes и SQL может быть полезно рассматривать представления Notes как таблицы SQL, документы Notes как записи SQL и агенты / события Notes как SQL триггеры. Примечания Представления с отсортированными столбцами похожи на таблицы с индексами SQL. Сортированные столбцы Notes определяют индекс. Чтобы «запросить» представление Notes, вы либо сканируете представление (эквивалентно неиндексированному сканированию таблицы SQL), либо выполняете поиск на основе ключей (выберите где y = x). Оптимизация запросов как таковая отсутствует, вам нужно выбрать способ запроса к представлению. Эти термины являются приблизительными. Примечания Представления больше похожи на материализованные представления в SQL, а документы, как уже упоминалось, представляют собой записи без схемы, которые могут содержать разнородные поля и данные (но, как правило, их нет).

Как уже упоминалось в других ответах. получить доступ к данным Notes через Notes-SQL довольно просто, и он более удобен для опытных пользователей SQL. Вы получите таблицу ответов на основе запросов выбора SQL. Для опытных пользователей Notes / LotusScript сканирование представлений и агентов записи для экспорта данных в виде значений CSV для последующего импорта в SQL является простым. Вы можете даже использовать встроенный просмотр-экспорт, чтобы получить таблицу данных CSV, которую затем сможете импортировать в SQL.

Одна из основных «проблем» с Notes заключается в том, что данные в одном поле или столбце представления могут иметь «проблемы с типом» в зависимости от того, насколько хороши разработчик (и). Например, в одной строке данные могут быть истинной датой, а в другой строке они могут быть представлены как «текстовая дата». Это может помешать процедуре импорта, если вы не воспользуетесь этой возможностью. Другими проблемами являются разделители и длины полей; В Notes не используются явные размеры полей, поэтому некоторые поля могут быть больше ожидаемых и содержать символы-разделители, которые могут затруднить импорт SQL. Есть и другие вопросы, на которые нужно обратить внимание. Чтобы решить многие из этих проблем, по возможности, создайте представление для каждой формы, которую вы хотите перенести, поместите каждое поле в представление, добавьте формулу для очистки данных, если это необходимо, и экспортируйте каждое представление как CSV и рассматривайте его как SQL стол.

0 голосов
/ 05 октября 2010

Я предлагаю вам вообще не использовать Lotusscript. Не похоже, что вы используете эту базу данных Notes после переноса данных, поэтому единственное, что вам нужно сделать, - это получить данные. Вы можете сделать это намного проще, если используете драйвер NotesSQL (http://www.ibm.com/developerworks/lotus/products/notesdomino/notessql/)

После того, как вы настроили драйвер для своей базы данных, просто используйте Excel или Access для подключения к базе данных и извлечения данных. Затем вы можете легко переформатировать данные, чтобы импортировать их в Oracle.

Драйвер SQL может извлекать данные на основе формы, поэтому вы можете получить все документы HelpTicket (и их элементы) в таблицу в Access или в лист в Excel.

...