Ошибка: Cannot Find External Name

Тема в разделе "Lotus - Программирование", создана пользователем Xalet, 29 июл 2010.

  1. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Есть база с шаблоном библиотеки скриптов. База мастер темплейт из которого библиотека тянется в Н баз, в которых библиотека используется.

    После обновления дизайна в базах код не видит функций из шаблонной библиотеки. Вылетает с ошибкой Cannot find external name и имя функции.

    Думаю, что рекомпайлом оно вылечится, не пробовал пока, нет доступа.

    Вопрос собственно в том: оно всегда так будет ломаться после обновления библиотеки в шаблоне и, если да, то как организовать тогда аналог такого обновления?
     
  2. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    xalet
    оно всегда будет ломаться если вы не умеете правильно править библиотеки - вот так пожалуй коректнее сказать
    Чаще всего так происходит когда кто-то правит две библиотеки сразу а одна из них в это время ссылается в другую
     
  3. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Ну да, так и было. И будет постоянно. Но код при этом корректный. Только обе поменялись.

    Скажем есть у меня функция в библиотеке А, которая использектся в библиотеке Б. Я поменял библиотеку Б, сохранил. Потом беру библиотеку А и дорисовываю туда еще функцию, сохраняю. Библиотека Б всегда при этом сломается?
     
  4. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
  5. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    за линк спасибо. Только там про классы и создание объектов класса. И, судя по рассписанному, в моем случае не должно было сломаться вообще (потому как я просто добавил коммент для тестов в шаблонной библиотеке).
     
  6. Darker

    Darker Гость

    Поможет переименовывание библиотеки-источника + сохранение, и затем переименовывание в модуле-использования+сохранение.
    После удачного теста, переименовать обратно
     
  7. Klido

    Klido Гость

    ну не обязательно... при изменениях в библах нижнего уровня надо пересохранить явно (типа +пробел,- пробел сохранить) все библы, которые наследуют нижнюю... это VladSh разжевывал и даже технота есть от IBM - лень искать по форуму....
     
  8. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Так смысл весь в том, чтобы иметь отдельную базу с библиотеками, которые будут обновляться автоматом во всех базах, где нужны, и там использоваться агентами, библиотеками, кнопочками и т.д. Чтобы обновлять библиотеки централизовано и не лазить по всем базам, где они используются.
     
  9. Klido

    Klido Гость

    вот и пересохраняйте централизовано... при обновлении пересохраненных библов траблы должны уйти
     
  10. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    может я плохо описал...

    скажем
    1. есть библиотека в которой все функции для сохранения логов(считывание конфигов, записи и т.д.).
    2. есть 10 различных баз со своими библиотеками(для каждой уникальные и в общей куче хранить нет смысла)
    3. в библиотека из этих 10ти баз используется библиотека для логов.

    теперь проблема:
    в одной из 10ти баз не хватает функций из библиотеки для логов и ее надо добавить.

    добавляем в этой базе и имеем две версии библиотеки, если не полезим во все 10 и не обновим(а ведь реально не полезим, потому как можем и не знать, что оно там используется).

    в результате через какое-то время у нас 10 версий библиотеки для логов, что не есть гут...

    Потому хотелось бы как-то эту одну(в реале кучу) тянуть из одного места во всех базах без влезания в них и перекомпиливания...
     
  11. Klido

    Klido Гость

    а как же п.3???

    должно быть так: база наследует дизайн с шаблона, а некоторые эл-ты шаблона (у нас - библ логов) персонально наследует дизайн с шаблона с библом логов.

    получаем N баз на одном шаблоне и во всех правильная библа логов.
     
  12. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    не хватает функции в библиотеке логов.

    сделано примерно так, за одним исключением, что дизайн в 10ти базах вообще ниоткуда не наследуется. Наследуется дизайн только дизайн библиотеки с логом...

    ну и собственно оно и ломается.
     
  13. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Блин, столько разговоров... Рекомпиляцию всего скрипта запустил себе и все.
    Если не лениво, то надо самому построить дерево использования, пройтись по нему снизу вверх, но перед сохранением надо обязательно внести изменение, и удалить сразу, например, пробел.
    Лучше всего изменение делать в разделе с Use, иногда в других местах не проходит.
     
  14. Klido

    Klido Гость

    в том и фишка - так бы в мастер-шаблоне пересохранили и всё, а так - 10 раз надо пересохранять...

    Добавлено:
    не всегда поможет :) особенно в 8.Х
     
  15. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Так я и не спрашивал, как от ошибки избавиться. Каждый раз во все базы не лазить же с рекомпиляцией.
     
  16. Klido

    Klido Гость

    а это уже из области тайных знаний :)

    Добавлено: xalet
    вроде тут ответили на оба вопроса из основного поста....
     
  17. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Вроде да. Всем спасибо.

    Попытаюсь обдумать, как такое сорганизовать:

    база наследует дизайн с шаблона - а в нем библы логов нет совсем? Или если в базе указать, откуда берется конкретный элемент, то из общего шаблона он не будет обновляться, а только из того шаблона, который прописан. И это точно поможет? =)
     
  18. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Это ж ты писал, что у тебя элементы дизайна лочатся? Може у тебя что с клиентом? :)
    Хотя, в 8-ке рекомпиляцией пока не страдал массово. В основном руцями парюсь (зачем? О.о сам не понимаю)

    Гы, а что мешает? Неплохая практика каждый раз, после обновления рабочей базы, делать рекомпиляцию. Тогда объектный код нормально строится.
     
  19. Xalet

    Xalet Well-Known Member

    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Серверы клиенты 6.5.х

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

    А пока да. Н версий всех скриптов и все ручками...
     
  20. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Вообще-то в таком случае Recompile All LScript хитро отрабатывает на ура, если ошибок нет (или я чего не понял). А самому ходить искать дерево и пересохранять - гемор тот еще.
     
Загрузка...
Похожие Темы - Ошибка Cannot Find
  1. wowa
    Ответов:
    3
    Просмотров:
    2.825
  2. admin
    Ответов:
    1
    Просмотров:
    4.721
  3. Lamerman
    Ответов:
    0
    Просмотров:
    21
  4. Enima
    Ответов:
    0
    Просмотров:
    50
  5. Baindt
    Ответов:
    1
    Просмотров:
    70

Поделиться этой страницей