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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.05.2015, 18:19   #1  
Predatore is offline
Predatore
Участник
 
163 / 17 (1) ++
Регистрация: 29.09.2010
Доброго времени суток!
Не совсем конечно по программированию на C/AL вопрос, но не знаю куда лучше поместить.
А вопрос собственно к тем, кто знаком с таким зверем как MS Dynamics Adapter. Скачал, установил, настроил, скачал SDK, пытаюсь посмотреть как это работает, а оно нифига не работает.
Подробнее. В SDK есть XMLAdapter и TextAdapter. TextAdapter у меня вообще никакого мэппинга не показывает, т.е. показывает только какой-то Exception, а полей которые в нём прописаны, не показывает.
В XMLAdater не удаётся настроить мэппинг, если константу прописываю, то он срабатывает и записывает это значение в НАВ. Если же пытаюсь прописать мэппинг, выдаёт ошибку на поле Field contains error preventing succesfull transform generation.
Как эта хреновина должна работать?
Старый 08.05.2015, 16:08   #2  
Predatore is offline
Predatore
Участник
 
163 / 17 (1) ++
Регистрация: 29.09.2010
В общем, сутуёвина слегка проясняется. Несколько дней плясок с бубном, несколько полных сносов и установок по новой и Adapter зашевелился. Удалось подружить между собой XMLAdapter и TextApdapter. А вот как бы задружить любой из них с NAV Адаптером? Если пытаюсь дружить Нав с Текстом, то настраивается всё вроде норм. Но в логе Адаптера пишется ошибка: Exception occurred in Microsoft Dynamics NAV
Если же дружить Нав с XML, то даже меппинг настроить не удаётся. Ошибки всё те же, что и постом выше.
Старый 12.05.2015, 14:09   #3  
Predatore is offline
Predatore
Участник
 
163 / 17 (1) ++
Регистрация: 29.09.2010
Тихо сам с собою, я веду беседу...
Пока все молчат, я продолжаю биться о стену. Письменное изложение мысли помогает самому разобраться в проблеме.
Частично удалось задружить NAV с Text. Для начала выяснилось, что преднастроенные страницы интеграции нифига не работают, нужно использовать свои, со своей страницей удалось выгрузить из НАВа в Текст.
Почему частично? Потому что НАВ отдаёт записи по одной, в то время как Текст ожидает пачку записей. Это приводит к тому, что каждая отданная НАВом запись просто перезаписывает предыдущую. В итоге мы имеет в файле не пачку изменений, а только последнее изменение.
С одной стороны даже логично, ведь тип страницы у нас Card, давай попробуем сделать List. Хм, если тип страницы List, то НАВ вообще не отдаёт изменений, это уже далековато от логики...
Это всё наталкивает на мысль, что и XML с НАВом подружить не получается потому, что XML хочет отдать пачку записей, в том время как НАВ ждёт только одну. А что бы пачку отправить, надо по идее ещё и контейнеры смапить, а не только поля. В пользу этой теории говорит то, что при попытке смапить контейнеры, ошибки на полях исчезают, но появляется ошибка на мапинге контейнера. Дескать, а вот нельзя мапить Contact с Dictionary 2.
Почему 2, не понятно, но если расковырять адаптер НАВа, то можно увидеть как решили проблему того, что код адаптера статичен, а вебсервисы динамические на всю голову. А решили это тем, что для записей не создаются классы-контейнеры, вместо этого используются словари (тот самый Dictionary) у которых ключ - текстовое название поля, а значение, есть значение поля.
Подводя итог:
То что НАВ выплёвывает записи по одной, очень грустно и печально, надеюсь что я просто не знаю как заставить его выплёвывать пачку записей. Кстати, судя по внутренностям dll НАВ адаптера, он таки должен уметь плеваться пачками. Если конечно в клиенте Адаптера чего-нить такого не захардкодили, что ведёт к тому, что из НАВа записи обрабатываются только по одной. Хотя, тут наверное тоже может иметь место быть проблема с различными типами контейнеров...
То что в НАВ нужно отправлять словари, а не экземпляры классов (это ещё проверить надо, как бы по одной записи не пришлось фигачить), тоже грустно, тут судя по всему нужно либо передавать данные построчно, тогда и контейнеры мапить скорее всего не нужно будет, но это как-то убого с точки зрения архитектуры. Либо отдающий адаптер кодить так, что бы он словарь отдавал, а не экземпляр класса. Либо же, ИМХО, наилучшим вариантом будет заюзать функционал расширения мэппинга, написав функции, которые будут конвертить словари в объекты и объекты в словари. Тоже конечно не идеальный подход (вся динамичность идёт лесом), но других вариантов я пока не вижу.
За это сообщение автора поблагодарили: mira (1).
Старый 12.05.2015, 16:05   #4  
artkashin is offline
artkashin
Участник
MCBMSS
 
