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

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

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

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

Response To Response

  • Автор темы oxystile
  • Дата начала
O

oxystile

создаю response to response, хочу увидеть внутри него ссылку но лучще копию на главный документ.
(т.е. внутри хочу видеть не его родителя а так сказать "дедушку")
подскажите как это можно реализовать?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Про копию не понял.
А так копируй ссылку на главный документ при создании ответа.
 
O

oxystile

Про копию не понял.
А так копируй ссылку на главный документ при создании ответа.
ну ссылку теоретически знаю как, а практически не получается пока...
про копию: хотелось что-то типа такого результатата как при @Command([ComposeWithReference]; ""; "Visa"; 1+2+4)
но при такой формуле мы получим ссылку на родителя, а мне нужен сымый главный, начальный документ
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Ссылка просто делается.
Создаешь поле (Computed When Compose) на форме ответного документа. Например, root.
Пишешь код:
@If(@IsNull(root); @InheritedDocumentUniqueID; root)
В форме ставишь галку на "Formulas inherit values...".

Если копию, то, наверное, ручками только. На код кнопки создания ответного документа.
 
O

oxystile

по этой формуле документ типа Response to response в поле root получает ссылку на документ типа "Response" а хотелось бы на общего предка всех респонсов
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Для: oxystile
Должна быть ссылка на главный документ.
Ответ создаётся формулой @Command([ComposeWithReference]; ...)?
 
R

Ronchik

Для: oxystile
можно просто изначально хранить во всех ответах UNID главного..но это будет работать только в случие если с базой еще никто не работал ......
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
<!--QuoteBegin-Ronchik+7:09:2007, 17:02 -->
<span class="vbquote">(Ronchik @ 7:09:2007, 17:02 )</span><!--QuoteEBegin-->можно просто изначально хранить во всех ответах UNID главного..но это будет работать только в случие если с базой еще никто не работал ......
[snapback]77508" rel="nofollow" target="_blank[/snapback]​
[/quote]
Это как раз то, что я предложил. :)
 
R

Ronchik

Для: Medevic
а может у него база уже юзаеться тогда что предложишь ??

<!--QuoteBegin-Medevic+7:09:2007, 14:22 -->
<span class="vbquote">(Medevic @ 7:09:2007, 14:22 )</span><!--QuoteEBegin-->@If(@IsNull(root); @InheritedDocumentUniqueID; root)
[snapback]77490" rel="nofollow" target="_blank[/snapback]​
[/quote]
это на мой взгляд будет работать только для ответов а не для ответ на ответ

<!--QuoteBegin-Ronchik+7:09:2007, 16:52 -->
<span class="vbquote">(Ronchik @ 7:09:2007, 16:52 )</span><!--QuoteEBegin-->это на мой взгляд будет работать только для ответов а не для ответ на ответ
[snapback]77513" rel="nofollow" target="_blank[/snapback]​
[/quote]
сорри гоню ...пятница блина
 
M

Mihal

Можно сделать эмуляциюю ссылки. Картинка красивая в виде документика (ссылочки) помещается на форму. А под ней - скрипт. Который раскручивает всё генеалогическое древо до самого верхнего документа.

Примерно так.

Set doc=curdoc
while doc.ParentDocumentUNID<>""
Set doc=db.GetDocumentByUNID(doc.ParentDocumentUNID)
wend

Call ws.EditDocument(true,doc)
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Для: Ronchik
Как обычно в таких случаях пройтись агентом. По главным документам.
Чтобы в поле ответов root была именно ссылка (кликабельная), а не текст, то делаем так.
Получаем поле типа "Response Reference List". Для этого берем его или из первого ответа на главный документ, или создаем новый ответ (но не сохраняем его) и берём оттуда:
Set NotesItem = NotesDocument.GetFirstItem("$REF")
И скопируем его во все ответы (получаем рекурсивно) - Call NotesDocument.CopyItem(NotesItem, "root")
 
O

oxystile

что-то у меня так не выходит....
решила сделать простую проверку, вот что получилось: для документа типа Response в поле с формулой @Text(@InheritedDocumentUniqueID) я получаю его собственный id! а не родителя хотя @IsResponseDoc возвращает 1.

