Exposing Web Services in Dynamics NAV
Web services are a standardized way to communicate and exchange information between separate applications. This is a more secure and lightweight method of connecting applications as opposed to directly connecting to another application’s database. Microsoft began implementing web services into NAV over 10 years ago - allowing users to publish a variety of objects, also known as exposing web services in Microsoft Dynamics NAV. The most common use is code unit and pages. The blog will cover how to use and set up web services in Dynamics NAV
What can you do with NAV web services?
Common usage of NAV web services includes e-commerce integrations, WMS handheld applications, data gathering from IoT devices, and anything that will make it easier to securely transfer real-time data to and from NAV. For example, if your company uses special pricing and you would like your e-commerce website to reflect these prices in real-time without directly connecting to your NAV database, you can create a custom code unit in NAV, expose it via web services, and connect it to your e-commerce website.
How to Set Up Web Services in Dynamics NAV
In the example below, we are going to expose a custom code unit named ‘Web Services’. To help keep your exposed functionality organized, you should create a custom code unit that will store all your exposed functions.
Search in the top right corner 'Web Services'
Fill in the ‘Object Type’, ‘Object ID’ and ‘Service Name’ fields. When you are finished, check ‘Published’.
After you check the ‘Published’ box, you are ready to connect! The connection string will automatically generate. Take the string, in this example the SOAP URL, and integrate it into your outside application.
Click the global icon to view the WSDL. A WSDL is an XML format that describes the service connection.
Here we can see more detailed information about the functions available through the web service we just exposed. The service that I exposed contains a function named ‘GetCustomerSalesPrice’ that takes three string parameters; custNo, itemNo, and unitOfMeasure. The function returns a decimal value.
Web services are a great way to connect and securely exchange information between different applications. I hope this helps clear up what web services offers, how it can be utilized in NAV, and how to expose a web service. If you have questions or need help with web services, please reach out to Stoneridge Software.