0

Мне нужно построить интерфейс между Dynamics NAV 2013 и Groupon API V2 Мне кажется, что данные API Groupons поступают в формате json - как я могу получить эту информацию в Dynamics NAV (например, заказы) ? Должен ли я использовать веб-службы?Dynamics Nav exchange with Groupon

Благодаря

EDIT: Я много работал на этом и получил прием данных от Groupon рабочего Проблема заключается в передачи информации: У меня есть проблема, чтобы отправить пост запрос с параметрами - это мой код:

WebServiceURL := 'https://...'; 
Request := Request.Create(WebServiceURL); 
Request.Method := 'POST'; 
Request.KeepAlive := TRUE; 
Request.Timeout := 30000; 
Request.Accept('application/json'); 
Request.ContentType('multipart/form-data'); 
postString := 'param1=123&param2=456'; 
Request.ContentLength := STRLEN(postString); 
StreamWriter := StreamWriter.StreamWriter(Request.GetRequestStream); 
StreamWriter.Write(postString); 
StreamWriter.Close; 

Я получаю ошибку 500, так что я ничего о том, почему его отклонил не знаю, но если есть что-то, что кажется неправильным для вас, пожалуйста, помогите!

ответ

1

наиболее СЧ frienly способа получить заказ в формате XML с API и импортировать XMLs используя объекты XMLport или Codeunits (использование DotNet)

Приветствие

1
  1. Вам не нужно Nav Интернет потому что в этом случае вы являетесь (Nav) клиентской стороной, когда веб-сервисы должны строить серверную сторону. Например. вы можете вызвать веб-сервис, но веб-сервис не может ничего называть. Скорее всего, вы будете использовать NAS для выполнения задач периодически.
  2. AFAIK Nav не может обрабатывать JSON, но в Nav2013 можно использовать библиотеки .Net, так что просто выберите JSON library вам нравится и call это от Nav для обработки ответов от API.
  3. Для выполнения вызовов (запросов) к API вы можете использовать .net или библиотеку com по вашему выбору так же, как и для JSON.

     
    ReqXML : Automation 'Microsoft XML, v6.0'.DOMDocument60 
    RespXML: Automation 'Microsoft XML, v6.0'.DOMDocument60 
    Req : Automation 'Microsoft XML, v6.0'.XMLHTTP60 
    
    CREATE(Req, TRUE); 
    Req.open(reqType, Uri, FALSE); 
    Req.setRequestHeader('contentType', 'text/xml; charset=UTF-16'); 
    
    CASE reqType OF 
    'GET': Req.send(); 
    'POST': Req.send(ReqXML); 
    END; 
    RespText := Req.statusText; 
    IF Req.status <> 200 THEN EXIT(FALSE); 
    
    IF ISCLEAR(RespXML) THEN CREATE(RespXML, TRUE); 
    RespXML.load(Req.responseXML);

В этом примере запрос на адрес, сохраненный в Uri производится. Если вам нужно опубликовать некоторые данные, кроме параметров URL, вы помещаете их в ReqXML. Если API должен что-то вернуть, он будет внутри RespXML.

Этот код работает для более старых версий Nav. Вам придется немного переписать его на использование библиотек .Net (например, webclient) и, возможно, избавиться от XML (в моем случае API был основан на XML), но структура будет практически такой же.

+0

ОК Да, я видел, что с nav2013 я могу использовать .net librairies: http://msdynamicsnav.guru/wp/gunnar/json-meets-nav/00749/ Я постараюсь понять, как я могу это использовать –

+0

Да, я думаю, используя NAS для автоматизации обмена - мне просто интересно, как я должен просить запрос в groupon, а затем как получить результат запроса –

+0

У меня нет Nav 2013 здесь, чтобы предоставить пример .net, но опубликовал старый добрый пример автоматизации. Я думаю, что он будет работать даже в Nav 2013. Или вы можете переписать его. –

Смежные вопросы