• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Makeresponse

  • Автор темы LIGHT
  • Дата начала
L

LIGHT

Приветствую!

Ситуевина:

Есть много баз данных, с одним дизайном, и есть одна база которая являеется административной.

В Административной базе создаются документы по форме "Document", создаются при клике по кнопке из любой другой базы открытого документа. Т.е. часть полей копируются в новый документ, документ сохраняется.

Все бы не чего, но потребовалось создавать не просто документы но еще и в некоторых случаях респонсы. Разрулил это довольно просто, юзеру который давит кнопку выдается запрос что делалть, если респонс, выдают пиклист выбора документа родителя. И все бы ни чего, документ создается, только не респонсом :) при этом нужно создать докмент по тойже форме что и родитель "Document"

Код (суть)
Код:
Set doc = collection.GetFirstDocument
Set NewDoc = dbNewDoc.CreateDocument
Call NewDoc.MakeResponse( doc )
NewDoc.Form = "Document"
....
Call ws.EditDocument(True,NewDoc)

Помогите победить.
 
D

D!m@n

Две одинаковых формы, только у одной в свойствах Type - Document, у другой - Response - не подойдет?
 
M

morpheus

Set NewDoc = dbNewDoc.CreateDocument - Документы должны быть в одной БД... создавайте его от NotesDatabase.CreateDocument
и не забудте сохранить
 
L

LIGHT

<!--QuoteBegin-Morpheus+9:01:2008, 17:13 -->
<span class="vbquote">(Morpheus @ 9:01:2008, 17:13 )</span><!--QuoteEBegin-->Set NewDoc = dbNewDoc.CreateDocument - Документы должны быть в одной БД... создавайте его от NotesDatabase.CreateDocument
и не забудте сохранить
[snapback]92723" rel="nofollow" target="_blank[/snapback]​
[/quote]
Документы в одной базе в смысле.

Родитель и создаваемый к нему ребенок разумеется в одной, но ребенок создается по документу из другой базы.
NotesDatabase.CreateDocument - так и есть
Dim dbNewDoc as NotesDatabase
dbNewDoc.CreateDocument
+ MakeResponse создает обычный документ.


Получилось!!!
 
M

morpheus

Для: LIGHT
поток букаф...
так что получилось то?
 
L

LIGHT

Да просто 2 поста форум слепил в один.
Получилось создать респонс, сохранить скриптов надо было, а я ручками сохранял.
 
O

Omh

Смотри, если респонс сделан на той же форме что и документ (у формы Type = Document), то после пересохранения респонса через UI он отвалится и перестанет быть респонсом.

А, ну как я понял ты сохранял через UI сначала и получал именно то, о чём я говорил выше...
 
M

morpheus

Ну собственно да, об єтом еще Для: D!m@n сказал
 
S

Sandr

Учтите, что NotesDatabase.CreateDocument сразу создает документ в базе, тоесть если пользователь потом передумает - документ останется... это неправильно... прийдется чистить потом агентом по расписанию...

Используйте композ, а при сохранении документа делайте его респонсом к кому надо...


Смотри, если респонс сделан на той же форме что и документ (у формы Type = Document), то после пересохранения респонса через UI он отвалится и перестанет быть респонсом.

нифга... гониво... ща проверю...
 
O

Omh

Для: Sandr
Давай!
Я тоже перепроверю на всяк случай...

Отвалился :)
 
O

Omh

Sandr, ты хочешь сказать, что при пересохранении реcпонса c формой у которой Type = Document через UI из него не пропадает поле $REF?
 
S

Sandr

Sandr, ты хочешь сказать, что при пересохранении реcпонса c формой у которой Type = Document через UI из него не пропадает поле $REF?

нет, ты что, я же исправился :)

ЗЫ: Кинулся проверять везде, где я это юзал... скока глюков моджет быть из-за этого...
 
M

Mihal

$RefOptions всех спасёт!

Set doc = collection.GetFirstDocument
Set NewDoc = dbNewDoc.CreateDocument
Call NewDoc.MakeResponse( doc )
NewDoc.Form = "Document"
NewDoc.~$RefOptions="1"
....
Call ws.EditDocument(True,NewDoc)

И будет вам счастие. $RefOptions="1" позволяет пустить побоку настройки форму в плане Document, Response и всё такое.

Для: Sandr
Заведи привычку использовать $RefOptions если хочешь вечного счастия :).
 
O

Omh

Для: Mihal
Гениально!

В принципе, отпадает надобность делать формы с каким-либо типом кроме Document.
Кстати, именно необходимость указывать тип в форме бесила меня в использовании респонсов.
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
<!--QuoteBegin-Sandr+9:01:2008, 18:40 -->
<span class="vbquote">(Sandr @ 9:01:2008, 18:40 )</span><!--QuoteEBegin-->Учтите, что NotesDatabase.CreateDocument сразу создает документ в базе, тоесть если пользователь потом передумает - документ останется... это неправильно... прийдется чистить потом агентом по расписанию...
[snapback]92732" rel="nofollow" target="_blank[/snapback]​
[/quote]
Это не так. Даже хелп говорит:
Creates a document in a database and returns a NotesDocument object that represents the new document. You must call Save if you want the new document to be saved to disk.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!