Вопрос

Иди!

Этот вопрос принес мне значок Tumbleweed (7 просмотров за 7 дней!), Что каким -то образом является сильным подтверждением, что Навидение Имеет очень ограниченную долю рынка, которая - я подозреваю - должен быть подтверждением, не является ни тем, чтобы не все это отличное программное обеспечение ...

Но, эй ... это то, что мы получили в качестве бэк-энда, поэтому я готов сразиться с этим. : -O

Если есть какой -то дерзкий разработчик Navision, который может пролить свет на это ... щедрость для вас! :)


Оригинальный пост

Недавно я внедрил довольно сложную систему электронной коммерции, которая взаимодействует с устаревшим бэк-концом на основе Navision 5. До сих пор обмен данными между двумя платформами произошел через XML-файлы, но этот метод довольно неуклюжий и очень подвержен к неудачам.

Наши потребности:

  1. К разоблачить определенные элементы бизнес -логики каждой платформы другой (например,: «Какая общая сумма когда -либо приобретается этим клиентом?», «Какие продукты предлагаются в настоящее время?», «Сколько новых клиентов зарегистрировалось на веб -сайте?» и т. Д. ..).
  2. К Иметь механизмы спиртной спины / проверки Для различных транзакций (например: «Вот новый заказ от клиента X» ... «ОК, получил, заказ теперь начнет обрабатывать» ... «ОК, скопируйте это, пока!»).
  3. Если возможно, Избегайте игры с файлами, но соблюдение всего этого происходит с точки зрения звонков/портов/услуг ...

Самым естественным способом, о котором я мог придумать, было бы интегрировать две системы через веб -сервис, но Navision 5 не поддерживает это. Итак, я сделал свою «должную осмотрительность» и нашел несколько вещей на MSDN, включая эта статья а также этот другой.

Согласно этим статьям Не должно быть так сложно создать веб -сервис на Navision 5, Но когда я предложил это решение команде, отвечающей за устаревшую систему, они сказали нам, что это «чистая теория», и они не знают никого, кто когда -либо ее реализовал.

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

Итак, мой вопрос два раза:

  1. Есть ли кто -нибудь, у кого есть попробовал это дома И было бы доступно немного поделиться тем, что было самыми большими трудностями, если конечный результат является надежным, если они думают, что результат стоит усилий и т. Д. ...?
  2. Есть ли кто -нибудь, кто столкнулся с аналогичной проблемой, но решил ее с другим подходом, и это было бы доступно, чтобы представить их решение («Я никогда не делал этого сам, но если бы мне пришлось это сделать, я бы сделал это так ...» ответов также приветствуются)?

Заранее спасибо за ваше время! :)

Это было полезно?

Решение

Я тоже буду взволноваться с не слишком полезным ответом о нависе 6 :)

Я только что завершил проект, используя NAV 6. Удивительно, что веб -сервисы очень легко разоблачить и потреблять. Это действительно тривиальный вопрос, чтобы найти объект в интерфейсе веб -сервисов и отметить ящик, чтобы сказать ему, чтобы выставить себя.

Независимо, веб-сервисы не работают, как вы ожидаете, вам часто приходится использовать какую-то пробную и ошибку, чтобы привлечь объекты и свойства для сохранения, так как это действительно обидно относительно последовательности событий, которые вы используете для сохранения и объекта. И каждый объект, кажется, работает немного по -другому. Например: чтобы создать клиента, я в конце концов обнаружил, что вам нужно создать и сохранить пустого клиента, массировать эту новую запись с помощью CodeUnit, затем получить запись, а затем написать атрибуты клиента и сохранить снова. я ожидал Чтобы просто создать новый клиент (), установите атрибуты и сохраните одним быстрым ударом.

Думаю, вы не слишком заинтересованы в обновлении до NAV6, но вне моей головы, вот как вы могли бы моделировать веб -сервисы:

SharePoint уже может потреблять и разоблачить веб -сервисы, так что уровень не является проблемой. NAV 5 не имеет их «естественным образом», но вы можете приготовить свою собственную программу, которая выступает в качестве «брокера» веб -сервиса - вы уже получаете информацию в NAV и за ее пределами, в основном XML. Вы можете построить этого брокера, чтобы принять ввод в качестве XML -файлов и массировать его для использования при вызове веб -сервиса. Вы можете даже отказаться от XML и написать и читать прямо из БД, так как вся информация о NAV в любом случае хранится там. Итак, вот что я думаю:

