• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Помогите с скриптиком:)

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
0
Всем привет
вобщем дело обстоит так.

В базе есть справочник в котором заполняются следующие поля:

1. unittype - принимает занчения либо "U" либо "Р"
2. UnitNameUA - Название обєкта
3. UnitLocationUA - место нахождение обєкта
4. EOD - если "1" то имеет право
5. RegionOp - оператори региона

таких записей много будет

дальше пробую скриптом забацать документи ссилаясь на записи из справочника
но не сохраняет вискакивает Msgbox "Помилка збереження документа!"
ах да чуть не забил как мне запихнуть "RegionOp" из справочника в ново созданий документ и сделать ето поле "editors"


Sub Initialize
Dim ses As New NotesSession
Dim db As NotesDatabase
Dim hrdb As NotesDatabase
Dim doc As NotesDocument
Dim rep As NotesDocument
Dim success As Variant

Set db = ses.CurrentDatabase

Set hrdb = ses.CurrentDatabase
If Not (hrdb Is Nothing) Then
Dim dc As NotesDocumentCollection
Set dc = hrdb.search(|form="region" & EOD="1"|, Nothing,0)
Print Cstr(dc.Count) & " документів відібрано для COB."
If dc.Count>0 Then
Set doc = dc.GetFirstDocument
While Not (doc Is Nothing)
Set rep = db.CreateDocument
rep.form = "CloseDay" --по етой форме хочу сделать документи

If doc.unittype(0) = "U" Then
rep.unitnameUA = doc.unitnameua(0) --вот так должен именоватся документ
Else
rep.unitnameUA = doc.PositionNameUA(0) --или так
End If

rep.unitRef = doc.UniversalID
success = rep.ComputeWithForm( False, False )
If success Then
Call rep.Save(True,False)
Else
Msgbox "Помилка збереження документа!"
End If
Set doc = dc.GetNextDocument(doc)
Wend
End If
End If

End Sub
 
T

turumbay

rep.unitRef = doc.UniversalID
success = rep.ComputeWithForm( False, False )
If success Then
Call rep.Save(True,False)
Else
Msgbox "Помилка збереження документа!"
End If

Ошибка вылетает из-за computewithform.
Насколько я понимаю - все равно сейчас идет отладка.
Сохрани документ несмотря на ошибку, открой его в клиенте. С высокой вероятностью он не откроется( скажет почему ). Если откроется - пересохрани, посмотри что скажет.
 
A

Akupaka

Cleric-Lviv, WTF? RTFM!

flag = notesDocument.ComputeWithForm( doDataTypes, raiseError )
Parameters
doDataTypes
Boolean. The method ignores this parameter. Specify either True or False.
raiseError
Boolean. If True, an error is raised if the validation fails. If False, no error is raised; instead, the method returns False if validation fails.
дивися свою форму CloseDay, на ній якісь ValidationFormula не спрацьовують, тому твій success = FALSE

документів відібрано для COB
Гарі Поттер?! О_о

Сохрани документ несмотря на ошибку, открой его в клиенте. С высокой вероятностью он не откроется( скажет почему ). Если откроется - пересохрани, посмотри что скажет.
он не откроется только если будет ошибка вычисления формул в полях на форме, на логическую ошибку это врядли укажет.
а если сохранится, то что и кто должен сказать? :rolleyes:
 

Kizarek86

Green Team
20.07.2007
871
7
BIT
38
ах да чуть не забил как мне запихнуть "RegionOp" из справочника в ново созданий документ и сделать ето поле "editors"

Dim doc As NotesDocument
Dim item As NotesItem
' ...set value of doc...
Set item = doc.GetFirstItem( "From" )
If item.IsAuthors Then
Call item.AppendToTextList( "Jeffrey Kinnamon" )
Call doc.Save( False, True )
End If
 

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
0
Ого как бистро:rolleyes:
Akupaka

я думаю лутше на руском писать все таки много украинского не понимает(ну и извиняюсь сразу за свой руский никогда не учил:()

так спасибки за ответи щас буду пробовать
 

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
0
Akupaka

ок !!!!

а що нема з ким побалакати на рідній мові ;) ?????


Так уже почучуть виходит:) уже документи создаются но вот с добавлением в права едитора ступор (сильно не пинайте я только-только начал програмировать)
 

Kizarek86

Green Team
20.07.2007
871
7
BIT
38
Ну я там намудрил немного) Вот так нужно делать:

Dim item As NotesItem
Set item = rep.GetFirstItem( "RegionOp" )
item.IsAuthors = true
Call item.AppendToTextList( doc.GetItemvalue("RegionOp") )
 
O

Omh

Я тоже украинец (Деражня).
А вот мови не знаю.
Только из рекламы: шкира, процюю, космодиск :)
 
A

Akupaka

Я тоже украинец (Деражня).
то-то у меня к тебе какая-то скрытая симпатия )))

с добавлением в права едитора ступор
че за проблемы-то? я так понял, что doc у тебя справочник?
тогда одной строкой
Код:
rep.ReplaceItemValue("RegionOp", doc.GetItemValue("RegionOp")).IsAuthors = True
если надо из нескольких документов, то
Код:
rep.ReplaceItemValue("RegionOp", ArrayAppend(rep.GetItemValue("RegionOp"), doc.GetItemValue("RegionOp"))).IsAuthors = True
вроде все, а то, что-то я не внимательный, с первого раза не получилось )
зы: нету поля "editors" есть "authors"
 

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
0
kizarek

почему намудрили??? дали мне правильний путь, куда смотреть:)
на If item.IsAuthors Then ошибка "object variable not set"
я вот пробую следующее

Set rep = db.CreateDocument
rep.form = "CloseDay"

If doc.unittype(0) = "U" Then
rep.unitnameUA = doc.unitnameua(0)
Else
rep.unitnameUA = doc.PositionNameUA(0)
End If

Set item = rep.GetFirstItem( "RegionOp" )
If item.IsAuthors Then
Call item.AppendToTextList( doc.GetItemvalue("RegionOp") )
End If

rep.unitRef = doc.UniversalID
success = rep.ComputeWithForm( False, False )
If success Then
Call rep.Save(True,False)


Omh

еще все впереди виучиш!!!!!!
 

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
0
Akupaka

Не повіриш але в мене є таке поле!!!!:) на форме CloseDay и оно Authors!!!!!!!!!
 

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
0
інакше при збереженні з ЮІ або компутвізформ ітем перестане бути авторс

не понял.......


Akupaka
якщо ти не заперечуєш давай через аську.......349011758
 

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
0
kizarek
не переживай ми чуть-чуть:)

а кстати все работает благодаря вашим бистрим коментам :)
Но вот такой глюк есть

to run this agent you must have at lest one document selected

такая ошибка вискакивает когда на вю нету документов вобще...........а вот если я на вю справочника стою и запускаю агента тогда все ок!
 
A

Akupaka

такая ошибка вискакивает когда на вю нету документов вобще...........а вот если я на вю справочника стою и запускаю агента тогда все ок!
усе верно! у тебя агент Target стоит Selected Documents
если твоему агенту все-равно, что выделено в виде, т.е. нужные документы он сам находит, то поставь там None
 
Мы в соцсетях:

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