AUGForums.com

An Acumatica User Group

  • Forums
  • Podcast
  • Blog
  • Rolodex
  • Login
  • Start Here
  • Consulting
  • Courses
  • Register

xRP Framework Fundamentals & Best Practices – xRP Summit 2019

June 19, 2019 by Tim Rodman

For the third year in a row, Acumatica held a virtual developer conference. Here are my notes from the xRP Framework Fundamentals & Best Practices session.

I created separate blog posts for each session.


Day 1

09:00am – Welcome & Kick-off – Ajoy & Mark

09:10am – xRP Framework Fundamentals & Best Practices – Sergey Marenich (this post)

10:20am – Application Solution Architecture – Dmitry Naumov

10:50am – Source Control & Automation for Acumatica Developers – Brendan Hennelly

11:30am – Reporting Tools, Tips, and Best Practices – Mikhail Reysev

12:40pm – Implementing Multi-Currency Support for Custom Solutions – Joshua van Hoesen

01:10pm – Unit Testing Framework – Andrew Boulanov


Day 2

09:00am – Database Schema Overview – Dmitry Naumov

09:30am – Application Certification – Ruslan Devyatko

10:10am – Modern Developer Practices – Stan Lesin

11:20am – Updating your Codebase with FBQL – Sharif Ahammad

11:50am – What to Expect from Acumatica’s Developer Community – Joe Jacob & Mark Franks

12:00pm – Developer Roadmap – Mike Chtchelkonogov


About to get started with "Getting Started with xRP Framework" session with Sergey Marenich who recently moved from Singapore to Montreal #CloudxRPSummit pic.twitter.com/DWXi5akySa

— Tim Rodman (@TimRodman) June 19, 2019

Sergey is highlighting a great blog article for new Acumatica developers #CloudxRPSummit https://t.co/X1xQIWxBOa pic.twitter.com/FTuh9PEwnh

— Tim Rodman (@TimRodman) June 19, 2019

Really easy to get started with developing in Acumatica since you don't even need a license. Trial mode is free. #CloudxRPSummit pic.twitter.com/ZLNBgEuDX9

— Tim Rodman (@TimRodman) June 19, 2019

Overview of the Acumatica Platform which is very important when it comes to understanding why Acumatica has been growing so quickly. #CloudxRPSummit pic.twitter.com/lwmIVA8HLW

— Tim Rodman (@TimRodman) June 19, 2019

The Acumatica ERP Platform Architecture sits on top of Microsoft .NET. The Platform gives you ERP building blocks to use (security, document management, report writers, etc.) when building ERP applications #CloudxRPSummit pic.twitter.com/PVgTD8Kxlj

— Tim Rodman (@TimRodman) June 19, 2019

What really makes Acumatica standout one interface for Web Browser, Mobile, and APIs. This is especially important in ERP because there is so much business logic to contend with. #CloudxRPSummit pic.twitter.com/2S43R1W62b

— Tim Rodman (@TimRodman) June 19, 2019

A more technical view of the Acumatica Framework Architecture. The reason why they call it "graph" is because of the relationships between the Entities #CloudxRPSummit pic.twitter.com/TsHptWEwaa

— Tim Rodman (@TimRodman) June 19, 2019

50,000 foot level look at the Acumatica Cloud xRP Platform #CloudxRPSummit pic.twitter.com/rJSXrcmF9Z

— Tim Rodman (@TimRodman) June 19, 2019

Now let's look at the essentials #CloudxRPSummit pic.twitter.com/GtypDzpZZA

— Tim Rodman (@TimRodman) June 19, 2019

The Data Access Class (DAC) is how you map stuff into the Database. Especially important with a Cloud ERP product like Acumatica where you don't have direct access to the Database. #CloudxRPSummit pic.twitter.com/KAIGvA23Tf

— Tim Rodman (@TimRodman) June 19, 2019

Things start to get really interesting with DAC Attributes, setting the field length/mask, marking key fields, providing default values for fields, etc. #CloudxRPSummit pic.twitter.com/FoMhClfmX9

— Tim Rodman (@TimRodman) June 19, 2019

PXSelector gives you the validated lookup fields that are so common in an ERP application #CloudxRPSummit pic.twitter.com/9F3dVoL0PX

— Tim Rodman (@TimRodman) June 19, 2019

Now for Business Logic Containers (BLC), aka Graph. There is a 1-1 relationship between a screen and a BLC. But not all BLCs are linked to a screen. #CloudxRPSummit pic.twitter.com/oGoELUEmFU

— Tim Rodman (@TimRodman) June 19, 2019

Next up, Data Views. You can automatically generate a DAC from a Database Table within a Customization Project. #CloudxRPSummit pic.twitter.com/EDcMYJ0Rb4

