AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.04.2011, 14:53   #1  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
Вообще не понял зачем запускать и останавливать именно NAS. Пусть NAS работает постоянно, при запуске NAS стартуйте кодъюнит с таймером который и вызывает ваш кодъюнит по таймеру. В этом случае если не завершилось выполнение кодъюнита NAS следующий и не запустит.
__________________
Want to believe...
Старый 20.04.2011, 17:31   #2  
Fly is offline
Fly
Участник
Аватар для Fly
 
102 / 10 (1) +
Регистрация: 05.10.2007
Цитата:
Сообщение от DA_NEAL Посмотреть сообщение
Вообще не понял зачем запускать и останавливать именно NAS. Пусть NAS работает постоянно, при запуске NAS стартуйте кодъюнит с таймером который и вызывает ваш кодъюнит по таймеру. В этом случае если не завершилось выполнение кодъюнита NAS следующий и не запустит.
Объясню почему. Если в объекты вносятся какие-то правки, то NAS необходимо перезапускать, чтобы он работал с новой версией объекта. Если никуда не записывать последнюю дату и время сеанса интеграции, то после перезапуска сеанс повторится. А это не всегда хорошо (например, если выполняются тяжелые задания, типа коррекции себестоимости).
Старый 20.04.2011, 20:09   #3  
alexb_imported is offline
alexb_imported
Участник
 
256 / 12 (1) ++
Регистрация: 25.08.2006
Цитата:
Сообщение от Fly Посмотреть сообщение
Объясню почему. Если в объекты вносятся какие-то правки, то NAS необходимо перезапускать, чтобы он работал с новой версией объекта. Если никуда не записывать последнюю дату и время сеанса интеграции, то после перезапуска сеанс повторится. А это не всегда хорошо (например, если выполняются тяжелые задания, типа коррекции себестоимости).
В настройках NAS службы можно поставить Object Cache Size = 0 и в Навижене в NAS кодеюните прописать в самом начале SELECTLATESTVERSION.
Старый 21.04.2011, 11:02   #4  
Fly is offline
Fly
Участник
Аватар для Fly
 
102 / 10 (1) +
Регистрация: 05.10.2007
Цитата:
Сообщение от AlexB Посмотреть сообщение
Цитата:
Сообщение от Fly Посмотреть сообщение
Объясню почему. Если в объекты вносятся какие-то правки, то NAS необходимо перезапускать, чтобы он работал с новой версией объекта. Если никуда не записывать последнюю дату и время сеанса интеграции, то после перезапуска сеанс повторится. А это не всегда хорошо (например, если выполняются тяжелые задания, типа коррекции себестоимости).
В настройках NAS службы можно поставить Object Cache Size = 0 и в Навижене в NAS кодеюните прописать в самом начале SELECTLATESTVERSION.
SELECTLATESTVERSION, как я понимаю, относится к данным - берется последняя версия. А вот про Object Cash Size почитал повнимательнее. Не знал, что можно установить значение 0. Мне не совсем понятно как NAS в этом случае будет работать. Как он будет знать, что необходимо подтянуть новую версию объектов? И если каким-то образом будет знать, хорошее ли это решение при каждом обращении к объекту обновлять его версию?
Старый 21.04.2011, 12:46   #5  
alexb_imported is offline
alexb_imported
Участник
 
256 / 12 (1) ++
Регистрация: 25.08.2006
Цитата:
Сообщение от Fly Посмотреть сообщение
[Не знал, что можно установить значение 0. Мне не совсем понятно как NAS в этом случае будет работать. Как он будет знать, что необходимо подтянуть новую версию объектов? И если каким-то образом будет знать, хорошее ли это решение при каждом обращении к объекту обновлять его версию?
Если Object Cache = 0, то NAS не обращается к версии обьектов в cache (т.к. cache пустой) a работает непосредственно с актуальной версией обьектов. Еффект тот же самый, если вы в опциях своего NAV-client'a ставите Object Cache (KB) = 0 (у нас программисты даже ОБЯЗАНЫ в опциях своего NAV-client'a ставить Object Cache (KB) = 0). Так ведь вам же и нужно, чтобы NAS обращался всегда к актуальной версии объектов в ДБ? При старте NAS загружает в свой cache версию обьектов, а если cache = 0, то NAS вынужден работать с самой актуальной версией обьектов. Проблем я здесь не вижу. NAS работает в продуктивной ДБ, вы импортировали в неё изменённые / новые обьекты, НАС и должен с ними работать.
Старый 21.04.2011, 13:05   #6  
Fly is offline
Fly
Участник
Аватар для Fly
 