519 / 18 (2) ++
Регистрация: 06.12.2006
Predatore, ты лучше скажи, для чего ты вообще затеял эту тягомотину, и что это за зверь? я честно - гуглил, но не нашел, что за адаптер и для чего он?
Старый 12.05.2015, 17:25   #5  
artkashin is offline
artkashin
Участник
MCBMSS
 
519 / 18 (2) ++
Регистрация: 06.12.2006
Цитата:
Сообщение от Kashin Посмотреть сообщение
Predatore, ты лучше скажи, для чего ты вообще затеял эту тягомотину, и что это за зверь? я честно - гуглил, но не нашел, что за адаптер и для чего он?
P.S. Надеюсь, ты не просишь отвечать только тех, кто реально знает ответ и ссылки не запрещаешь?
Старый 12.05.2015, 17:28   #6  
Predatore is offline
Predatore
Участник
 
163 / 17 (1) ++
Регистрация: 29.09.2010
Цитата:
Сообщение от Kashin Посмотреть сообщение
Predatore, ты лучше скажи, для чего ты вообще затеял эту тягомотину, и что это за зверь? я честно - гуглил, но не нашел, что за адаптер и для чего он?
MS Dynamics Adapter - мелкомягкая штуковина для того что бы дружить между собой Dynamics продукты, изначально CRM и NAV. В дальнейшем, посредник, который может подружить что угодно с чем угодно.
Затеял я эту тягомотину потому что с одной стороны, дружба через посредника - это правильный подход, особенно если дружат между собой больше чем две системы. С другой стороны, мне нужно дружить НАВ с вебом, причем в обе стороны. И если дружба NAV->WEB вопросов практически не вызывает, то вот WEB->NAV вызывает множество вопросов в инфраструктуре сети в общем и в инфраструктуре безопасности в частном. Особенно если WEB принадлежит одной компании, а NAV - другой; и это как раз мой случай.
Поэтому посредник, который с одной стороны дружит с вебом, а с другой стороны дружи с НАВом, который можно как угодно изолировать и обезопасить, лишь бы ему был виден веб и НАВ, это то что архинужно в данной ситуации.
Старый 12.05.2015, 17:36   #7  
Predatore is offline
Predatore
Участник
 
163 / 17 (1) ++
Регистрация: 29.09.2010
Цитата:
Сообщение от Kashin Посмотреть сообщение
Цитата:
Сообщение от Kashin Посмотреть сообщение
Predatore, ты лучше скажи, для чего ты вообще затеял эту тягомотину, и что это за зверь? я честно - гуглил, но не нашел, что за адаптер и для чего он?
P.S. Надеюсь, ты не просишь отвечать только тех, кто реально знает ответ и ссылки не запрещаешь? />
Хм... и почему я его Адаптером заву... правильно гуглить MS Dynamics Connector, прошу прощения. Просто он мне слегка моск вынес. Коннектор конечно же, а Адаптерами в нём называются интерфейсы для дружбы.
Старый 12.05.2015, 18:17   #8  
artkashin is offline
artkashin
Участник
MCBMSS
 
