Contents tagged with Acumatica

  • How to rename buttons Process and Process All at processing screens of Acumatica

    Hello everybody,

    today I want to leave short notice on quesiton how to rename buttons or if to be more specific change title of buttons at Processing screens. By default those buttons have captions Process and Process All. The simplest way to rename them is to use constructor of processing graph. In constructor you can make something like this:

    public YourGraph()

    {

            Actions["Process"].SetCaption("Email");

            Actions["ProcessAll"].SetCaption("Email All");

    }

    With such simple trick, you can assign any caption you wish to your buttons more

  • DataSelf analytics webinar after taste

    Hello everybody,

    today I want to write some kind of short summary of webinar meeting which was held yesterday by Joni Girady.

    Biggest impression

    My most general impression is that Joni is a real proffesional in Datanalytics staff, and of course the fact that Acumatica chosen their product as their inhouse platform shows that not only I made such a conclusion.

    Among technical parts of the meeting I want to point practical comments on how C-level people can cultivate analytics approach in their company. In other words how to make your employees to help you analyze situation in your company.

    Search for data hungry people 

    Promote such data hugry people ( nothing works better then life … more

  • How to manage default order of Columns in selector of Acumatica

    Hello everybody,

    today I want to leave a short notice on how to manage order of columns in Selector of Acumatica. Quite often customers has desire to manage default order of columns in selector. That is very easy to achieve with new Type[] parameter added to your selector. Take a look on how I've managed list of columns for Carrier with help of new Type[]:

    [PXDBString(15, InputMask = ">aaaaaaaaaaaaaaa", IsKey = true, IsUnicode = true)]

    [PXDefault]

    [PXUIField(DisplayName = "Ship Via", Visibility = PXUIVisibility.SelectorVisible)]

    [PXSelector(typeof(Search<Carrier.carrierID>), new Type[]

           {

             typeof(Carrier.description), typeof(CarrierExt.usrDeliveryLength), typeof(Carrier. … more

  • PXDimensionSelector in Acumatica

    Hello everybody,

    Today I want to describe PXDimensionSelector attribute usage in Acumatica. According to manual PXDimensionSelector attribute has following purpose:

    Defines an input control that combines the functionality of the PXDimenstion attribute and the PXSelector attribute. A user can view the data set defined by the attribute and select a data record from this data set to assign its segmented key value to the field or to replace it with the surrogate key. 

    After reading such purpose, I've decided to read purpose of PXDimension attribute:

    Defines an input control that formats the input as a segmented key value and displays the list of allowed values for each key segment.

    If … more

  • How to speed up Acumatica debugging with tunning web.config

    Hello everybody,

    today I want to make short post on how to speed up Acumatica debugging. I'll share with you options that worked on my machine. 

    In case if you have something to add, I mean something that really affects speed up of page loading, you are welcomed to  do it. 

    Setting #1:

    To your <compilation debug="True" secion apped following line optimizeCompilations="True". In mine web.config I've got following look and feel:

    <system.web>

        <compilation debug="True" defaultLanguage="c#" numRecompilesBeforeAppRestart="9999" targetFramework="4.7.1" batch="True" optimizeCompilations="True">

    Setting #2 and #3:

    To your appSettings add/update key CompilePages and InstantiateAllCaches … more

  • Filters in Acumatica

    Hello everybody,

    in this article I want to describe how filtering in Acumatica work. When I say filtering, I mean following UI part:

    In manuals T100 - T300 there is almost nothing about how filters work, so I want to share few bits of development information.

    Storage

    All information about filters is stored in database in tables FilterRow and FilterHeader.

    Take a look on screenshot of FilterInformation for some custom applied filter:

     

    As you can see from screenshot Acumatica stores information about filters by FilterID, and has information like Condition, values, Close brackets, operators and so on.

    Also there are DAC classes FilterRow and FilterHeader, but you can find them only … more

  • Predefined Size Values in Acumatica

    Hello everybody,

    today I want to leave a post on Predefined size values for ColumnWidht, LabelsWidth, ControlSize properties of the PXLayoutRule component and LablesWidth and Size properties of a control:

    Value

    ColumnWidth in Pixels

    LabelsWidth and ControlSize of a Layout Rule; LabelsWidth and Size Properties of a Control in Pixels

    XXS

    100px

    40px

    XS

    150px

    70px

    S

    200px

    100px

    SM

    -

    150px

    M

    250px

    200px

    XM

    300px

    250px

    L

    350px

    300px

    XL

    400px

    350px

    XXL

    450px

    400px

    As you can see from presented table XL is not always the same XL, and it depends from the context more

  • How to have few Acumatica versions on single machine

    Hello everybody,

    today I want to leave a short comment about how to make few Acumatica instances of single developer machine. 

    As you already know or maybe know, Acumatica recommends to have one version of Acumatica. But what if you want more? Is Acumatica merciful enough to allow you this? The answer on this question is strong yes! 

    All that you need to do, is to install version that you need, and then preserve following folders in safe place:

    Data

    Database

    Files

    Portal

    And then you can uninstall them and install another version. 

    Then for installing specific instance of Acumatica you'll need to run AcumaticaConfig.exe file and you'll be ready to go.  more

  • Performance difference in Acumatica between MS SQL and MySQL

    Hello everybody,

    today I want to write a few words about performance difference between MySQL and MS SQL in Acumatica.

    Relatively recently Acumatica provided possibility to use MySQL as it's database. For some unknown reason

    I didn't notice anybody who decided to use MySQL as their database solution. If you know any, please let me know,

    how they like their experience. 

    For me as developer it become interesting to check performance of MySQL vs MS SQL. Especially from standpoint of servers. 

    Take note on how one of mine task managers look like:

    as you can see I have 40 logical cores or 20 physical cores. Try to guess what is price of license for MS SQL for using at such a computer? … more

  • How to handle time consuming operations in Acumatica from code

    Hello everybody,

    today I want to make a short note on how to handle cases if you need to execute some kind of long operation in Acumatica. Once I had a task, create code that executes some kind of web requests that take some amount of time. When I used simple button, that approach died because of time out. In order to handle it I've decided to use PXLongOperation.StartOperation.

    Below goes full sample of code:

    public class SOOrderEntryExt : PXGraphExtension<SOOrderEntry>

    {

        public PXAction<SOOrder> Test;

        [PXProcessButton(Tooltip = "Test")]

        [PXUIField(DisplayName = "Test")]

        public virtual IEnumerable test(PXAdapter adapter)

        {

            PXLongOperation. … more

  • ISV solutions for Acumatica

    Hello everybody,

    today I want to write a few words about ISV solutions for Acumatica. ISV stands for Independent software vendor so ISV Solution means independent software vendor solution for Acumatica. 

    All ISV solutions are now splitted in three categories:

    Embedded - based only on Acumatica xRP Framework and Customization tools

    Connected - based only on Acumatica WEB services API

    Composite - has combination of embedded and connected features

    Acumatica will provide to their partners with excel file, which is needed to be filled before Acumatica gives it's approval on the solution. For each of those categories Acumatica will request different input from ISV, but if to summarize … more

  • Depreciation vs Amortization

    Hello everybody,

    today I want to write a short note about Depreciation and Amortization and whati is the difference between both. 

    So both of them reflect information about loosing value of some non current asset. If company bought something for one price, and with time that something looses it's value.

    What the difference?

    Depreciation is connected to tangible asset.

    Amortization is connected to intangible asset.

    For example loosing of value of laptop is characterized by depreciation.

    Loosing of value of software is characterized by amortization. more

  • AR vs AP

    Hello everybody,

    this post is intended for Acumatica developers which wonder about difference between AR and AP screen or as they named accounts payable and accounts receivable. If to speak simply both of them are intended for future benefits. The difference is just who is receiver of those benefits: your company ( accounts receivable ) or not your company ( accounts payable ).

    Consider example: your company sells laptops. In case if HP gave you 10 latpops, then information about them will be written at your accounts payable. But for HP those laptops will be at accounts receivable. Let's say somebody made agreement with your company, that they will pay you in two months for 2 out of your 1 … more

  • Key features of Acumatica

    Hello everybody,

    today I want to make a post about by no means exhaustive but quite descriptive list of features in Acumatica.

    Main features Acumatica

    Accounts payable

    Accounts receivable

    Advanced CRM - convert prospects to accounts with 1 click

    Advanced accounting - multi-currency, consolidation ledgers

    Advanced billing

    Advanced distribution - inventory, sales, purchasing

    Allocate expenses

    Budget tracking

    CRM integration

    Campaign management

    Case management

    Cash management

    Currency management

    Customer management

    Customer portals

    Distribution management

    Employee portal (timesheets, expense reports)

    Enterprise features - mid-sized business costs

    Expense management … more

  • Contract API Optimization

    Today, I want to re-tell about Contract API Optimization. Materials get from conference of Acumatica and introduction by Joshua van Hoesen.

    Three point of ineterst

    Utilisation of ReturnBehavior

    Avoid graph logic by creating Generic Inquiry for data retrieval

    Multi-Threading

    Introduction

    With the continued advancement of integrated software solutions, there has also been a need to address legacy business processes and how they may be implemented in a modern framework. These business processes tend to rely heavily on collecting large amounts of raw data from disparate sources and aggregating it together for further processing.

    Some companies whose business process … more

  • Acumatica Test Framework in Acumatica. Part 2 (Practice)

    In this part we implement real automation test for creating POOrder - screen PO301000;

    Before to start, please read first part of rhis post. 

    The main steps:

    Create solution and add nedeed components from SDK folder

    Add new project (Net library) to solution 

    Configure generator and run it for create .cs class with all components on screen PO301000

    Add POOrder.cs and describe some methods for test

    Add the main class (for example F100_Part1_Lesson1.cs) where we describe Execute() method

    Run solution, view result of test

           Create solution and add nedeed components from SDK folder

    CCreate a test solution by using Visual Studio 2017 as follows:

    In Visual Studio 2017, … more

  • Acumatica Test Framework in Acumatica. Part 1 (theory)

    Ok, Acumatica provides as part of platform is Acumatica Test Framework. Acumatica test Framework is a set of tools and libraries that can be used for unattended black-box testing of any product or customization that is based on Acumatica Platform right in your favorite browser. For interacting with UI controls and components Acumatica Test Framework uses Selenium Web Driver. You can read more about Selenium here or nice example of it is this video.

    The high level diagram of Test Framework components is described here:

    Acumatica Test Framework Architecture:

    As you can see here the core thing of the test framework is Element IDs – Each HTML element has own ID how browser can find it. … more

  • How to use Chart component in Acumatica

    Hello everybody,

    today I want to share one more trick on how to chart in Acumatica. Imagine following case: you have some information about your sales orders, and want somehow to visualize it wiht nice picture. 

    How to do it? You can use charting component of windows. Here I've described building elements of charting library. Charting library is located at System.Drawing library.

    Main purpose of this article is to demonstrate how to use Charting library without going deep about image management. 

    Basically code shows how to load filtered information about sales order add data points, generate dynamic picture and show it on the form.

    Firstly let me show to you picture part:

    <%@ Page  … more

  • Dependency Injection with Acumatica and Autofac from inside customization

    Hello everybody,

    today I want to write a few words about something that I consider as cool achievement: dependency injection in Acumatica with help of Autofac. Before sharing any code I'd like to mention why Autofac and not other framework? Because Acumatica itself is built on Autofac. For you as a developer it basically means that you can omit nuger versioning or any kind of versioning with Acumatica. You just reference Autofac, and it will be available for you in your project.

    Keeping this idea in mind, let's suppose that you have following class in your code:

    public class EmailNotificationSender : IEmailNotificationSender

    {

        public void SendEmail(string to, string subject, string  … more

  • How to use column name in DB that differs from field name in DAC class

    Hello everybody,

    today I want to leave a short workaround for the following case:

    you have DAC class, with column Data, but in db you have column BlobData. How to map your BlobData on Data? For such case you can use attribute DatabaseFieldName.

    Take a note, how Acumatica used it:

    [PXDBBinary(DatabaseFieldName = "Data")]

    public virtual byte[] BlobData { get; set; } more