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

Some Samples of Existing Integrations

Hi All, In the modern Multi-Cloud world single software almost cannot survive alone. And for ERP it became even more complicated as ERP is a core of the company and need to get data from all the parties. Just recently I tried to check  how many Integrations with already have in Acumatica out-of-the-box or as open source customization and I was really surprised! Hope you also will find it interesting for you. Microsoft Exchange Server Integration – Acumatica can dynamically sync Contacts, Tasks, Emails and Events. That is available as additional feature Microsoft Outlook Plugin – Using plugin you can easily tag your emails with Opportunities and Cases in Acumatica… Read more

Optimizing Large Import

Hi All Want to share with you some good approaches to Import a large amount of data. If you ever tried to import some large set of data from Excel you actually know that it is not as fast as importing data into the SQL table. There are plenty of reasons why it is like this: Data validation Defaulting empty field Running of business logic Data integrity Updating of referenced data Security tracking Audit Of course all these rules have different effects in different modules. It is obvious that GL is much faster than SO Orders. At the same time, AR is faster than SO, but slower than GL. Also… Read more

Acumatica and Microsoft Flow

Hi Everyone, Recently Microsoft has added a new tool to their Office 365- Microsoft Flow With help of my college – Tim Rodman, we have done some investigations on how it can be used with Acumatica. I think that in modern internet of services and things services like Microsoft Flow, Azuqua and Zappier might be very useful. Microsoft flow is most modern here so it does not looks like very mature and stable now. But i belive it is quite promising as Microsoft has enough resources to integrate it with most of Office 365 services. Looking forward to see that progress. However even now it has some nice things, like… Read more

Acumatica REST API

HI All, With Acumatica 6 release you can find (and actually use) new type of API – Rest API. Acumatica Rest API is based on Contract based API, so here you have some important points: You need to use existing or custom endpoint be able to send API calls Field and container is available for REST API only if it is defined in contract. But you may extend existing contracts. With REST API you have the same set of commands that you have with Contract Based API. Acumatica uses Json format for transfer data between client and server You still have to maintain session and authentication cookies. URL: http://<InstanceName>/entity/<EndpointName>/<EndpointVersion>/<Entity> Example:… Read more

Custom Integration Services Data Provider

Hi All, Today I want to share with you one way how you can extend Acumatica data export/import providers or add a new one to integrate with new system. To accomplish this task you need some development skills as creation of new provider require some code writing. But you can write this code with any possible way: Visual Studio Acumatica Customization browser Notepad or any compatible application To create a new provider you need create new class that will implement a IPXSYProvider interface: public interface IPXSYProvider {        string ProviderName { get; }        string DefaultFileExtension { get; }        //Parameters        PXSYParameter[] GetParameters();        void SetParameters(PXSYParameter[] parameters);        PXStringState[] GetParametersDefenition(); … Read more

Extending Contract-Based API Default Endpoint

Hi All! Today, I want to speak with you about Contract-Based Web Services API share with you new cool thing that is available in Acumatica 6 – Extensions of Contracts. Using this feature you can reuse of all benefits of default endpoint that Acumatica provides you out of the box and just extend it with adding couple of fields. OK, let me show you one simple example with 2 changes: Adding one more entity to default endpoint. In my case it will be Country screen. Country is a standard table but the same way you can add all custom screens as well. Adding one more column to Journal Transactions grid.… Read more

Read Excel File In Acumatica

Hi All, Today want to share with you the easiest way to read Excel or CSV file in Acumatica. Acumatica core (PX.Data.dll) contains 2 classes that may help you with reading some files: PX.Data.XLSXReader – can read Excel file row by row, PX.Data.CSVReader – can read any CSV file row by row. In my example today we will read transactions from excel file and import it to some table. Code snippet: View the code on Gist. Just notice here several important things Do not forget to close reader by calling Dispose method Excel or CSV files may contains first row with headers – you need to skip it manually. You… Read more

Contract-Based Web Services API

Hi Everyone. Today I want to speak with you about new Contract-Based Web Services API that you can use in Acumatica 5.3 version. The main differences between previous Screen-Based API and new AP: Previously you had to use names of fields and actions right from Acumatica UI. And if we rename or move field your code will stop working. Now new API has an intermediate layer between Acumatica UI and the integration code, so can be sure that most of minor changes in Acumatica code will not break existing integration. New API is easier to use. You need less lines to complete the same task. Also it is more intuitive, so… Read more