Acumatica is easily customizable; however, there are some important factors to consider before you start making all those changes. When it comes to making certain changes that affect the logic behind the system, or user interface changes to the Acumatica Portal, there are several things to consider and keep in mind.
- The Acumatica portal has its own IIS website/virtual directory instance. This means that it contains a unique set of files that represent the portal.
- The portal shares the same Acumatica database as the Acumatica ERP. This includes the definition of customizations.
- The portal has some specific objects and DLLs that are not contained within the Acumatica ERP website.
- The source code is not readily available for the portal objects.
These specific items cause consideration to be taken when determining how to develop and deploy customizations for the portal. One of the first things that needs to be rectified is getting a vision/view of what the source code looks like. There are many tools available that will allow you to review the objects and “decompile” the objects into a readable form. I use ILSpy quite successfully. It is readily available and free.
I can see the source code – now what?
Once you have the source code, you can review it and determine where/how you would approach a customization – similar to how you would approach it within the Acumatica ERP itself.
There are some very interesting things contained in these objects, and it is worth looking around to understand some of the intricacies. One of the first things to notice is the existence of the SP.Objects classes. You will notice that some of these classes are extensions of standard Acumatica graphs and DACs.
If you end up making customizations to the SP.Objects classes or any others that are only in the Portal, you will only be able to publish those customizations in the portal. There is a distinction between loading/maintaining a customization and publishing it. Publication takes into account the other DLLs and files within the website being used to publish it. We have used the strategy of isolating three sets of customizations – (A) one for normal Acumatica customizations, (B) one for shared customizations, and (C) one for portal-specific customizations. All three could be loaded from within Acumatica but would be published as follows:
- Acumatica ERP – A and B
- Portal – B and C
In order to run the customization tools in the Acumatica Portal, there are several things that need to happen. These items could change based on a newer build of Acumatica. As of this writing, the techniques described worked in 2017R2 and 2018R1.
What you need
You must have a user/login that is associated with a baccount/customer and that has the Customizer/Administrator/Portal Admin roles in addition to any other portal roles needed. In order to assign these roles, you must enable them as Guest roles under the Role maintenance window. Then you can assign them to the User Type “Unrestricted External User.” Then, you can enable them on the user.
One other step that needs to be done in order to allow for customization capability is to run the following SQL statement in the Acumatica database related to the portal:
INSERT INTO PortalMap (CompanyID, Position, Title, Description, Url, Expanded, IsFolder, ScreenID, CompanyMask, NodeID, ParentID, CreatedByID, CreatedByScreenID, CreatedDateTime, LastModifiedByID, LastModifiedByScreenID, LastModifiedDateTime)SELECT CompanyID, Position, Title, Description, Url, Expanded, IsFolder, ScreenID, CompanyMask, NodeID, CASE WHEN ScreenID = ‘AU00000’ THEN ‘84351BC9-BF6C-48B5-9DEA-F8207283B64A’ ELSE ParentID END, CreatedByID, CreatedByScreenID, CreatedDateTime, LastModifiedByID, LastModifiedByScreenID, LastModifiedDateTime FROM SiteMap WHERE ScreenID = ‘AU000000’ AND CompanyID = 1
This will add the Project Explorer to the Portal Map so you can work on the customizations inside the portal. This may be a version-specific issue, but for now it is necessary, and investigation should be done to assure this is the appropriate statement for your environment.
Once this is done, you will be able to run the Customization tools in the portal to create/maintain and publish them.
Many of our customers also choose to have our in-house Acumatica developers help them to set up initial customizations and provide training and support. If you want to speak with one of our Acumatica experts, email us at firstname.lastname@example.org.