{"id":917,"date":"2016-03-27T11:50:09","date_gmt":"2016-03-27T09:50:09","guid":{"rendered":"http:\/\/blog.systemconnect.dk\/?p=917"},"modified":"2017-05-26T12:52:46","modified_gmt":"2017-05-26T10:52:46","slug":"webservices-via-powershell","status":"publish","type":"post","link":"https:\/\/scblog.lynge.org\/?p=917","title":{"rendered":"Dynamics NAV WebServices i Powershell"},"content":{"rendered":"<p>Det kan nogle gange v\u00e6re rart at kunne checke om Dynamic NAVs ODATA og SOAP webservices svarer &#8211; blot for lige at sikre at der er hul igennem derfra hvor man sidder. Det kan hj\u00e6lpe fejlretning en hel del.<\/p>\n<p>Man kan som n\u00f8dl\u00f8sning \u00e5bne URL&#8217;erne i Internet Explorer, men den er ikke s\u00e5 glad for ODATA\u00a0og autorisationen kan ogs\u00e5 drille en hel del. Og er det fra en server kan Internet Explorer indstillingerne vanskeligg\u00f8re det. Men hvad g\u00f8r man s\u00e5?<\/p>\n<p>Det letteste er efter min mening at teste direkte i Powershell. Der kr\u00e6ves ikke installation af ekstra ting og man kan derfor let teste derfra hvor man har behov for det. Og efterh\u00e5nden er der jo ingen servere der ikke har Powershell installeret.<\/p>\n<p>&nbsp;<\/p>\n<p>S\u00e5dan tester du SOAP:<\/p>\n<pre>$mycreds = New-Object System.Management.Automation.PSCredential(\u201cNAVDemo1\u201d,(ConvertTo-SecureString \u201cNAVDemo1\u201d -AsPlainText -Force))\r\n$proxy = New-WebServiceProxy -Credential $mycreds -Uri \"https:\/\/navdemo.schost.dk:7051\/NAV90_PublicDemo\/WS\/CRONUS Danmark A\/S 1\/Page\/SalesOrder\"\r\n$response = $proxy.ReadMultiple($null,$null,10);\r\n$response | out-gridview<\/pre>\n<p>S\u00e5dan tester du ODATA:<\/p>\n<pre>$mycreds = New-Object System.Management.Automation.PSCredential(\u201cNAVDemo1\u201d,(ConvertTo-SecureString \u201cNAVDemo1\u201d -AsPlainText -Force))\r\n$oOdata = Invoke-RestMethod -Credential $mycreds -Uri \"https:\/\/navdemo.schost.dk:7052\/NAV90_PublicDemo\/ODATA\/Company('CRONUS%20Danmark%20A%2FS%201')\/SalesOrder?`$format=json\"\r\n$oOdata.value | out-gridview<\/pre>\n<p>Ovenst\u00e5ende eksempler tester hhv.\u00a0SOAP og ODATA\u00a0SalesOrder webservicen, som stilles gratis til r\u00e5dighed af SystemConnect, fra de live NAV testsystemer der er p\u00e5 hjemmesiden.<\/p>\n<p>Bem\u00e6rk at man kan v\u00e6lge mellem at f\u00e5 XML og JSON retur fra ODATA &#8211; i ovenst\u00e5ende benyttes\u00a0JSON for at PowerShell kan forst\u00e5 outputtet direkte.<\/p>\n<p>&nbsp;<\/p>\n<p>Lidt bonus-info om ODATA:<\/p>\n<ul>\n<li>Du kan angive sortering af datas\u00e6ttet direkte i URL&#8217;en med kommandoen $orderby<\/li>\n<li>Du kan afgr\u00e6nse sorteringen af datas\u00e6ttet direkte med kommandoen $filter<\/li>\n<li>Du kan lave direkte opslag af fx en ordre i ovenst\u00e5ende ved at tilf\u00f8je prim\u00e6rn\u00f8glen i parentes efter servicenavnet<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Se ogs\u00e5 f\u00f8lgende kilde:<\/p>\n<ul>\n<li>Filtrering i ODATA <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/hh169248(v=nav.90).aspx\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/msdn.microsoft.com\/en-us\/library\/hh169248(v=nav.90).aspx<\/a><\/li>\n<li>Flowfiltre i ODATA &#8211; ogs\u00e5 eksempel med\u00a0direkte opslag med prim\u00e6rn\u00f8gle: <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/hh166394(v=nav.90).aspx\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/msdn.microsoft.com\/en-us\/library\/hh166394(v=nav.90).aspx<\/a><\/li>\n<li>Sortering mv. i ODATA: <a href=\"http:\/\/docs.oasis-open.org\/odata\/odata\/v4.0\/errata02\/os\/complete\/part1-protocol\/odata-v4.0-errata02-os-part1-protocol-complete.html#_Toc406398305\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/docs.oasis-open.org\/odata\/odata\/v4.0\/errata02\/os\/complete\/part1-protocol\/odata-v4.0-errata02-os-part1-protocol-complete.html#_Toc406398305<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Det kan nogle gange v\u00e6re rart at kunne checke om Dynamic NAVs ODATA og SOAP webservices svarer &#8211; blot for lige at sikre at der er hul igennem derfra hvor man sidder. Det kan hj\u00e6lpe fejlretning en hel del. Man &hellip; <a href=\"https:\/\/scblog.lynge.org\/?p=917\">L\u00e6s resten <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[40,41,38,32,35,36],"tags":[15,43,11,54,52,26,23,14,42,44,31,57,62,56,55],"class_list":["post-917","post","type-post","status-publish","format-standard","hentry","category-c5-support","category-c5-teknik","category-dynamics-c5","category-dynamics-nav","category-nav-support","category-nav-teknik","tag-business-solutions","tag-c5","tag-dynamics","tag-dynamics-c5","tag-dynamics-nav","tag-gratis","tag-hint","tag-microsoft","tag-nav","tag-navigator","tag-navision","tag-odata","tag-powershell","tag-soap","tag-webservice"],"_links":{"self":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/917","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=917"}],"version-history":[{"count":6,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/917\/revisions"}],"predecessor-version":[{"id":1121,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/917\/revisions\/1121"}],"wp:attachment":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=917"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=917"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=917"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}