519 / 18 (2) ++
Регистрация: 06.12.2006
Цитата:
Сообщение от Predatore Посмотреть сообщение
Хм... и почему я его Адаптером заву... правильно гуглить MS Dynamics Connector, прошу прощения. Просто он мне слегка моск вынес. Коннектор конечно же, а Адаптерами в нём называются интерфейсы для дружбы.
Вот, это другое дело.
Честно, в году этак 2010-2011-м, когда появилась эта недоделка-"фича", я ее тестировал на демо виртуалках от майкрософта. У меня легко получалось просто играясь в CRM и NAV их рассинхронизировать. Точнее, это делалось очень легко. Без возможности синхронизировать. Без логов синхронизации. В связи с тем, что в инете по этой фиче почти не было ни отзывов, ни замечаний (как и сейчас) я бы в промышленной эксплуатации это бы использовать не стал, от слова совсем - случись чего, вряд ли получится решить проблему.
После этого, желание изучать микро-недо-аналог BizTalk пропал. Единственный плюс этого коннектора - что он идет бесплатно в комплекте, насколько я помню. Все остальное - сплошные минусы.
Готовых промежуточных слоев для NAV, конечно же нет (за исключением biztalk адаптера для квот/заказов продажи и покупки - работоспособность которых я не проверял).
проще и правильнее смотреть в сторону сервисных шин предприятия (ESB) - если есть деньги - то bizTalk) нет денег (на начальном этапе) - MuleESB. Либо писать самому, благо .NET способствует простому написанию подобных коннекторов - возможностей для дальнейшего маневра будет на порядок больше.
Например:
http://www.codeproject.com/Articles/...ng-Soap-Router
Старый 13.05.2015, 10:47   #9  
Predatore is offline
Predatore
Участник
 
163 / 17 (1) ++
Регистрация: 29.09.2010
Цитата:
Сообщение от Kashin Посмотреть сообщение
Цитата:
Сообщение от Predatore Посмотреть сообщение
Хм... и почему я его Адаптером заву... правильно гуглить MS Dynamics Connector, прошу прощения. Просто он мне слегка моск вынес. Коннектор конечно же, а Адаптерами в нём называются интерфейсы для дружбы.
Вот, это другое дело.
Честно, в году этак 2010-2011-м, когда появилась эта недоделка-"фича", я ее тестировал на демо виртуалках от майкрософта. У меня легко получалось просто играясь в CRM и NAV их рассинхронизировать. Точнее, это делалось очень легко. Без возможности синхронизировать. Без логов синхронизации. В связи с тем, что в инете по этой фиче почти не было ни отзывов, ни замечаний (как и сейчас) я бы в промышленной эксплуатации это бы использовать не стал, от слова совсем - случись чего, вряд ли получится решить проблему.
После этого, желание изучать микро-недо-аналог BizTalk пропал. Единственный плюс этого коннектора - что он идет бесплатно в комплекте, насколько я помню. Все остальное - сплошные минусы.
Готовых промежуточных слоев для NAV, конечно же нет (за исключением biztalk адаптера для квот/заказов продажи и покупки - работоспособность которых я не проверял).
проще и правильнее смотреть в сторону сервисных шин предприятия (ESB) - если есть деньги - то bizTalk) нет денег (на начальном этапе) - MuleESB. Либо писать самому, благо .NET способствует простому написанию подобных коннекторов - возможностей для дальнейшего маневра будет на порядок больше.
Например:
http://www.codeproject.com/Articles/...ng-Soap-Router
То что это недоделка, в принципе согласен. Но промышленно она таки используется, как раз между CRM и NAV, используется вполне себе успешно и логи у неё тоже есть. Я так думаю что между CRM и NAV действительно всё легко, т.к. она изначально и создавалась что бы их подружить. Я же полез во внутренности и демо адаптеры: Text и XML. В них всё оказалось не так просто.
До конца с этой штуковиной разобраться наверное стоит как минимум потому, что она таки используется. И используется не где-то, а у меня под носом
Писать свой коннектор... я как раз думал об этом, когда мне показали MS Dynamics connector, мол вот, всё уже написано, бери и пользуйся
В любом случае, спасибо за наводку на MuleESB.
Старый 13.05.2015, 12:50   #10  
artkashin is offline
artkashin
Участник
MCBMSS
 
519 / 18 (2) ++
Регистрация: 06.12.2006
Цитата:
Сообщение от Predatore Посмотреть сообщение
И используется не где-то, а у меня под носом />
О как.
Можешь по подробнее рассказать - какие подводные камни есть?
Бывает ли рассинхронизация данных? (может это у меня в демо базе были проблемы?)
как решается?
данные в обе стороны перегружаются? (клиенты/контакты, и заказы)?
как часто обновляются данные?
.
просто я натыкался на какие-то невероятные косяки синхронизации, когда в CRM пытался заказы набивать - в NAV попадала какая-то ересь - и я плюнул
 


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

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

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