Archives

Archives / 2014 / August
  • Rename column at screen in Acumatica

    Hello everybody,

    today I want to share answer at simple question how to change the caption at some screen. 

    For example you want to change caption at screen AR202000 for Inventory ID to caption INVENTORY ID.

    For this purpose we need to understand which DAC is responsible for Grid. For this puprose we can open page AR202000.

    There we can see the following line:

    <px:PXDataSource ID="ds" runat="server" Visible="True" Width="100%" PrimaryView="Filter" TypeName="PX.Objects.AR.ARSalesPriceMaint">

    So it means that for Graph or controller we will check ARSalesPriceMaint.

    For field inventory id responsible code 

    <px:PXSegmentMask ID="edInventoryID" runat="server" DataField="InventoryID" … more

  • FieldUpdated behaviour

    Hello everybody,

    today  I want to share one interesting feature of Acumatica. 

    I revelaed that after inserting of new row executes FieldUpdated even if feld wasn't updated. After reading documentation I found that it is gotcha and inteded to be so. more

  • Acumatica and ObjectsEqual lack of parameters

    Hello everybody,

    today I want to share how I deal with ObjectsEqual limitation. In one of my tasks I had requirement to check for equality more then eight parameters and found that ObjectsEqual takes only 8 parameters. But I needed more. 

    In order to fix it I decided to use extension classes of C# which allows inject into existing class new functionality.

    Here is the way how I did it:

    public static class PXCacheExtensions

    {

    public static bool ObjectsEqualExt(this PXCache cache, object a, object b, params IBqlField[] values)

    {

    var result = true;

    foreach (var bqlField in values)

    {

    result = result && object. … more

  • Enums and strings

    Hello everybody,

    I want to share some pieces of code how to work with enums. 

    Some time it is needed to have list of string constants in your code, which can feet to some strings with spaces. 

    enum EarningType

    {

    [Description("Virginina")]

    VL,

    [Description("Salt and Lasso")]

    SL,

    [Description("TO")]

    TO,

    [Description("RG")]

    RG

    }

    One of easy ways to use description is usage of extension methods like this:

    public static class EnumsProcessor

    {

    public static string GetEnumDescription(this Enum value)

    {

    var fi = value.GetType().GetField(value.ToString()); … more

  • Execute stored procedure in Acumatica

    Hello everybody.

    I want to share if you need to execute stored procedure in Acumatica how to achieve it. 

    It's simple.

    1. Create Stored procedure in db.

    2. Use in your code PXDatabase.Execute.

    For example let's say you created stored procedure which has name DeletePrTranByPrPayrollAndPayrollDetailsId and takes as parameters @prPayrollRefNbr and @prPayrollDetailsID which are of type nvarchar.

    Then you can call stored procedure in the following way:

    var pars = new List<PXSPParameter>();

    PXSPParameter p1 = new PXSPInParameter("@prPayrollRefNbr", PXDbType.NChar, details.PayrollRefNbr);

    PXSPParameter p2 = new PXSPInParameter("@prPayrollDetailsID", PXDbType.NChar, details. … more

  • PXSelect vs PXSelectReadonly

    Hello everybody,

    today I want to share with you important difference between PXSelect  and PXSelectReadonly.

    In my project I had the following situation. PXSelect of table name didn't give me what actually was in db. After a long research I found PXSelectReadonly and key difference is that PXSelectReadonly reads directly from db without usage of Acumatica Cache.  more