Acuminator Diagnostics Tips

Hello, everyone! This article starts a series of posts devoted to Acuminator. Acuminator is an extension for Visual Studio. It strives to achieve two goals – to check that Acumatica Framework is used correctly by means of static analysis and to ease work with Acumatica for developers. You can read more details about the project on GitHub. In this post I want to share with you a couple of useful tips about Acuminator diagnostics: The documentation and justification for every diagnostic can be found here. You can see diagnostics for all open files in Visual Studio’s Error List window. Every time you open or close code file the list with… Read more

Saving Entry from Custom Button

Hey! It’s a pretty common situation when you need to call the Save action from your button. You could use it in graph extension or directly in the base graph. We will use the extension as the example but the code almost the same for the pure graph. There are two requirements: A button should use the IEnumerable version of the method, not void. A method without the return brokes navigation after saving. A user could get blanked screen when saving a new document. A method should be decorated with PXButton attribute with CommitChanges = true property, otherwise, the Save button could stay in enabled status after saving. Not tested with CommitChanges in… Read more

How to Use Delta Synchronization with OData API

For various reporting, BI, or data warehousing scenarios you often need a way to export and synchronize data between an Acumatica instance and your solution. OData API is a good fit for read-only scenarios, and it is widely used by different ISV solutions and external BI services such as Power BI. But reading the whole entity set every time when you need fresh data is very resource-consuming, so the preferred way is to use delta sync. What Is Delta Synchronization Delta (Differential) sync is a type of synchronization technology that only synchronizes newly created or updated records. It drastically reduces the amount of data passed between an Acumatica instance and… Read more