Opinion on Api strategy
We are moving from nav to bc. Our solution is heavily integrated to other solutions. One of the challenges is that all our integration is build on soap. But this will be deprecated in bc. After looking at standard ui pages, custom ui pages and odatav4, I found that these 3 technologies have limitations and issues.
Odatav4 in bc does not support deep inserts. Therefore, multiple operations have to be done using $batch calls. And there is a limit of 100 operations per batch.
As for custom ui pages, it does support deep inserts, but it has a bug where duplicate inserts can happen.
As for standard ui pages, it did not have the duplicate insert issue in custom ui pages, but standard ui pages cannot be extended.
In all these respect, cannot help but feel that soap is better.
Comments
-
You can also publish a codeunit as a webservice and call a function in it. This function can accept a text parameter and also a return-value. That text can contain anything you want (CSV-file(!), XML, JSON, YAML, …..) and you can handle it how you want but you do need to develop it. It is even possible to change the text parameter to an XML port.
Regards,Alain Krikilion
No PM,please use the forum. || May the <SOLVED>-attribute be in your title!0 -
We still have SOAP services, it's not deprecated. It's all about which route you want to go through. API pages are vey much easier to handle with JSON in picture. With the help of Bound actions you can trigger a piece of code as well like SOAP we normally use.
https://rockwithnav.wordpress.com/2025/10/14/bound-action-business-central-api/
Thanks
Blog - rockwithnav.wordpress.com/
Twitter - https://twitter.com/RockwithNav
Facebook - https://facebook.com/rockwithnav/0 -
I have been testing this. In my opinion, when SOAP is deprecated, the way to go is still webservices with odatav4. APIPages is still broken. A lot of BC validation code is written with UI pages in mind not API pages.
This is especially true because API pages only support:
DelayedInsert = true;
This property broke a lot of BC standard validation logic.
0 -
krikiMember, Moderator Posts:9,1272025-10-16You can also publish a codeunit as a webservice and call a function in it. This function can accept a text parameter and also a return-value. That text can contain anything you want (CSV-file(!), XML, JSON, YAML, …..) and you can handle it how you want but you do need to develop it. It is even possible to change the text parameter to an XML port.Yes. We can do this. But, the benefit of using a webservice or uipage is because it is "self documenting" with $metadata. That method that you described will be a last resort when all else fails.
0
Categories
- All Categories
- 73 General
- 73 Announcements
- 66.7K Microsoft Dynamics NAV
- 18.7K NAV Three Tier
- 38.4K NAV/Navision Classic Client
- 3.6K Navision Attain
- 2.4K Navision Financials
- 116 Navision DOS
- 851 Navision e-Commerce
- 1K NAV Tips & Tricks
- 772 NAV Dutch speaking only
- 617 NAV Courses, Exams & Certification
- 2K Microsoft Dynamics-Other
- 1.5K Dynamics AX
- 326 Dynamics CRM
- 111 Dynamics GP
- 10 Dynamics SL
- 1.5K Other
- 990 SQL General
- 383 SQL Performance
- 34 SQL Tips & Tricks
- 35 Design Patterns (General & Best Practices)
- 1 Architectural Patterns
- 10 Design Patterns
- 5 Implementation Patterns
- 53 3rd Party Products, Services & Events
- 1.6K General
- 1.1K General Chat
- 1.6K Website
- 83 Testing
- 1.2K Download section
- 23 How Tos section
- 252 Feedback
- 12 NAV TechDays 2013 Sessions
- 13 NAV TechDays 2012 Sessions
