Archives

Archives / 2017 / October
  • Some digging in tables of Acumatica

    Hello everybody,

    today I want to document one useful sql query that can be beneficial for cases if you need to dig in Acumatica tables, and need quickly to find type of some particular column.

    Here it is:

    select * from information_schema.columns where table_name = 'SOLine' and COLUMN_NAME like '%OrderQty%'

    that sql will let you know all information about column OrderQty. more

  • Types of learning in AI

    Hello everybody,

    today I want to make a short notice on question that I often receive: what kinds of learning exists in Machine Learning. I want to provide simple answer:

    Learning with teacher: questions and answers.

    Learning with teacher: just questions

    Partial learning: questions, and some of them with answers

    Active learning: at which object you'll get an answer

    I suppose maybe some variations of this also exists, but as usually ML in one or another way manipulates with those four. 

    Consider example of clusterization. You have some data set of values. And you need somehow to group them or in other words find groups of similar objects. This task has two problems: nobody know … more

  • Unit test Acumatica PXGraph

    Hello everybody,

    today I want to make another description of how to cover with Unit Tests Graphs in Acumatica. 

    First of all I want to say that Acumatica controllers or as Acumatica names them graphs do not have any way to inject any dependency from interface. In such case it can be useful idea to use Microsoft Fakes library. 

    So in order to unit test Acumatica code you will have a need to make mix of Acumatica code with Microsoft shims. Imagine that you have following graph declaration:

    public class PAllocs : PXGraph<PaymentsAllocation>

    and somewhere in your graph you have method like this:

    [PXButton(Tooltip = "Saves values from grid")]

            [PXUIField(DisplayName = "Save" … more

  • Stubs vs Shims difference

    Hello everybody,

    today I want to mention difference between two kinds of testing. Shim vs Stub. 

    Take a look at the following code sample:

    // Stub sample

    public interface IDependency

    {

        void SomeMethod();

    }

    // Take note that class TestTarget allows to inject 

    // interface IDependency

    public class TestTarget

    {

        private IDependency _dependency { get; set; }

        public TestTarget(IDependency dependency)

        {

            _dependency = dependency;

        }

        public void TestMethod()

        {

            _dependency.SomeMethod();

            

        }

    }

    // Shim sample. Take note that class ShimTarget doesn't allow to inject 

    // interface as dependency

    public class Dep :  … more

  • Types of screens in Acumatica

    Hello everybody,

    today  I want to describe one more feature of Acumatica: types of screens in Acumatica. In Acumatica majority of screens are the following:

    Data Entry pages

    Maintenance pages

    Inquiery pages

    Setup pages

    Processing pages

    Reports.

    Now let's talk in more details about those screens:

    Data entry pages

    As usually data entry pages located at following icon in the red rectangle.

    These pages are the most frequently used pages of the Acumatica. Typically, data entry pages are used for the input of business documents, such as sales orders in a distribution module.

    Maintenance pages

    As usually maintenance pages located at following icon in the red rectangle. … more

  • Types of controls in Acumatica

    Hello everybody,

    today I want to describe with some screenshots kind of controls that you can get from Acumatica developer like me or any other Acumatica programmer.

    Main purpose of this blog post is the following. Imagine, that you want to write super detailed instructions for Acumatica developers. After reading this article I suppose you'll be able to write instructions to them with any kind of detalization. Or even super detailed.

    First of all, I want to point that as usually Acumatica pages consists of two parts: top and bottom. Top part often is named summary, and bottom is considered to be detalization of top. Take a look at following screenshot:

    At presented screeshot red part … more

  • How to override action "Create " at form SO301000 or "Sales orders"

    Hello everybody,

    today I want to document one important piece of functionality in Acumatica. Sales order screen. This is very important screen and has many staff. One of the important screens in it is "Sales orders"  screen. From prospective of understanding Acumatica source code of method "Actions" has plenty of food for mind.

    Take a look at it's declaration:

    public PXAction<SOOrder> action;

    [PXUIField(DisplayName = "Actions", MapEnableRights = PXCacheRights.Select)]

    [PXButton]

    protected virtual IEnumerable Action(PXAdapter adapter,

    [PXInt]

    [PXIntList(new int[] { 1, 2, 3, 4, 5 }, new string[] { "Create Shipment", "Apply Assignment Rules",

                    … more