2012-06-26 8 views
1

Вот Microsoft Dynamics NAV Web Services из msdn. Но я могу позвонить только http://<Server>:<WebServicePort>/<ServerInstance> и http://<Server>:<WebServicePort>/<ServerInstance>/ws/SystemService и http://<Server>:<WebServicePort>/<ServerInstance>/ws/services.Dynamics Nav Company Веб-сервис

Но я не могу назвать следующий: http://<Server>:<WebServicePort>/<ServerInstance>/WS/<CompanyName>/services http://<Server>:<WebServicePort>/<ServerInstance>/WS/<CompanyName>/Page/<ServiceName>

URL-адрес для доступа к конкретному программному модулю имеет следующие элементы:

http://<Server>:<WebServicePort>/<ServerInstance>/WS/<CompanyName>/Codeunit/<ServiceName>

Как я могу получить доступ к Microsoft Dynamics Nav Интернета услуги для каждой компании из браузера?

ответ

1

В msdn page вы связаны, в нем говорится, что:

Специальные символы в названии компании должно быть URL закодирован. Например, пробелы в названиях компаний должны быть заменены на% 20, поэтому вы должны кодировать название компании «Microsoft France S.A.» как: Microsoft% 20France% 20S.A. Символы, которые не являются частью установленного языка, также должны быть заменены. Например, в США для английского языка, название компании "CRONUS ÆØÅ Company" должен быть закодирован как: CRONUS% 20% C3% 86% C3% 98% C3% 85% 20Company

ли вы проверить, что название компании, которую вы используете, правильно экранировано?

Вы можете использовать метод Uri.EscapeUriString, чтобы избежать вашего имени компании, если вы создаете URI в коде .NET.

0

в SystemService есть функция «Компании». Здесь вы можете получить все определенные компании в системе Dynamics NAV.

Завернув их, вы можете позвонить по всем веб-сервисам для всех компаний.

Однако в Сервисах вы получите обзор всех опубликованных веб-сервисов. Большинство из этих работ для всех компаний (кроме системного сервиса)

В этом случае вы должны поместить экранированное фирменное имя как «папку» между WS и Codeunit или тегом Page.

Как таковой:

http://<Server>:<WebServicePort>/<ServerInstance>/WS/<CompanyName>/Page/<PublishedName> 

или

http://<Server>:<WebServicePort>/<ServerInstance>/WS/<CompanyName>/Codeunit/<PublishedName> 
2

В браузере вы должны быть в состоянии назвать:

http://<Server>:<WebServicePort>/<ServerInstance>/WS/<CompanyName>/Page/<ServiceName> 
  • Убедитесь, что SOAP & OData услуги включена для ServerInstance.
  • Убедитесь, что опубликован код или страница, и вы получили правильное опубликованное имя.
  • Также обратите внимание, что CompanyName, Страница, Codeunit и ServiceName чувствительны к регистру. Как указано в https://msdn.microsoft.com/en-us/library/dd355398
+0

Это не дает ответа на вопрос. Как только у вас будет достаточно [репутации] (http: // stackoverflow.com/help/whats-Reputation), вы сможете [прокомментировать любое сообщение] (http://stackoverflow.com/help/privileges/comment); вместо этого [предоставить ответы, которые не требуют разъяснений у аськи) (http://meta.stackexchange.com/questions/214173/why-do-need-50-reputation-to-comment-what-can- я-делать-вместо этого). - [Из обзора] (/ review/low-quality-posts/12783094) – MLavoie

+0

@MLavoie Спасибо, я улучшил свой ответ. – theschitz