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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.01.2016, 17:39   #1  
Romul is offline
Romul
Участник
 
186 / 11 (1) +
Регистрация: 26.12.2007
Какая версия нав? Почему не используете DotNet Interop, вместо Automation?

1. Создаете Text строку SoapEnvelope (2015 поддерживает безлимитный текст). В эту строку пихаете ваш XML.

2. Пишете функцию "открытия" веб-реквеста:

LOCAL OpenHttpWebRequest(Url : Text[250];Soap : Boolean;VAR httpWebRequest : DotNet "System.Net.HttpWebRequest")
uri := uri.Uri(Url);
httpWebRequest := httpWebRequest.CreateDefault(uri);
httpWebRequest.Method := 'POST';
httpWebRequest.Credentials := credential.DefaultNetworkCredentials;
IF Soap THEN
httpWebRequest.ContentType := 'application/soap+xml'
ELSE
httpWebRequest.ContentType := 'text/xml';

3. Далее делаете это:

OpenHttpWebRequest(HTTP_адрес_сервиса,TRUE,httpWebRequest);
streamWriter := streamWriter.StreamWriter(httpWebRequest.GetRequestStream);
streamWriter.Write(SoapEnvelope);
streamWriter.Close;
CloseHttpWebRequest(httpWebRequest);

4. Функция закрытия CloseHttpWebRequest:

httpWebResponse := httpWebRequest.GetResponse;
IF httpWebResponse.StatusDescription <> 'OK' THEN
ERROR(Text100,httpWebResponse.StatusDescription);

5. Типы переменных:
httpWebResponse DotNet System.Net.HttpWebResponse.'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
httpWebRequest DotNet System.Net.HttpWebRequest.'System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
streamWriter DotNet System.IO.StreamWriter.'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
uri DotNet System.Uri.'System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
Старый 29.01.2016, 09:50   #2  
poul_and is offline
poul_and
Участник
 
56 / 12 (1) ++
Регистрация: 08.04.2003
Цитата:
Сообщение от Orwell Посмотреть сообщение
Какая версия нав? Почему не используете DotNet Interop, вместо Automation?
Версия 2009 Classic, когда попробовал подобный пример - получил ошибку вроде "нельзя использовать DotNet Interop в C/AL коде"
Старый 29.01.2016, 17:02   #3  
Romul is offline
Romul
Участник
 
186 / 11 (1) +
Регистрация: 26.12.2007
Цитата:
Сообщение от poul_and Посмотреть сообщение
Цитата:
Сообщение от Orwell Посмотреть сообщение
Какая версия нав? Почему не используете DotNet Interop, вместо Automation?
Версия 2009 Classic, когда попробовал подобный пример - получил ошибку вроде "нельзя использовать DotNet Interop в C/AL коде"
Тогда да, без вариантов - только Automation.
Посмотрите код, что я скинул, и скоррелируйте его на свои Automation объекты.
 


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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:03.