102 / 10 (1) +
Регистрация: 05.10.2007
Цитата:
Сообщение от AlexB Посмотреть сообщение
Цитата:
Сообщение от Fly Посмотреть сообщение
[Не знал, что можно установить значение 0. Мне не совсем понятно как NAS в этом случае будет работать. Как он будет знать, что необходимо подтянуть новую версию объектов? И если каким-то образом будет знать, хорошее ли это решение при каждом обращении к объекту обновлять его версию?
Если Object Cache = 0, то NAS не обращается к версии обьектов в cache (т.к. cache пустой) a работает непосредственно с актуальной версией обьектов. Еффект тот же самый, если вы в опциях своего NAV-client'a ставите Object Cache (KB) = 0 (у нас программисты даже ОБЯЗАНЫ в опциях своего NAV-client'a ставить Object Cache (KB) = 0). Так ведь вам же и нужно, чтобы NAS обращался всегда к актуальной версии объектов в ДБ? При старте NAS загружает в свой cache версию обьектов, а если cache = 0, то NAS вынужден работать с самой актуальной версией обьектов. Проблем я здесь не вижу. NAS работает в продуктивной ДБ, вы импортировали в неё изменённые / новые обьекты, НАС и должен с ними работать.
Никак не могу понять. Вы говорите - при старте NAS, если cache=0, то NAS работает с актуальной версией объектов. Т.е. объекты цепляются в этот момент, дальше NAS запускает кодюнит с таймером. При срабатывании события "Timer" NAS будет обновлять версию объектов? Или нет? Когда он это будет делать? Я поменял объект в момент времени N. При следующем срабатывании события "Timer" NAS уже будет работать с новой версией объекта?
Объясните пожалуйста
Старый 21.04.2011, 17:58   #7  
alexb_imported is offline
alexb_imported
Участник
 
256 / 12 (1) ++
Регистрация: 25.08.2006
Цитата:
Сообщение от Fly Посмотреть сообщение
Никак не могу понять. Вы говорите - при старте NAS, если cache=0, то NAS работает с актуальной версией объектов. Т.е. объекты цепляются в этот момент, дальше NAS запускает кодюнит с таймером. При срабатывании события "Timer" NAS будет обновлять версию объектов? Или нет? Когда он это будет делать? Я поменял объект в момент времени N. При следующем срабатывании события "Timer" NAS уже будет работать с новой версией объекта?
Объясните пожалуйста
NAS такой же client как и обычный, только невидимый. При нулевом cache NAS (если он постоянно без промежуточных перезапусков работате) заметит то что обьект изменился только в момент обращения к обьекту, если cashe > 0 то будет работать всю дорогу с версией обьектов из cache до тех пор пока служба NAS не будет перезапущена (по идее, в этом и смысл object cache).

Цитата:
Сообщение от RedFox Посмотреть сообщение
И проверено на практике, что SELECTLATESTVERSION не помогает в NAS.
У меня тоже проверено на практике: прекрасно работает
Старый 21.04.2011, 13:37   #8  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от Fly Посмотреть сообщение
Объясню почему. Если в объекты вносятся какие-то правки, то NAS необходимо перезапускать, чтобы он работал с новой версией объекта. Если никуда не записывать последнюю дату и время сеанса интеграции, то после перезапуска сеанс повторится. А это не всегда хорошо (например, если выполняются тяжелые задания, типа коррекции себестоимости).
А вот сейчас неАсилил зачем связываться с объектами? Неужели они часто меняются? Кстати, не забываем про рекомендации от "производителя" - желательно перезапускать NAS периодически.

И проверено на практике, что SELECTLATESTVERSION не помогает в NAS.
Старый 21.04.2011, 14:22   #9  
Fly is offline
Fly
Участник
Аватар для Fly
 
102 / 10 (1) +
Регистрация: 05.10.2007
Цитата:
Сообщение от RedFox Посмотреть сообщение
Цитата:
Сообщение от Fly Посмотреть сообщение
Объясню почему. Если в объекты вносятся какие-то правки, то NAS необходимо перезапускать, чтобы он работал с новой версией объекта. Если никуда не записывать последнюю дату и время сеанса интеграции, то после перезапуска сеанс повторится. А это не всегда хорошо (например, если выполняются тяжелые задания, типа коррекции себестоимости).
А вот сейчас неАсилил зачем связываться с объектами? Неужели они часто меняются? Кстати, не забываем про рекомендации от "производителя" - желательно перезапускать NAS периодически.

И проверено на практике, что SELECTLATESTVERSION не помогает в NAS.
Потому что до окончания внедрения интеграции ею уже начинают пользоваться. Реализовал интеграцию по документам продажи, запустили. Потом находятся ошибки или пожелания по обмену еще какими-то атрибутами. Приходится вносить правки и перезапускать.
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:26.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.