Remove base Attribute with Customization

Hi All In my previous article “Append and Replace of DACs Attributes” I have described how can you replace append attributed in DAC with customization. Today I would like to add one more useful attribute – PXRemoveBaseAttribute. This one can help you to just remove one specific attribute from base field and replace it with new one if needed. [PXDBString(32)] [PXDBDefault(“Test”)] [PXUIField(DisplayName = “Test” )] public String Field { get; set; } Example 1: public Extension : PXCacheExtension<DAC> {     [PXRemoveBaseAttribute(typeof(PXDefaulAttribute))]     public String Field { get; set; } } Example 2: public Extension : PXCacheExtension<DAC> {     [PXRemoveBaseAttribute(typeof(PXDefaulAttribute))]     [PXDBDefault(“New String”)]     public String Field… Read more

Rates per Day in the Report

Hi All, Today I would like to share you my experience in building report that needs to translate currency rate on the fly. The main challenge in this task as you may not have rates for every day. So that mean if your document is for 20th of Jan but there is no rate for that date, you need to find the latest available from list of the rates. Unfortunately this task is solvable just with standard Joins and standard DACs as we need to have little bit more tricky logic. So to fix that I have created an SQL view that can find last available rate for the particular… Read more

Move Customization project to Source Control/Another Server

Hi There, When you are doing customization it is usually much faster and easier to start it using Acumatica Customization Browser and even create an extension library from there. But later, you might need to move customization somewhere: to source control folder to another production/testing/development server to use Acumatica ERP instead of framework. In this article I want to show you how to link all the things together if you move it. Customization usually consists of 2 things: Customization package – just a zip file that contains all the changes that should be applied during customization publication. Sources of extension library – that is something that should be kept outside… Read more

Difference between Acumatica ERP and Framework

Hi All, Previously I had quite a lot of questions about how to integrate development done on Acumatica Framework with Acumatica ERP. Usually them main reason of that question is misunderstanding of what is Acumatica Framework. Acumatica Framework (what you can download as separate installer from portal) is designed to develop product that is completely separated from Acumatica ERP. That is why there are less functions and no code integration with ERP. In case you are see benefits of using functions form Acumatica ERP (like segmented keys, numbering, accounts, subaccounts, customers/vendors, inventory items), it would be much better to start development on Acumatica ERP itself from the beginning, and do… Read more

DACs Inheritance and Caches

Hi All Want to speak today about DACs inheritance in Acumatica and some issues that it cause to development. As you know C#/.NET as OOP-oriented framework support inheritance of objects, but when in comes SQL and Database structure than there is no inheritance between tables. As a bonus I will explain why we need BAccount and BAccount2 DACs and what is the difference. Inheritance In Acumatica we want to leverage benefits of OOP to simplify references between objects, minimize database size required, ease of reporting and so on. As a result of that we have designed system in such way to support it: You can have parent DAC public class BAccount : IBqlTable { …… Read more