Priority-Based Throttling in Microsoft Dynamics 365 Finance and Operations (F&O, SCM) is almost mandatory! If your solution or integration architecture included the transaction orchestration being done outside of F&O (multiple OData calls within a transaction; rollback means making more OData calls), one of the things you can do to adjust it is to create a custom web service in F&O, which would handle an entire transaction.
It is easy to develop a custom web service in F&O by creating the following objects:
- Class with public method
- Service
- Service Group
- Security Privilege
- Contract classes, as needed
- SysTest (ATL) class(es), as much as desire allows
![](https://i0.wp.com/calafell.me/wp-content/uploads/2021/06/aot-objects-for-dynamics-365-operations-web-service.jpg?w=843&ssl=1)
When you want to have a list of objects, you create a DataContract class and return it as a list (see line 22 below).
![](https://i0.wp.com/calafell.me/wp-content/uploads/2021/06/return-a-list-from-web-service-dynamics-365-finance-operations-data-contract.jpg?w=843&ssl=1)
Ugh, what are these unnecessary $id fields?
![](https://i0.wp.com/calafell.me/wp-content/uploads/2021/06/id-fields-in-return-value-odata.jpg?w=843&ssl=1)
Rid yourself of this unnecessary data and bandwidth hog- Use the following decorator on your contract classes to remove those (as seen in above screen shot).
[Newtonsoft.Json.JsonObjectAttribute(IsReference = false)]
![](https://i0.wp.com/calafell.me/wp-content/uploads/2021/06/id-fields-removed-from-return-value-odata.jpg?w=843&ssl=1)