Calling External Web Services
In Microsoft Dynamics NAV, you can use the Windows Communication Foundation, which provides a set of reliable objects for calling web services to use with .NET Framework interoperability.
Example
The following code example uses a proxy web service class and calls a Read
method from the Microsoft Dynamics NAV web service. To set up this example, you expose page 42 as a web service in the Web Service table and then generate and compile the proxy class. For more information, see Working with Web Services in the MSDN Library.
The example requires the following variables.
Variable name | DataType | SubType | Length |
---|---|---|---|
navBinding |
DotNet |
'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.ServiceModel.BasicHttpBinding |
|
address |
text |
256 |
|
salesOrderService |
DotNet |
'SalesOrderService, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.NAV.SalesOrderService.SalesOrder_PortClient |
|
endpointAddress |
DotNet |
'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.System.ServiceModel.EndpointAddress |
|
salesOrder |
DotNet |
'SalesOrderService, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.NAV.SalesOrderService.SalesOrder |
navBinding := navBinding.BasicHttpBinding;
// Set security mode to BasicHttpSecurityMode.TransportCredentialOnly
navBinding.Security.Mode := 4;
address :=
'https://localhost:7047/DynamicsNAV70/WS/CRONUS%20International%20Ltd./Page/SalesOrder';
// Set client credential type to HttpClientCredentialType.Windows
navBinding.Security.Transport.ClientCredentialType := 4;
salesOrderService := salesOrderService.SalesOrder_PortClient(navBinding,
endpointAddress.EndpointAddress(address);
// Set impersonation level to System.Security.Principal.TokenImpersonationLevel.Delegation
salesOrderService.ClientCredentials.Windows.AllowedImpersonationLevel := 4;
// Include the sales order ID to be read.
salesOrder := salesOrderService.Read('10000');