Acumatica 2018 R2 Developer Focused Enhancements

Mark Franks | September 13, 2018

 

Introduction

With the launch of Acumatica 2018 R2 yesterday, the general product feature enhancements and formative changes are the ones getting all the limelight, since they appeal to end-users of our product and our our non-developer partner audience.  Given my focus is on our developer community, I will illuminate some of the more relevant enhancements that developers are most likely to be interested in leveraging now or in the not too distant future for planning purposes in architecting their solutions.

But before I get to some of the developer meat, it behooves me to at least mention some of the nice enhancements we made in general that developers should be aware of nonetheless.

In general terms, the 2018 R2 platform enhancements are as follows:

  • Access Restriction for Editing the Business Date
  • Export of Generic Inquiry Parameters to a Separate Excel Sheet
  • Generic Inquiry Row Insertion
  • Navigation Tabs in the Acumatica Mobile Application
  • New Company and Branch Selector
  • New Navigation Option in Generic Inquiries
  • Performance Enhancements
  • Contract-based API Improvements
  • Reusable Business Objects with Support of Unit Tests
  • Simplified Increase of the Database Column Size in Customization
  • Improved Mobile App Customization
  • Mobile Push Notifications for Business Process Monitoring Report Designer Preview Mode
  • Mobile Site Map Definition Language (MSDL) & the subsequent deprecation of XML

I have placed in bold the platform enhancements we believe are most interesting to developers – even if they are not developer specific, per se.

Developer Highlights

Now we’ll move into the meat of the post and spend some time reviewing some of the enhancements to the platform we believe developers are likely to care most about.

Mobile Development

Given we have made rather significant enhancements to the mobile development platform, I’ll start with these enhancements first.

Mobile functionality has always been one of Acumatica’s top priorities. In 2018 R2, you’ll see push notifications, navigation, and customization updates to improve on our overall theme of usability. As you sign on to your Acumatica system, you’ll be greeted by a welcome page that offers links to helpful resources. Pop-up notes increase your productivity in working with documents, customers, vendors, and items. Improved navigation between companies and branches will increase usability and productivity for customers with multiple entities.

But from a developer perspective, the most interesting and impactful enhancement is the use of our new Mobile Site Map Definition Language – MSDL.  In this release, the mobile site map can now be written only in MSDL as we deprecating XML as the site map language going forward. We’ll continue to to support XML in previous version for the time being.

MSDL can be used in two ways: 1.) to change the mobile site map; and 2.) to create the content for the empty mobile site map.  Note that with MSDL, an instruction name is not case sensitive. For example, you can write the add instruction as Add, ADD, or aDD.  Each instruction must be written in a new line of MSDL code. You can use any number of white-spaces before an instruction in a line of code. If an instruction is located inside braces, this instruction is executed in the context of the object of the instruction that contains the opening bracket. An instruction can contain multiple nested instructions within braces. To specify or update the value of an attribute of an object in the mobile site map, add the attribute assignment within braces for the instruction for the object, as follows:

add recordAction “EditDetail” {

behavior = Open

}

An instruction can contain multiple assignment commands within braces. Braces for an instruction can be placed on the same line after the instruction or on the next line of the code, as shown in the following code:

add field “Date” {

}

add field “Description”

{

}

You can omit a space before and after braces, as the following example shows:

add item “EP301010″{

displayName = “Expense Receipts”}

A comment starts with the # symbol and finishes at the end of the line.

# this is a comment

Elements of MSDL include Object Types, Constants, Instructions, and Error Messages which you can refer to in the documentation for more detail.

Contract-Based API Improvements

Acumatica ERP 2018 R2 includes a new system endpoint of the contract-based API (Default/18.200.001). This endpoint uses the Contract Version 3 and includes the most commonly used entities from Finance, Order Management, Customer Management, and Project Accounting. As compared to the Default/17.200.001 endpoint, the list of entities have been expanded with the entities from Project Accounting. The user can review the list of entities that are included in the Default/18.200.001 endpoint on the Web Service Endpoints (SM207060) form, which is shown in the following screenshot.