NAV <--> SQL Server <--> New 'Broker' Webservice <-> SharePoint

Или, если у вас уже есть NAV API вниз по PAT и вы хотите оставить свой XML:

NAV <--> xml Files <--> new 'Broker' Webservice <-> SharePoint

Если вы используете XML и используете FileWatchers, задержка не должна быть плохой, обычно файловые терапевты собирают при падении или изменении в миллисекундах.

Хм, но я думаю, что ты вероятно Предполагается использовать BizTalk для таких вещей: NAV <-> BizTalk <--> SharePoint

Но я не знаю, как легко было бы настроить BizTalk для общения с NAV. Держу пари, что это довольно быстро, чтобы заставить коммунальные работы, но это предположение.

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

Ура, Лэнс

Другие советы

Там, где я работаю, мы смогли использовать одну из веб -сервисов от NAV 6 для интеграции с SharePoint, чтобы вы могли искать клиента или записать и показать его в веб -частью в SharePoint. Я знаю, что ваш вопрос о NAV 5, в частности, но я видел, что это работало только на NAV 6., и я не был разработчиком, который работал над этим, поэтому у меня нет больше подробностей, я боюсь.

Вы пробовали спросить на mibuso.com? Они гораздо более ориентированы на навидение.

Когда вы говорите разоблачить бизнес -логику, включает ли это выполнение AL -кода (например, CodeUnit)? Если вам нужно только выполнить запросы в отношении базы данных, вы можете использовать nodbc & system.data.odbc или API cfront .net. Любой из них может быть легко обернут с помощью веб -службы .NET, и оба поддерживают нативную базу данных NAV. Чтобы вернуть сообщения обратно, вам все равно нужно использовать Com, как описано в первой статье, которую вы упомянули.

Любое из вышеперечисленного вполне возможно и относительно легко в зависимости от вашего мастерства в .NET, COM и NAV.

Вторая статья, с которой вы ссылались, описывает использование NAS. Я не эксперт по этому поводу, но я думаю, что это может потребовать специальной гранулы лицензии. Прежде чем тратить время на реализацию чего -либо, стоит проверить, включает ли ваша лицензия NAS, CFRNT или NODBC.

На самом деле вы можете сделать «техническое обновление» NAV 5 на NAV 2009, а затем использовать собственные веб -сервисы. Это означает, что замена экстренных штук и все приложение (но не объекты, которые все еще будут версией 5), и пара других трюков. Но это работает, и, таким образом, у вас есть функциональность Webservice 2009 года на NAV 5 :-)

В интересах того, что кто -либо погуглите, если вы все еще находитесь в Navision 6 с нативной базой данных, хороший способ подключения - через очередь сообщения Windows.

Вы можете написать свой собственный веб -сервис, который вкладывает XML -запросы в очередь, а затем дождаться появления ответа. На стороне Navision у вас есть один клиент, который тянет очередь и вкладывает ответы в очередь ответов. Для этого есть особый клиент, не являющийся GUI, называется NAS.

Я использую этот подход в течение 15 лет для подключения двигателей бронирования, чтобы выгнать Navision Back End. Это работает очень хорошо и имеет то преимущество, которое вы можете заглянуть в запросы, прежде чем они достигнут Navision, чтобы вы могли защитить свой задний конец от слишком многих или неисправных запросов.

Единственная проблема с этим подходом заключается в том, что команда Commit в Navision очень дорого. Трудно обслуживать высокие объемы запросов. Как только бэк -конец нуждается в совершении, вы допускаете всего несколько запросов в секунду. Это может быть хорошо для низкого объема.

Для большого объема вам необходимо внедрить кэширование или вывести часть бизнес -логики. Для меня это было поражено веб -сайтами сравнения цен, поэтому здесь решение обслуживает тех, кто из веб -сервисов, написанных на Python, и передает запросы, только если кто -то что -то покупает ...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top