Branches, Companies and Tenants

Hi Everyone, All business are unique and diverse, so some times you may need to implement customer who has set of separate legal entities (companies). Companies may have diff erent uses, accounts, currencies and so on, but you still want to build a consolidate reporting. What Acumatica can offer here? For a number of legal entities, you can set up Acumatica ERP in one of two ways, depending on the business requirements of the companies: Tenants (aka Companies) – an independent tenant for each company Branches – one tenant for all companies and configure a set of branches for each company. Branches vs Tenants overview: Tenants Branches Listed on the login page Selected within a tenant… Read more

How to add new Functionality for Acumatica

Hi Everyone, Acumatica is great product and it has a lot of build-in features to cover huge amount of different requirements  But you know that all businesses are unique and some times requires some additional stuff that is not a part of standard product. Well, Acumatica is fully customizable product, so you can easily change any build-in logic according to your specific business processes. But how to do this better? Do you need to develop it by you own? Ask Acumatica for support or for standard feature? Do you remember this picture? It absolute truth for this process too. Lets discuss your options. Cheap-Fast As Acumatica has powerful customization manager and nice customization trainings, it is good choose to do your own development: Acumatica has powerful Customization Engine… Read more

Analyze Running Queries on Database

Hi Everyone. If you face database performance issues, you might need some way to get running queries from there. SQL profiler is good, but some times you do not have it or you don’t have access to it. But if you can run SQL queries, you can use this script. It will show you immediate snapshot of all running queries. Script: View the code on Gist. If you are searching for statistical information you can use that query. This one will show you to 30 heaviest queries on the sever. Script: View the code on Gist. Have a nice development!

Analyse Size of Acumatica Database

Hi Everyone, Sometimes, when you have big Acumatica database, you might want to know how much space does it taken by what table. This script can help you: View the code on Gist. The result of this script on my demo database is here: You can see that I have highlighted some tables that contains a lot of data. Actually some of them does not contains important information. Let me point you on some tables that you can archive and clear if you aware about space. This can be helpful if you use cloud hosting and the size of database is not cheep. Logs Tables LoginTrace – all login, logout, screen opening, session expired,… Read more

Company Mask for Data Sharing Between Tenats in Acumatica

Hi All, CompanyMask – is a special column that stores binary mask that defines where this record should be visible and where you can update this record. Acumatica stores data in database separated by different tenants. All tenants are isolated, but you have some options how you can share data between them. To do it, your database and table should meet some conditions: Your table should have CompanyID and CompanyMask columns. Without CompanyMask data will be completely separated with no way to read it from other tenant from code. CompanyMask should be configured to allow other tenants select and update this record. Mask contains two flags for all companies. First… Read more

System Columns in Acumatica Database

Hi All, Acumatica has some special database columns, like CompanyID, Branch, NoteID  and so on. Here I will describe what types of special columns you may expect in Acumatica database and when do you need to use them. All these field are optional and does not required to be in all tables. In this article you will find Description of: CompanyID CompanyMask DeletedDatabaseRecord BranchID Tstamp NoteID GroupMask And other Audit Fields: Created/LastModifiedByID Created/LastModifiedDatetime Created/LastModifiedByScreenID Welcome in the article if you need more details. CompanyID  CompanyID – this is main tenant id field. Acumatica is multi-tenant application and this is done by splitting all data using Company ID column. Each row has own… Read more

Customize Email Processing in Acumatica

Hi Everyone, You know that Acumatica CRM has ability to process incoming mails, create cases or leads, attach messages to existing contacts and so on. Lets discuss how doe it wars and is there any ability to customize it. First of all, to enable mail processing you should activate and configure it for your email account on “Email Accounts” screen When you have activated incoming mail processing system will automatically process all incoming emails. There are about 14 steps of processing (do wee need to create a case? do we need to attach email somewhere? do we need to route email? … and so on) Some processing steps can cancel… Read more

How to Customize Selector in Acumatica

Hi Everyone, Sometimes you want to add additional selector column to the screen, but this process not always is super strait forward. I will try to guide you step by step, how to add additional address line column to location selector on Sales Orders Screen. First of all lets create a new customization try to analyse this selector control. If you select this field and check attributes, that you can can see that there is no selector attribute, but we have strange LocationIDAttribute. Actually selector is there, but it is hidden by LocationIDAttribute. Sometimes to accumulate some logic in one attribute, Acumatica developers uses special types attributes – PXAccumulatorAttribute. This attribute has a collection of other attributes inside. During runtime,… Read more

Script to Select Audit Data from Database

Hi Everyone Have you seen this when you select data from Audit table in Acumatica? Acumatica stores all audit in one table Audit History. Keys and Changed fields are saved to database in combined mode. Data is concatenated with symbol , thats why you are not able to read this fields with just normal SQL server management studio. To resolve it, you can replace special symbol just with normal colon. Use this script: View the code on Gist.