документ Response создается так:
Set docResp = db.CreateDocument
Call docResp.MakeResponse( doc )
docResp.Form="Response"
docResp.DocID=doc.DocID(0) -просто запоминаю id родителя
Call docResp.Save( True, True )
-может в создании респонса что не так???
 
S

Sandr

1-й вариант:
на квериоупен пишем

if source.IsNewDoc then
if curdoc.IsResponse then
on error resume next
set parentdoc = db.getdocumentbyUNID(curdoc.getItemValue('$ref')(0))
if not parentdoc is nothing then
while parentdoc.isresponse
set parentdoc = db.getdocumentbyUNID(parentdoc.getitemvalue($ref)(0))
if not parentdoc is nothing then
if parentdoc is nothing then
msgbox "нету дока"
exit sub
end if
end if
wend
on error goto 0
curdoc.replaseitemvalue(firstUNID, parentdoc.universalID)
end if
end if
end if

2-й вариант
Function getSuperParent(ADoc As NotesDocument) As String
Dim pdoc As NotesDocument

If ADoc Is Nothing Then Error 1000, "Document = nothing"
If ADoc.IsResponse Then
On Error Resume Next
Set pdoc = ADoc.ParentDatabase.GetDocumentByUNID(ADoc.ParentDocumentUNID)
Err = 0
On Error Goto 0
If Not(pdoc Is Nothing) Then
Dim punid As String
punid = getSuperParent(pdoc)
If punid = "" Then
getSuperParent = pdoc.UniversalID
Else
getSuperParent = punid
End If
End If
End If
End Function


оба варианта не проверял, но должно работать.... в коде могут быть грамматические ошибки.. писал тут...
 
M

Mihal

Шурик как всегда не ищет простых путей :).

Зачем менять значения итемов в документах, если можно всё красиво оформить на уже имеющихся данных?:angry:
 
S

Sandr

Шурик как всегда не ищет простых путей :).

Зачем менять значения итемов в документах, если можно всё красиво оформить на уже имеющихся данных?:angry:

А если кто булет умничать - завтра пойду за уши тянуть :) и не один.... С наступающим..
 
M

Mihal

<!--QuoteBegin-Sandr+7:09:2007, 16:50 -->
<span class="vbquote">(Sandr @ 7:09:2007, 16:50 )</span><!--QuoteEBegin-->А если кто булет умничать - завтра пойду за уши тянуть и не один.... С наступающим..
[snapback]77524" rel="nofollow" target="_blank[/snapback]​
[/quote]
Сипасиба. Захочешь оторвать мне ухи - ищи меня в лесах, расположеных возле Бориспольской трассы. Ты меня услышиш :))).

P.S. И тебя забанят, и меня... За оффтоп...
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
<!--QuoteBegin-oxystile+7:09:2007, 18:28 -->
<span class="vbquote">(oxystile @ 7:09:2007, 18:28 )</span><!--QuoteEBegin-->решила сделать простую проверку, вот что получилось: для документа типа Response в поле с формулой @Text(@InheritedDocumentUniqueID) я получаю его собственный id! а не родителя хотя @IsResponseDoc возвращает 1.

документ Response создается так:
Set docResp = db.CreateDocument
Call docResp.MakeResponse( doc )
docResp.Form="Response"
docResp.DocID=doc.DocID(0) -просто запоминаю id родителя
Call docResp.Save( True, True )
-может в создании респонса что не так???
[snapback]77520" rel="nofollow" target="_blank[/snapback]​
[/quote]
Вот в этом всё и дело.
Ответный документ надо создавать на собаках: @Command([ComposeWithReference]; ...).
 
30.05.2006
1 345
12
BIT
0
создаю response to response, хочу увидеть внутри него ссылку но лучще копию на главный документ.
(т.е. внутри хочу видеть не его родителя а так сказать "дедушку")
подскажите как это можно реализовать?
Вставь в форму Computed поле "GrandParent" с такой формулой:
Код:
ugp:=@GetDocField($REF; "GrandParent");
@If(@IsError(ugp)|@Text(ugp)=""; $REF; ugp)
 
Мы в соцсетях:

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