Acumatica Overview Demo

Hi Everyone, Just want to share with you super nice and professional demo from Acumatica team. In my opinion every partner should watch it and be able to show some parts of the system to prospect like here. Acumatica overview video on YouTube. Acumatica is leader in usability, and you can prove it with Nucleus Research ERP Value Matrix. But to make customers believe it and say WOW, you have to show it. Live demo of Acumatica is most important and impressive key sealing point where we have true advantage over other systems. Show live Acumatica, speed up your deals closing process. Thank you!

Reset User Password

Hi Everyone, In Acumatica all passwords are stored as a Hash, so even if you get database, you are not able to login with user password. But in case of trouble you can reset it to new one directly in the database. Just execute this query against the sql: UPDATE Users SET Password = ‘123’, LockedOutDate =null WHERE Username = ‘admin’ Don’t worry about clear text password – Acumatica will automatically calculate new hash on first login operation. LockedOutDate is field where system stores last unsuccessful login attempt date-time. So if your user is locked out you can use this statement to unlock it. Thank you!

Personalize Acumatica for Demo

Hi Everyone, Some times you want to impress your prospect with super nice demo. Of course you can do good investigation and nice presentation, but to be great you need to speak with customer on the same language. That means that you need to prepare customer specific data in your demo system. But also you can slightly customize Acumatica instance to show customer logo and icons. What else you can easily customize to show nice and familiar UI to customer: Customize login page images, Customize logo, Using different themes, Customize style and colors. Lets discuss all these stuff. Customize login page It is nice if customer will see their own logos and images… Read more

Custom Snapshots Configuration

Hi Everyone, As you know Acumatica supports Snapshot functionality to copy, migrate, backup and restore data between one or multiple instance of Acumatica. Using snapshots you even can migrate data between different database types (Cloud, Microsoft Sql Serve, MySql). You can get more about snapshots from this video – Acumatica Snapshot on YouTube When you creating snapshot, system will go through all database tables, select appropriate data and put it into separate tenant (with negative tenant id, which is actually linked to original tenant by id number). You can define what data will selected from the database, by defining Export mode: Snapshots is database level technology that knows nothing about business logic and… Read more

How to Generate a new DAC for Custom Table or View

Hi Everyone, In Acumatica 5.2 we have a very nice feature where you can generate a Data Access class from the table definition just from Customization Browser UI. To do this, go to the Customization Manager, open code section and create a new code file of type IBqlTable. If you specify a name of existing table, system will automatically load a definition for all fields from database. IBqlTable is required interface for all data access classes in Acumatica. System will use it as a flag to understand what name should be used for table during SQL generation. When you click OK, system will analyze table structure and generate new DAC with all fields and appropriate attributes.… Read more

Add a Custom Popup Panel

Hi Everyone, Today I want to share with you some practices how you can do iteration with user from Acumatica business logic code. In general: You can ask some simple question with strait forward answer, like: “Do you really want to delete this record? Yes/No” You can use redirection feature to redirect user to some hidden screen, where he will do some additional configuration and processing.You can hide screen by putting it into the hiden folder of Acumatica sitemap. When screen is hidden user can access it only with redirection from some other screen. But if you want to do more interactive dialog with user you may need use popup dialog with smart… Read more

First Chance Exception Log in Acumatica

Hi Everyone, Acumatica has very powerful feature to catch and logging all exceptions that that has been thrown inside the system and application code. You are able to activate it in the Application Settings section of web.config file. <add key=”EnableFirstChanceExceptionsLogging” value=”false” /> <add key=”FirstChanceExceptionsLogFileName” value=”firstchanceexceptions.log” /> If you do not change the file name, it will be available by this path: “<SiteFolder>App_Datafirstchanceexceptions.log” This log can help a lot if you get any error without stack trace, or when you getting any problem without any information in the UI. Also this log can be very useful for Acumatica support team. You need to understand that using this mechanism you will catch all exception… Read more

Context Scopes in Acumatica

Hi Everyone, During developing on Acumatica, you may face some restriction, from the platform side, for example: You can select data only according to current user rights – if user does not have access to branch, there is no way to get data related to another branch. There is restriction to read data just from current tenant, now way to get consolidated data by several tenants. You are not able to read deleted data. You can read data just within one connection to database. All these stuff and some more is configuration of the platform. To give you ability to control these behavior Acumatica has a set of internal classes “Scopes”. When… Read more

Union Selects in BQL

Hi Everyone, Sometimes you want to select and combine data from different tables in database. There is no standard way to do it in BQL, but we can go with several workarounds: Create a SQL server view. In this case you just create a view on SQL Server side with selecting, calculating and combining all data into one big select. After this you can create/generate a DAC that will be associated to the view. In the code you can easily use new data access class as you wish. System will always generate selects to SQL server view as it is normal table. Use data view delegate, where you can execute several selects to database. When you have received… Read more

Custom Images to Login Page

Hi Everyone, Do you want to customize login screen to see custom images that are related to your own company? No problem, just put it into the Images folder (C:Program Files (x86)Acumatica ERP<Your Site Name>Icons) with the specific name pattern (login_bg<Number>.jpg). Note that you can use many different images types, not only jpg. For example, dynamic .gif file can be super nice there. Check this link: Cinemagraph Have a nice setup.

Add Custom Field to Full-Text (Universal) Search

Hi Everyone, Sometime you need to do some customization to meet customer requirements. One of these requirements can be an additional field where they can store some references to other systems/documents. But when you have a reference you have to search it in the system. Here I will guide you, how to customize Acumatica to be able to search additional fields. The main thing that we have to customize here is PXSearchableAttribute, which always have to be defined on NoteID field (you know that NoteID is main and unique reference to any row in the Acumatica database). IF you can check the code of this attribute you can see: The main things here are first 4… Read more

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.