Wednesday, 30 September 2015

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.
Acumatica Data Transformation

Tuesday, 29 September 2015

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.

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.

Tuesday, 22 September 2015

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
Acumatica 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!

Monday, 21 September 2015

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.
Acumatica Trace Button

Acumatica Trace Window

Do you interesting in using PX trace from the code? Them welcome to this article.

Setup Notifications to the Approver

Hi Everyone,

Are looking for a way, how to setup notifications in Acumatica?
If yes, please follow these steps:
  1. Create Automation Notification 
  2. 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.
  3. Create an Expense Claim and activate the approval process by un-ticking the Hold checkbox. 
  4. Approver shown in the Approval Details.
  5.  
  6. Make sure the Approver’s email is updated in the Employees screen.
  7.  
  8. Notification is created. 
  9. Make sure that you have scheduler for sending notifications. And also check that you email account is specified correctly.

Have a nice Implementation!

Saturday, 19 September 2015

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 sure that the result date is getting from the correct company, so Acumatica does not support stored procedures for select data at all. So to make everything secure, Acumatica uses only normal tables and views to generate SQL statements (including reports). 

But to make it adjustable we have several options how we can extend this approach:

Thursday, 17 September 2015

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:

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 to the cached values is significantly faster.

Wednesday, 16 September 2015

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.
  • This example with data entry screen can be used with plenty similar screens.

Ok, now we want to start developing.