Dynamics NAV WebServices i Powershell

Det kan nogle gange være rart at kunne checke om Dynamic NAVs ODATA og SOAP webservices svarer – blot for lige at sikre at der er hul igennem derfra hvor man sidder. Det kan hjælpe fejlretning en hel del.

Man kan som nødløsning åbne URL’erne i Internet Explorer, men den er ikke så glad for ODATA og autorisationen kan også drille en hel del. Og er det fra en server kan Internet Explorer indstillingerne vanskeliggøre det. Men hvad gør man så?

Det letteste er efter min mening at teste direkte i Powershell. Der kræves ikke installation af ekstra ting og man kan derfor let teste derfra hvor man har behov for det. Og efterhånden er der jo ingen servere der ikke har Powershell installeret.

 

Sådan tester du SOAP:

$mycreds = New-Object System.Management.Automation.PSCredential(“NAVDemo1”,(ConvertTo-SecureString “NAVDemo1” -AsPlainText -Force))
$proxy = New-WebServiceProxy -Credential $mycreds -Uri "https://navdemo.schost.dk:7051/NAV90_PublicDemo/WS/CRONUS Danmark A/S 1/Page/SalesOrder"
$response = $proxy.ReadMultiple($null,$null,10);
$response | out-gridview

Sådan tester du ODATA:

$mycreds = New-Object System.Management.Automation.PSCredential(“NAVDemo1”,(ConvertTo-SecureString “NAVDemo1” -AsPlainText -Force))
$oOdata = Invoke-RestMethod -Credential $mycreds -Uri "https://navdemo.schost.dk:7052/NAV90_PublicDemo/ODATA/Company('CRONUS%20Danmark%20A%2FS%201')/SalesOrder?`$format=json"
$oOdata.value | out-gridview

Ovenstående eksempler tester hhv. SOAP og ODATA SalesOrder webservicen, som stilles gratis til rådighed af SystemConnect, fra de live NAV testsystemer der er på hjemmesiden.

Bemærk at man kan vælge mellem at få XML og JSON retur fra ODATA – i ovenstående benyttes JSON for at PowerShell kan forstå outputtet direkte.

 

Lidt bonus-info om ODATA:

  • Du kan angive sortering af datasættet direkte i URL’en med kommandoen $orderby
  • Du kan afgrænse sorteringen af datasættet direkte med kommandoen $filter
  • Du kan lave direkte opslag af fx en ordre i ovenstående ved at tilføje primærnøglen i parentes efter servicenavnet

 

Se også følgende kilde:

 

 

Skriv et svar