Агентом создать документ в Лотусе на основе внешнего файла

  • Автор темы StasTr
  • Дата начала
S

StasTr

#1
Есть такая задача:
Из КИС выгружают документы в виде файлов, на основе этих файлов нужно программным путем создавать докусенты в Lotus.

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

У меня пока только одна загвоздка:
Как прочитать имя файла, находящегося в определенной папке с помощью LotusScript?
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#4
В хелпе дизайнера.
Код:
' List the contents of the c:\ directory, one entry per line.
Dim pathName As String, fileName As String
pathName$ = "c:\*.*"
fileName$ = Dir$(pathName$, 0)
Do While fileName$ <> ""
Print fileName$
fileName$ = Dir$()
Loop
 
S

StasTr

#6
Еще два вопроса:
как узнать в каком виде хранятся шаблоны документов? (через какое имя обращаться к ним)
как прикрепить файл (содержимое) к документу?
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#7
<!--QuoteBegin-StasTr+9:07:2007, 09:46 -->
<span class="vbquote">(StasTr @ 9:07:2007, 09:46 )</span><!--QuoteEBegin-->как узнать в каком виде хранятся шаблоны документов? (через какое имя обращаться к ним)
[snapback]71710" rel="nofollow" target="_blank[/snapback]​
[/quote]
Не понятно.

<!--QuoteBegin-StasTr+9:07:2007, 09:46 -->
<span class="vbquote">(StasTr @ 9:07:2007, 09:46 )</span><!--QuoteEBegin-->как прикрепить файл (содержимое) к документу?
[snapback]71710" rel="nofollow" target="_blank[/snapback]​
[/quote]
Создаешь RichText поле. Потом NotesRichTextItem.EmbedObject
 
S

StasTr

#8
Мне нужно написать классификатор имен шаблонов для выгрузки документов из КИС, чтобы в итоге загружать их в Lotus.
На форме он выглядит примерно так: "Приказ об увольнении", а индентификатор у него как узнать?
 

morpheus

скриптописец
07.08.2006
3 915
1
#9
<!--QuoteBegin-StasTr+9:07:2007, 09:05 -->
<span class="vbquote">(StasTr @ 9:07:2007, 09:05 )</span><!--QuoteEBegin-->Мне нужно написать классификатор имен шаблонов для выгрузки документов из КИС, чтобы в итоге загружать их в Lotus.
На форме он выглядит примерно так: "Приказ об увольнении", а индентификатор у него как узнать?
[snapback]71715" rel="nofollow" target="_blank[/snapback]​
[/quote]
А можно поподробнее что за форма что такое КИС , что откуда выгружаеться..

телепатов нет!
 
J

johny

#10
Мне нужно написать классификатор имен шаблонов для выгрузки документов из КИС, чтобы в итоге загружать их в Lotus.
На форме он выглядит примерно так: "Приказ об увольнении", а индентификатор у него как узнать?
Так указывай явно в агенте, примерно так...

if str$="Приказ об увольнении" then
создаешь один документ
end if

И шлепай так по всему выгруженному файлу
 
S

StasTr

#11
А можно поподробнее что за форма что такое КИС , что откуда выгружаеться..

телепатов нет!
Есть система (КИС) на SQL Server 2005. В этой системе подготавливаются приказы, которые нужно отправить на согласование в Lotus Notes/Domino. Из КИС выгружаются эти приказы в виде pdf файла. Имя файла должно сопрадать с именем шаблона соответствующего документа в Lotus. В Lotus я создал шаблоны:
(Например:
Приказ о приеме
Приказ об увольнении)

Чтобы агент создал документ в Lotus, ему необходимо знать имя шаблона (оно будет в имени файла). Можно ли напрямую указывать ("Приказ о приеме") или у шаблонов есть идентификаторы?
 

morpheus

скриптописец
07.08.2006
3 915
1
#12
<!--QuoteBegin-StasTr+9:07:2007, 10:27 -->
<span class="vbquote">(StasTr @ 9:07:2007, 10:27 )</span><!--QuoteEBegin-->шаблонов
[snapback]71734" rel="nofollow" target="_blank[/snapback]​
[/quote]
Исчо встречніій вапрос - что Вы подрузамеваете под шаблонами?
 
S

StasTr

#13
Шаблон документа-это частично заполненный документ (некоторые поля уже заполнены)
 

morpheus

скриптописец
07.08.2006
3 915
1
#14
Для: StasTr
Ну тут такой вариант на вскидлку - хотите делайте по индефикаторам , как хотите
в любом случае какойто указатель на "шаблон" должен быть. Слово шаблон тут не совсем подходит, ну ладно.
Создаёте свой пдф файл - где угодно указываете имя/унид шаблона. в процедурах записи в лотус , как писал johny делает проверку

Код:
if str$="Приказ об увольнении" then
создаешь один документ
дальше зделать исходя из имени шаблона заполнение нужных полей нужной информацией
end if
Но перед этим Вам в лотусе необходимо будет создать словарик где будут содержаться "шаблоны" какие поля заполнять по какой форме создавать документы и т..д.
 
S

StasTr

#15
У нас стоит CompanyMedia. Приходится дорабатывать БД существующие.
 
Y

Yakov

#16
Для: StasTr
Документы шаблонов в CM созданы по форме RKKTemplate. Имя шаблона (его идентификатор) хранится в поле TemplName. Есть видимое представление "Шаблоны", содержащее все неудаленные шаблоны. Документы в этом представлении отсортированы и сгруппированы как раз по имени шаблона. То есть можно использовать метод NotesView.GetDocumentByKey() примерно таким образом:
Код:
Dim templateView As NotesView
Dim templateDoc As NotesDocument
Dim templateName as String
'далее получаешь имя шаблона по имени файла, обрезая расширение
Set templateView = db.GetView("Шаблоны")
Set templateDoc = templateView.GetDocumentByKey(templateName)
If Not templateDoc Is Nothing Then
'далее делаешь с этим шаблоном что нужно
End If
Я сам занимаюсь сопровождением и модификацией Company Media. Если есть еще вопросы - обращайся в личку.
 
S

StasTr

#17
Для: Yakov
Отлично!
Спасибо большое! Я решил переписать библиотеку Template-Missions. Или лучше с нуля написать агент?
 
L

LIGHT

#18
Несовсем понятно, если доки уже лежат в SQL нафиг их дергать еще и в домино? Только что бы согласовать???? ну тогда из домино прямо и конектится с NotesSQL а там уже и читать по полям что это за док, и на основе него брать форму для согласования. Кажется это возможно, сам не делал, но читал.
И как мне кажется это в сто раз правильнее.
 
S

StasTr

#19
Несовсем понятно, если доки уже лежат в SQL нафиг их дергать еще и в домино? Только что бы согласовать???? ну тогда из домино прямо и конектится с NotesSQL а там уже и читать по полям что это за док, и на основе него брать форму для согласования. Кажется это возможно, сам не делал, но читал.
И как мне кажется это в сто раз правильнее.
Возможно так и лучше. А можно источник указать где это описано? Буду признателен.
 
L

LIGHT

#20
Попробуй так http://www.yandex.ru/yandsearch?text=NotesSQL
Ищи в общем Драйверы NotesSQL и Lotus Domino Driver for JDBC которые позволяют работать с Domino, как с реляционной базой данных, используя SQL. Там же и материалы как это поедать.