Developers can use the WSDL file or the file with the OpenAPI 2.0 specification to review the API of the endpoint and build client applications of Acumatica ERP based on the corresponding file. To obtain the WSDL file or the OpenAPI 2.0 file, on the Web Service Endpoints form, click either ViewEndpoint Service > WSDL or View Endpoint Service > OpenAPI 2.0.

Please note that endpoints with Contract Version 1 are no longer supported. The default/5.30.001 system endpoint, which used Contract Version 1, has been removed. If any custom endpoints that used Contract Version 1 are needed in Acumatica ERP 2018 R2, the developer needs to update these endpoints to use a newer version of the system contract.

Reusable Business Objects with Support of Unit Tests

In previous versions of Acumatica ERP, shared business logic (such as multi-currency functionality and sales tax functionality) was placed inside attributes and classes inherited from PXSelect classes. With this approach, the developer had to replicate all underlying data structure definitions for every type of document that uses shared business logic.

Reusable business objects are implemented for the multi-currency functionality, for which the UI elements are shown in the following screenshot.

 

Reusable business objects are a special kind of extensions that are unrelated to any real document and include a complete set of business logic related to a business process—that is, code, metadata, and data structures.  Because reusable business objects are not connected to real documents, they can be tested separately without the connection of these objects to the entire system, which simplifies testing and therefore improves the quality of the product.

These reusable business objects for the multi-currency functionality are available in the PX.Objects.CM.Extensions namespace. In Acumatica ERP, these business objects are currently used on the Opportunities (CR304000), Quotes (CR304500), Service Orders (FS300100), and Appointments (FS300200) forms. If any customizations are applied to these forms, the developer may need to update the customizations.

Webservices System Endpoints

Acumatica ERP 2018 R2 supports three system endpoints as shown in the following table:

There are a number of new and modified endpoints as well as elements that have been removed in R2.

New Endpoints

  • AccountGroup
  • Activity Activity
  • AllocationRule
  • ChangeOrder
  • ChangeOrderClass
  • CommonTask)
  • CompanyFinancialPeriod
  • CostCode
  • ExpenseClaim
  • ExpenseReceipt
  • ExternalCommitment
  • LaborCostRate
  • ManageFinancialPeriods
  • ProFormaInvoice
  • Project
  • ProjectBilling
  • ProjectBillingRules
  • ProjectBudget
  • ProjectTask
  • ProjectTemplate
  • ProjectTemplateTask
  • TimeEntry
  • UnionLocal
  • WorkClassCompensationCode

These new entities (except ProFormaInvoice) can be created, retrieved, updated, and deleted through the standard API methods. ProFormaInvoice can be created only by invocation of the RunProjectBilling action of Project.

Modified Endpoints

There were two endpoints that have been modified in R2:  The object name of EmailTimeActivity has been changed to TimeActivity and the Employee mapping of the entity has been fully changed.

Lastly, there have been a large number of new fields and actions  – too numerous to list here that will be of interest you should review as well.

Summary

With our latest release, Acumatica 2018 R2, we have a number of enhancements for developers – Mobile, Contract-based API, Reusable Business Objects with Support of Unit Testing, and numerous Web Services enhancements.  I hope you find these highlights of some utility in your developer life going forward.

In a subsequent post I will review in more detail our Web Services enhancements, including Postman REST requests collection – Login, Get/Put bills, vendors, etc..

For more detailed descriptions of what I have highlighted here in this post, access our Partner Portal and view the documentation.

Mark Franks

As a Platform Evangelist, Mark is responsible for showing people the specifics about what makes Acumatica’s Cloud Development Plaform wonderfully attractive to ISV & Partners. He's also passionate about Running, Latin, and his family. | E-mail: mfranks@acumatica.com | Skype: mfranks |

Subscribe to our bi-weekly newsletter

Subscribe