я что-то забыл?! Shared Actions

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 483
360
#1
я не уверен, по поводу влияния внешних факторов (звёзды, погода в африке...)
или в памяти стали стираться подробности данной фичи...
у мя были экшены, во вьюшке (а может в форме) и была подцеплена либа, в кот. описаны "глобальные" объекты (воркплэйс, БД...)
тута я задумал пошарить эти экшены..., и сделал - скопировал (Копи-Паст) прям из экшн панели, в шаредакшены
всё работало (и даже перекомпиляция), до очередной перекомпиляции
и тута оно заругалось - ошибка во вью, к кот. подрубил эти экшены

Причину-то я нашёл ;) (глобальные объекты-то не перенёс), но дальше интересней - экшены (кот. пошарены), при вхождении в них и сохранении, при взведённом Declare - не ругаются на ошибки компиляции (да и без него, всякая хрень - "компилится", вернее - сохраняется)

лотусня розлива 7.0.4, выполняю под вайном (но как показывала 4-летняя практика - не должно влиять)
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
#2
экшены (кот. пошарены), при вхождении в них и сохранении, при взведённом Declare - не ругаются на ошибки компиляции (да и без него, всякая хрень - "компилится", вернее - сохраняется)
Так оно и есть
Потом в рантайме ошибки сыпет...
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 224
24
#3
да и без него, всякая хрень - "компилится", вернее - сохраняется
писалось в мною в соседней теме про Ахтунг, там же и предоставлен вразумительный ответ, шареды не содержат в себе скомпиленный код, а значит и не ругаются никогда на ошибки, потренируйся на библиотеке прежде чем в шареде что-то делать ;)
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 483
360
#4
ToxaRat моя ситуация неск. отличается ;), хотя не меняет сути (шареды не компилятся)
у мя всё работало - до одной из перекомпиляций (были и другие перекомпиляции!)
т.е. интересно то, что перекомпиляция ругнулась, а до того - не ругалась!
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
2
#5
А не задвоился ли документ дизайна, который шаред акшены держит? Через нотеснотеколлекшин можно глянуть, иначе не знаю как - в дизайнере он не отображается
 

hosm

* so what *
18.05.2009
2 442
9
#6
Akupaka
можно сделать копию дизайна БД и попробовать удалить элемент шаредакшен, тогда можно увидеть дубликат.
 

VladSh

начинающий
Lotus team
11.12.2009
1 248
2
#7
OKEN
Ага, оригинальные акшены сразу же проступят снизу.
Вообще, когда задваиваются акшены там другие симптомы: в отладчике показывает новый код (в котором всё нормально), а в рантайме отрабатывает старый код (даёт ошибку, когда делаешь изменения в используемых библиотеках). Собственно, в чём и сложность "диагностики", особенно, когда вначале и не предполагаешь, что такое вообще может случиться...
 
D

Darker

Гость
#8
Хороший SharedAction - метрвый SharedAction. Из-за этого код храню в библах, а SharedAction-ы лишь "толкают" его.
 

VladSh

начинающий
Lotus team
11.12.2009
1 248
2
#9
Хороший SharedAction - метрвый SharedAction. Из-за этого код храню в библах, а SharedAction-ы лишь "толкают" его.
Ну или в агентах, если код специфический (без перспективы повторного использования).
И это правильно! Потому что при добавлении хотя бы одного SharedAction'а на форму/вид, при открытии их, в память вытягиваются все SharedAction'ы, т.к. это одна нота дизайна.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 483
360
#10
в большинстве случаев так и есть (тока вызов агентов или библиотек) и чаще на собаках
НО ежели вызывать LS какие-то действия, полюбасу, нужно написать на LS ;), хоть пару строк...
да и пошареных акшенов, у мя, не более 5-ти бывает (я их тоже не лю)
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 224
24
#12
у мя всё работало - до одной из перекомпиляций (были и другие перекомпиляции!)
т.е. интересно то, что перекомпиляция ругнулась, а до того - не ругалась!
а перекомпиляция не на другом компе была? :welcome:
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 483
360
#13
ToxaRat
Неа - в том-то и прикол, и к томуже - в др. вьюшках тоже были эти акшены, но ругалось, тока для одного!
а потом (когда стал эксперименты с изменениями, в экшенах, делать), для других ругаться стало
 

TIA

:-)
Lotus team
15.05.2009
790
2
#14
шареды не содержат в себе скомпиленный код,
Содержат. Объектник не генерится если хотябы в одном экшене есть синтаксическая ошибка (не обязательно в сохраняемом из UI экшене). А вот если ошибок нет $SCRIPTOBJ_ появляются в ноте шаред-экшенов
 

VladSh

начинающий
Lotus team
11.12.2009
1 248
2
#15
Тьфу-ты!.. да (а чего-то думалось, что они не компилятся) /то агенты такого айтема не содержат/
Тогда не понимаю, почему компилятор не ругается (это была общая версия).

P.S. Прошу прощения за прогон...