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

Working with Generic Inquiries from Code

Generic Inquiries is a powerful tool to build ‘no code customizations’ for Acumatica ERP. However, it is also a tool that may be used in code too. In this article I show couple of examples of working with Generic Inquiries from code. Redirect to a Generic Inquiry You can redirect user to a Generic Inquiry from code almost the same way you redirect user to any other screen. To do that, you throw special PXRedirectToGIREquiredException. This exception has several overloads with different arguments. The simplest one requires only one argument – name of a Generic Inquiry (the one you see in Inquiry Title field on Generic Inquiry Design screen). See… Read more

Generic Inquiry Tips & Tricks

Hi everyone! As you may know, a lot of things (such as OData, Push Notifications, Dashboards) in Acumatica are based on Generic Inquiries. In this post I’d like to share some tips and trick related to building GIs I found useful. I hope you’ll find them useful too. Join conditions containing multiple tables. Probably, the most unintuitive trick that you can do is adding join conditions based on fields that are not in the list of Parent Fields or Child Fields. Actually, you can use every field from every table to build join conditions in GI just like you do in SQL. You are not restricted by just Parent fields… Read more

Generic Inquiry with Filtering by Current Branch

Hi All, Want to show you an option how can you filter documents in Generic Inquiry by currently selected branch. In reports you have an option to use AccessInfo.BranchID, but in generic inquiries unfortunately such option is not available. You also can’t join this table as AccessInfor is virtual table that does not exist in database. However there is a workaround – we create a parameter in GI, that will get a default value from any branch field in Acumatica that has a default value from current branch and than use this filter for filtering. Let me guide you: We need to create a parameter that will store a current… Read more

Monitor Online Users

Hi All, Web technologies work the way where server know almost nothing about where is browser and what is user doing there. Is it active? Is it closed? It is online? Is computer sleeping? We don’t know if there browser does not inform us. Just for example – if you lost internet connection, should we treat this as online or inactive? In Acumatica Online/Offline is just a flag in users table. If users logs in, Acumatica rises this flag, if users is not active for some time, Acumatica clears this flag. This flag is automatically managed by Acumatica but in some cases it may be not in the consistency with… Read more

Restrict Data Accessibility using Generic Inquries

Hi Everyone, In this article I want share with you one more idea of how can you use Acumatica Generic Inquires. Generic Inquires in Acumatica is key part of reporting and have plenty of usage examples: Notifications Using GI Environment Related Parameters Integration with OData Consolidation Reports And many others. Today I would like to add here scenario with restricting access right to data based on custom filtering conditions in the Generic Inquiry. Lets assume we have two departments who is using opportunities for Products and Services. But we would like to disallow them see opportunities of each other. Acumatica does not have data level security for opportunities, so we… Read more

Consolidation Reports using Pivot Tables

Hi Everyone, You most probably know that if you need to prepare consolidated reports in Acumatica you should check ARM Reports (Analytical Reports Management) However there is one more option available with last release of Acumatica Create a Generic Inquiry that extracts Account/Subaccount balances for specific period from GL. Here I have a separate article that describes way to extract GL data. Dynamic pivot table that will split data by ledgers as columns and Accounts/Subaccounts as rows. The difference here from my previous post is that here we should change GI to return much more data – for all accounts/subaccounts, multiple ledgers and periods. We need provide more data specially for… Read more