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

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

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

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

Gерхватить Cannot Locate Form "zzz"

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

Omh

Камрады, приветствую!

Прошу приложить немного знаний, что бы ответить на вопрос поставленный в сабжекте.

Диспозиция такова:
В базе есть документы на форме, которой не существует.
Но есть default'овая форма
При открытии линка до документ без формы лотус материться "Cannot locate form" и только потом открывает документ в дефалтовой форме.
Есть идеи как убрать информацию об ошибке ненахождения формы?
 
M

morpheus

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

а так, вообще надо пройтись по всем документам у которых левые формы и прописать им нужные
 
O

Omh

Для: Morpheus
Да тут такая ситуация, что для самописного удаления документов использовалась смена названия формы. :eek:
Я всего для таких целей юзаю поле-флаг.
Ну вот и исходя из того, что уже дано, пытаюсь как-то выпрямит ситуацию.
Выходит не очень :)
 
M

morpheus

<!--QuoteBegin-Omh+17:12:2007, 17:17 -->
<span class="vbquote">(Omh @ 17:12:2007, 17:17 )</span><!--QuoteEBegin-->использовалась смена названия формы.
[snapback]90205" rel="nofollow" target="_blank[/snapback]​
[/quote]
Ну так повторить операцию, "удалёным" докуметам проставить поле формы, собачный агент за 5ть минуток
 
O

Omh

Ну если бы было всё так просто, я бы даже и не спрашивал.
Там сложный комплекс, много выборок по форме и т.д.
 
30.05.2006
1 345
12
BIT
0
Так причина в том, что поле Form с именем формы "испорчено", но не пустое?

Ну, создайте вы ему такую форму .. (или дайте алиас существующей)
 
O

Omh

Для: Constantin A Chervonenko
Особенно если учесть что в каждой базе n форм и для каждой формы создаавать такую же (пусть без кодов) не очень умно.
Повторюсь, здесь на изменеии имени формы сделано удаление документов.
 
S

Sandr

Переделай все на флаги и не мучайся... такие вещи надо на корню рубить, а то потом еще хуже будет...
 
30.05.2006
1 345
12
BIT
0
Для: Constantin A Chervonenko
Особенно если учесть что в каждой базе n форм и для каждой формы создаавать такую же (пусть без кодов) не очень умно.
Повторюсь, здесь на изменеии имени формы сделано удаление документов.
Да за ради бога! Нехай форма будет одна и та же, для нормального и "удаленного" док-та. По кр.мере всегда отображаться будет нормально
 
O

Omh

Говорю как сделано
Было допустим форма "Document", при удалении она стала "Document_Deleted".
Форма "Answer" стала "Answer_Deleted".
Набор форм в каждой базе свой.
Это придумал не я, так что не пинайте :eek:
Это - сложившаяся ситуация.
Мне надо её разрулить таким образом, что бы при открытии любого удалённого по линку документа он открывался в своей первоначальной форме.
Причём, каким нибудь централизованным путём, что бы весь код был сосредоточен в одном месте...

Можно через Form Formula у default view в базе, но этот способ работает только если линк сгенерен LS кодом (ту линка в DXL есть унид вью через которое он будет окрываться)

А вообще Sandr прав, предчувствую день офигенно креативной работы :)
 
A

Akupaka

офтоп:
мне кажется, что Вы запутались в том, чего Вам нужно достичь...

сначала Вы хотели: "убрать информацию об ошибке ненахождения формы", а теперь говорите, что Вам нужно: "что бы при открытии любого удалённого по линку документа он открывался в своей первоначальной форме"...

если формирование имени формы в "удаленном" документе такое как Вы указываете (Форма "Answer" стала "Answer_Deleted".), то в чем состоит сложность сделать обратное "исправление" с дополнительным внесением указывающего на удаление флага?..
 
K

K-Fire

Если у формы "Answer" не прописан алиас - то можно сделать так как Константин предложил. Самый простой и негеморойный способ.
Если "Answer" это и есть алиас, а имя формы чтонить типа "2. Вопрос", то тут есть 2 варианта:
1й это хак - сделать копию каждой формы и обозвать её "Answer_Deleted"
2й вариант правильный, но наиболее трудоемкий - переделать функцию удаления полностью на флаг, модифицировать вьюшки, и сконвертить существующие документы.

А вообще, я с каждым разом убеждаюсь всё больше и больше: если вам могут поставить задачу на модификацию какой-то функциональности, и вы видите что раньше это было написано криво - рефакторить код/архитектуру надо обязательно. Причем даже если время на рефакторинг будет потрачено больше чем на модификацию существующей кривизны - рефакторить всё равно надо.
 
O

Omh

Для: Akupaka
Я не запутался.
Я хотел сделать так: при открытии линка на документ с несуществующей формой открывается default form у базы. Правильно?
У этой формы я на PostOpen подменяю форму на прежнее название (без суффикса _Deleted) и открываю документ в readonly режиме в прежней форме.
Всё, код сосредоточен в одном месте, перехватываются все попытки открытия.
Но, перед тем как открыть док в dafault форме lotus выкидывает ошибку о ненахожденни этой формы.
Её-то я и хочу убрать.

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

Для: K-Fire
"Answer" это именно алиас.
И делать для каждой формы ещё одну такую же но с суффиксом "_Deleted", ну, Вы сами понимаете...

Вообще, конечно, делать удаление документов изменеием названия формы - тот ещё изврат.
Буду переделывать на флаг, но позже.

То что код надо рефакторить, даже если не стоит задача по изменени, а просто стал чуток опытнее - 100%
Полезно перечитать что-то написаное год назад и улучшить.
 
A

Akupaka

А я запутался :))

зачем раскидывать код по формам? О_о
из того, что я понимаю, то можно все в одном агенте сделать... это и есть ваш, так называемый, рефакторинг... :)
 
O

Omh

Для: Akupaka
Не будем течь мыслью по древу.
Всё равно буду пределывать на флаг.
Энивэй, спасибо за проявленное внимание :)
 
30.05.2006
1 345
12
BIT
0
Для: Akupaka
Я не запутался.
...
Я хочу что бы он был централизован.
...
И делать для каждой формы ещё одну такую же но с суффиксом "_Deleted", ну, Вы сами понимаете...
Эк вас заклинило.

Да не надо-же делать 2-ю форму с суффиксом *_Deleted. Надо в св-ва каждой формы добавить алиас вида <имяформы>_Deleted.

Это можно сделать в одном месте, один раз, причем программно (маленький одноразовый агентец, можно даже формульный)
 
A

Akupaka

или даже собрать все алиасы под одну форму, если по длинне хватит...
 
O

Omh

Для: Constantin A Chervonenko
У формы может быть 2 алиаса?
Для меня это что-то новое....
 
O

Omh

Вэу!
Век живи, век учись.
Но всё равно смена формы для удаления - гогно-идея.
 
Мы в соцсетях:

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