On-The-Fly Data Transformation using Virtual Data Access Class

Hi Everyone, Sometimes you want to show existing data in the different format (for report, inquire or corporation purpose). In my example I want to show you how to transform transform database table into something different. I have a table with years, groups and values, I want to group data by year and compare it between selected years. To do this we will use data view delegates and virtual data access classes. First of all lets define 3 data access classes: YearGroup – DAC for selecting data from database table. YearFilter – virtual DAC for storing year what we want to compare. VirtualComparasion – virtual DAC for showing grouped data in UI. Code:… Read more

Acumatica Demonstration Ideas

Searching for a coolest demo? First of all, I recommend you to install cloud instance to show the real speed of Acumatica and use Sales Demo pack of demo data. Here I will provide some ideas, what you can show. General features: Login with multiple browsers/tabs/users – quite cool to see, how scalable Acumatica is. Explain and show multi-tenancy. Show the dashboards and how easy to rearrange them. Also you can show drill-down and columns rearrangement strait from dashboard. Open any data-entry screen (like Sales Order Entry) and change the the size of browser. Users will see, how system rearrange controls depend on size of your device. Install and open Google translate plug-in and show how to translate Acumatica on the fly. Using… Read more

How to Install Acumatica for Demo

Hi Everybody Quite often I have a questions about how to do good Acumatica demo. Here I want describe some ways how you can provide a demo. What we need to provide demo: Place where we can install Acumatica demo instance Installed instance of Acumatica Prepared demo data Demo presentation and script List of coolest features Lets go through this points. We start with hosting and installing Acumatica and finish with presentation materials. Hosting Acumatica First of all we need to install acumatica some where. The only one requirement here is to have Microsoft Windows operation system. We have many options here: Install Acumatica on your local machine. This is most convenient way, as you will not depend… Read more

Acumatica Platform Architecture

Hi Everybody Today I want to share some information about Acumatica Architecture from web interface to database. We will go through: Frameset structure Page structure Main communication protocol between browser and server Business logic architecture Acumatica ORM architecture. Frameset Structure Acumatica is based on ASP.NET technology, so the main thing under main page is Frameset Frameset consists of different menus and the page. Green part is customizable using sitemap, localization, access rights and some settings. Orange part is customizable using Customization Manager, access rights, localization, and many different settings.. Also you can develop new pages using Acumatica Framework. Welcome tho this article, if you want to see more! Page Structure This part is your main… Read more

How to use Acumatica Trace

Hi All, What you need to check if you have any problem and you want to investigate it? Lets discuss Acumatica traces and log files/tables. The first place that you should check if you faced the issue in application is the standard Acumatica trace. Do you interesting in using PX trace from the code? Them welcome to this article. If you need you can write information to the trace direct from your code. For this task, you should use PXTrace static class. There are a lot of different auxiliary methods to write different types of events: public static void WriteError(string message) public static void WriteError(Exception e) public static void WriteWarning(string… Read more

Setup Notifications to the Approver

Hi Everyone, Are looking for a way, how to setup notifications in Acumatica? If yes, please follow these steps: Create Automation Notification In the Addresses tab, specify the “Document” in the Source field and selected the “Approver>Default Contact> Email” in the Email field. Assuming this is the field to be used for to notify the approvers of a document. Create an Expense Claim and activate the approval process by un-ticking the Hold checkbox. Approver shown in the Approval Details. Make sure the Approver’s email is updated in the Employees screen. Notification is created. Make sure that you have scheduler for sending notifications. And also check that you email account is… Read more

Get Data from Stored Procedures In Acumatica

Hi There, As you may know, by default Acumatica does not support stored procedures. The reason of this is hidden in multi-tenancy. Acumatica able to host more than one tenant in the same database. To do this, In each table it has a CompanyID column, which is a tenant ID. User from one tenant must not be able to get access to date of other tenant. So to make sure that Acumatica getting data from the right tenant and this date is secured, Acumatica platform automatically adds the special restriction by CompanyID to every select statement ( … where [table].CompanyID in { 1, 2 } ) If you are using stored procedures than platform is not able to make… Read more

Log Exceptions with First Chance Excetion Log

Hi All Microsoft .Net has a very nice feature like First Chance Exception Log. You can easily use it in your Acumatica to log specific exceptions. Read more about first chance exceptions. Now I want to share with you my logger example: Logger example: View the code on Gist. To to enable this logger, you just need to put an additional file to <SitePath>App_code folder and add this line to your global.asax file: void Application_Start(object sender, EventArgs e) { ….. SessionLogger.Initialise(); ….. } Based on this idea I have created a logger that catchs “Session Expired” messages for monitoring purposes. The source code of SessionLogger is available on GitHub.

Cache Data in Memory using Database Slots

Sometimes you need to use some dynamic data from the database, but you need it so often, so retrieving data process becomes a big performance issue. What you need to do? Cache the data? But your date is dynamic and can be modified by the user. So you need to implement some mechanism to reset your cache? Another bicycle… Acumatica Framework can address this issue with Database Slots Technology: Framework stores your data in the HttpContext in special dictionaries. Framework automatically calls Prefetch method on first access to cached data. Framework automatically monitors dependant tables and will reset cache when someone has updated it. Framework automatically handles cluster mode. Access… Read more

Add New Screen to Acumatica Mobile Application

Hi Everyone, Have you ever heard about Acumatica Mobile Framework? It a pretty nice thing, how you can extend some ERP functionality from Web UI to Acumatica’s native mobile application. Today I want to guide you – how to create new screen. As example I will take a Journal Transaction screen. Why this screen? This screen is simple enough to understand the logic. This screen is complex enough to move it mobile application. If you try to use this screen from mobile phone you will understand that it is not so easy, because of plenty controls and buttons. Of course, we can simplify it with customization or access rights, but we want to have this functionality from desktop browser.… Read more