— Tim Rodman (@TimRodman) June 19, 2019

You can create a new screen within a Customization Project. The graph is automatically created, but you can modify it. #CloudxRPSummit pic.twitter.com/47b31mI3qF

— Tim Rodman (@TimRodman) June 19, 2019

What Acumatica Data Views do: 1. Maintain changes in the Session with PXCache. 2. Select data from the Database with PXView. 3. Provide data to User Interface. #CloudxRPSummit pic.twitter.com/nhUmFUgaFo

— Tim Rodman (@TimRodman) June 19, 2019

Forms and Grids get mapped to Data Views which could reference multiple Data Access Classes (DACs) #CloudxRPSummit pic.twitter.com/nfAe6nm61i

— Tim Rodman (@TimRodman) June 19, 2019

What is Business Query Language (BQL) in Acumatica? It links the Data View to the Database. It's an abstraction on top of SQL. #CloudxRPSummit pic.twitter.com/pQgGg6MHx0

— Tim Rodman (@TimRodman) June 19, 2019

Why BQL? 1. Abstraction, refractoring. 2. Database Agnostic, allowing support for both SQL Server and MySQL. #CloudxRPSummit pic.twitter.com/0T9So0mTP3

— Tim Rodman (@TimRodman) June 19, 2019

Comparing BQL code to the SQL code that is automatically generated. Note the automatic ORDER BY clause that gets inserted automatically. #CloudxRPSummit pic.twitter.com/B47thKOdHT

— Tim Rodman (@TimRodman) June 19, 2019

Diving deeper into BQL where it starts to get ugly. HAVING statements are supported now. #CloudxRPSummit pic.twitter.com/HnwQHjZcZH

— Tim Rodman (@TimRodman) June 19, 2019

You can bypass a Data View and put BQL directly into code. Multiple parameters are supported (Required, Current, etc.) #CloudxRPSummit pic.twitter.com/sOnm0y6oTx

— Tim Rodman (@TimRodman) June 19, 2019

Keep in mind that Acuminator is VERY helpful when dealing with BQL #CloudxRPSummit pic.twitter.com/CfjkcpmsIO

— Tim Rodman (@TimRodman) June 19, 2019

The next generation of BQL which will make BQL more user-friendly: Fluent BQL and LINQ to BQL #CloudxRPSummit pic.twitter.com/XmwBr6hMvV

— Tim Rodman (@TimRodman) June 19, 2019

BQL is used here #CloudxRPSummit pic.twitter.com/tfN6BiP7yN

— Tim Rodman (@TimRodman) June 19, 2019

Now for the User Interface which is currently https://t.co/fTl9nmlxev although work is being done to move this to the next generation. Hmmm, that sounds interesting. #CloudxRPSummit pic.twitter.com/pHBIInuX7N

— Tim Rodman (@TimRodman) June 19, 2019

Every Screen linked to a Graph. Every Form linked to a Data View. Controls linked to Fields in DACs. You can only use fields that are mentioned in the Data View so you might need to do JOINs in the Data View to get more fields. #CloudxRPSummit pic.twitter.com/CxdrhM60Ku

— Tim Rodman (@TimRodman) June 19, 2019

Use StartRow and StartColumn to control where the field is displayed on the Screen #CloudxRPSummit pic.twitter.com/Mdw0FFF1Ai

— Tim Rodman (@TimRodman) June 19, 2019

Use Attributes to decide how a Control will be displayed #CloudxRPSummit pic.twitter.com/173RuyO9c4

— Tim Rodman (@TimRodman) June 19, 2019

Use CommitChanges to decide when to trigger the Business Logic. Save callbacks with CommitChanges="False" #CloudxRPSummit pic.twitter.com/l3FtahjIff

— Tim Rodman (@TimRodman) June 19, 2019

Now for Events. There are 12 Row-Level Events and 5 Field-Level Events. #CloudxRPSummit pic.twitter.com/tIH9AolIVW

— Tim Rodman (@TimRodman) June 19, 2019

There is a javascript communication layer between the page on the browser and the ASPX code #CloudxRPSummit pic.twitter.com/EyDmqQy0KV

— Tim Rodman (@TimRodman) June 19, 2019

Insert, Update, Select, and Delete events are what get sent from the Control to the Graph #CloudxRPSummit pic.twitter.com/AmZOuvut24

— Tim Rodman (@TimRodman) June 19, 2019

PXCache is what actually triggers business logic. Session keeps things within the screen which Database commits data into the Database. #CloudxRPSummit pic.twitter.com/9QzKuUaCEz

— Tim Rodman (@TimRodman) June 19, 2019

The most commonly used Events. If you want to detect a wrong value, then use RowUpdating, not RowUpdated. If you want to react after a field value changes to go do something, use RowUpdated. #CloudxRPSummit pic.twitter.com/nklT6fEbCV

