0

我需要在Dynamics NAV 2013和Groupon API V2之間建立一個接口在我看來,Groupons API數據以json格式提供 - 我如何能夠在Dynamics NAV中獲得此信息(例如, ? 我應該使用webservices嗎?Dynamics Group Nav與Groupon交換

感謝

編輯: 我曾在這個有很多,並得到了來自Groupon的工作 問題接收數據是發送信息: 我要送一個帶參數的POST請求的問題 - 這是我的代碼:

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

最NAV frienly辦法是讓從API的XML格式的命令,並使用XMLports或CODEUNITS導入個XML(使用DOTNET的)

乾杯

1
  1. 你不需要導航網服務,因爲在這種情況下,當Web服務構建服務器端時,您是(Nav)客戶端。例如。你可以調用Web服務,但Web服務不能調用任何東西。很可能您會使用NAS來定期執行任務。
  2. AFAIK Nav無法處理JSON,但是在Nav2013中可以使用.Net庫,因此只需選擇JSON library即可,並從Nav導入call以處理來自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示例,但張貼好舊自動化例子。我認爲即使在2013年導航中它也可以工作。或者你可以重寫它。 –