— Tim Rodman (@TimRodman) June 19, 2019

RowSelected can be used to correct something before showing it to a user #CloudxRPSummit pic.twitter.com/8ECuPdgQza

— Tim Rodman (@TimRodman) June 19, 2019

The list of Events and how they interact with each other #CloudxRPSummit pic.twitter.com/YVaTvCx6p2

— Tim Rodman (@TimRodman) June 19, 2019

Now for Customizations (Extensions). The last part of this awesome presentation. #CloudxRPSummit pic.twitter.com/nTbJmIIsYF

— Tim Rodman (@TimRodman) June 19, 2019

Customizations in Acumatica are HUGE, especially important how the code is kept separate from core Acumatica code. #CloudxRPSummit pic.twitter.com/vSnDAsvJcK

— Tim Rodman (@TimRodman) June 19, 2019

What happens when you need to customize Acumatica and extend the Framework? The Core Acumatica code and your Custom Code get combined in memory in the Runtime Instance. #CloudxRPSummit pic.twitter.com/T57RokNHVG

— Tim Rodman (@TimRodman) June 19, 2019

PXCacheExtension and PXGraphExtension allow you override standard Acumatica core functionality. Very important because Acumatica customizations not only allow you to add new code, but even change existing code, all without modifying source code like legacy ERP. #CloudxRPSummit pic.twitter.com/YBGcDlQLmc

— Tim Rodman (@TimRodman) June 19, 2019

Most interesting uses of these extensions #CloudxRPSummit pic.twitter.com/x29Q3RgHaM

— Tim Rodman (@TimRodman) June 19, 2019

Awesome session Sergey! One final slide with ideas for what to do if you want to learn more #CloudxRPSummit pic.twitter.com/H7bwbnbIci

— Tim Rodman (@TimRodman) June 19, 2019

Love the Q&A window here at the #Acumatica Virtual Developer Conference. Lots of interaction going on. #CloudxRPSummit pic.twitter.com/6zCvTLvIxB

— Tim Rodman (@TimRodman) June 19, 2019

Filed Under: Acumatica Learning Tagged With: Acumatica, Acumatica Blog, Acumatica Learning, Acumatica Training, Acumatica xRP Summit 2019

By using this website, you agree to our Terms of Use (click here)

Online Members

Recent Blog Posts

  • EP 38: From Welder to Consultant, Nick Savage-Mady on his journey with Acumatica and MYOB Advanced (Podcast) January 21, 2021
  • Acumatica Reporting Tools Consulting January 19, 2021
  • EP 37: Jody Lorincz, IT Manager at MHR Brands, sharing his Acumatica Customer Story (Podcast) January 13, 2021
  • EP 36: What Motivates ERP Veteran Nicole Ronchetti To Participate in Acu-Connect (Podcast) January 8, 2021
  • Acumatica and Scanco WMS – A Cautionary Tale for ISVs January 6, 2021
Acumatica Learning Resources

Recent Forum Posts

  • RE: How to add multiple pages of contract terms to the Sales Order printed form

    I have the same issue and I use SubReport (in your case...

    By Idrus, 5 hours ago

  • RE: Is the Parameter Schema Field Mandatory?

    I think it's required. Without it, Acumatica doesn't kn...

    By Tim Rodman, 7 hours ago

  • RE: Can a customer Cross Reference for a parent account feed automatically to child accounts?

    @daniel I always like going simpler myself whenever pos...

    By Tim Rodman, 7 hours ago

  • RE: Carrier VDA Shipping Label (VDA 4994)

    Someone out there might have one, but I don't unfortuna...

    By Tim Rodman, 7 hours ago

  • RE: How to add multiple pages of contract terms to the Sales Order printed form

    I am attempting several different methods. The issue i...

    By Rick Taylor, 12 hours ago

  • RE: How to add multiple pages of contract terms to the Sales Order printed form

    Are you just putting all the text in a single text box ...

    By megan.friesen, 14 hours ago

  • RE: Kensium Shopify versus Acumatica Shopify

    Hi Carl, Acumatica purchased the Shopify Connector, B...

    By Tyler Mullen, 17 hours ago

  • How to add multiple pages of contract terms to the Sales Order printed form

    The customer would like to add their contract terms to ...

    By Rick Taylor, 18 hours ago

  • Fixed Assets - Errors in Imports - Errors in posting - Can client return to blank FA DB?

    We have a client that has been through their implementa...

    By steven@ibs, 20 hours ago

Recent Tweets

Terms of Use & Disclaimers :: Privacy Policy

Copyright © 2021 · AUG Forums, LLC. All rights reserved. This website is not owned, affiliated with, or endorsed by Acumatica, Inc.