Hardcoded label fix tool for AX 2012

It is a common problem that developers create the objects and code in the shortest time possible to meet a deadline, and that is when we meet with the hardcoded label problem, which is a Best Practice violation. Our environment had about 6000 hardcoded label values as well, and I was looking for a general solution to fix them, which resulted in creating a new tool.

This tool is heavily beta version, comes with no warranties, use it at your own risk.

Hardcoded label

The hardcoded label fix tool is version control compatible, and you should really use it through that, in case you would like to roll back a set of incorrect modifications easily.

Once you open the form, the Scan button will process your entire AOT on the current layer and model and stores TreeNode path, type, text and possible label matches. Processing can take up to several hours.

Then you could multi-select labels and press Commit to replace the values. For blank entries it tries to create a new label in the currently selected (must be checked out in advance!) label file and language. If there are multiple hits for the text, it is marked by 3 asterisks, and you need to pick one on the right pane to use. In case you want to have your own labels created anyway, you could erase the recommended @SYS* or whatever entries, save the record then commit for a new one.

Please note that due to the nature of AX DB being Case Insensitive, it is possible that a label is recommended which has a different case, like you get label for ‘a’ instead of ‘A’.

The project can be downloaded from the DAXRunBase GitHub.

DAXRunBase / 2018-03-30 / AX 2012 / 0 Comments

Convergence is back as Microsoft Business Applications Summit

There was a blog article published yesterday by James Phillips, Corporate Vice President that we should be really excited about: Microsoft Convergence is back! The new show will be called Microsoft Business Applications Summit and will be held late July this year in Seattle.

Microsoft Business Applications Summit

Many of us – MVPs, partners and customers – have raised our concerns and the need for a dedicated event, where we could talk to each other, share our customer success stories and ISV solutions, and get dedicated access to various Microsoft teams involving our business. That was hard to get on events which are calling for a much broader audience with a mix of other products, where you would not necessarily bump into the right person to reach out for in case: you had a brilliant product idea to share; a huge functionality gap to address; or simply tell where the system could perform better.

Now our prayers have reached open ears and we have Microsoft Business Applications Summit. The format will most likely change a little bit from what we got used to, since a couple of additional products and technologies came onboard since the release of AX 2012. We have PowerBI, LogicApps, PowerApps, Azure and a lot more in the Microsoft stack of technologies surrounding our beloved ERP systems.

I am sure we will have the same depth of functional and technical sessions, partner/customer/recruiter Expo area, discount book store and all the nice additions available this year that none of you should miss. Especially with the new business goals Microsoft have set, about being on the latest version of the product for everyone very soon, Overlaying- and customization-free by only using Extensions.

DAXRunBase / 2018-03-29 / Dynamics 365 for Finance and Operations, MSDyn365FO / 0 Comments

New search tag for Dynamics 365 F&O EE – #MSDyn365FO

We all can feel the pain with the new naming of AX 7, being Microsoft Dynamics 365 for Finance and Operations, Enterprise edition. When you need to find documentation or blog posts it is really a pain to type that out. To help resolve the issue, we have received a new tag as #MSDyn365FO that we could use in our search terms, yay!

Please find the original announcement on MSDN Blogs.

The complete Microsoft documentation has been stamped with it, you can find it in the header. All future official blog posts will be tagged with it, and we encourage individuals as well to do the same for better relevance on Blogs, Twitter, Facebook, LinkedIn, or any other social media you are consuming.

#MSDyn365FO

This works great with search engines. If you want to find for example how to use services in AX 7, now you could just Google with that search phrase tag and you get back the correct result as first hit for “Service endpoints – Finance and Operations” on the Docs site:

#MSDyn365FO services development

http://lmgtfy.com/?q=%23MSDyn365FO+services+development

 

DAXRunBase / 2018-03-29 / Dynamics 365 for Finance and Operations, MSDyn365FO / 0 Comments

Picking list registration performance

We recently have implemented a new Picking application in our warehouse. Our slow performing statement e-mail has immediately highlighted that with our data volume the WMSOrder and SalesTable records were underperforming, taking 5+ seconds each time when the form was opened (close to 20). We needed to fix the Picking list registration performance.

WMSOrder

Apparently it is a standard AX form and table, but the link which they have been using is incorrectly defined, resulting in an InnerJoin for SalesTable unnecessarily.

Picking list registration performance

Also the field used for the join has no index, you should create one for WMSOrder.InventTransRefId to gain more performance.

After the adjustment it looks much better and performs really fast:

WMSOrder

 

DAXRunBase / 2018-02-27 / AX 2012 / 0 Comments

SQL data compression for Dynamics AX 2012 (Part 2)

It has been a while since I have touched up on SQL data compression in part 1 on my blog. It is time to re-visit the topic.

SQL data compression for Dynamics AX 2012 (Part 1)

Since that post Microsoft has published an excellent series of articles on how to apply compression within AX, or directly on SQL Server. It is a must-read blog post for everyone, so start there:

https://blogs.msdn.microsoft.com/axinthefield/sql-server-data-compression-for-dynamics-ax-0-blog-series/

Since JJ Food Service has a very large database, we have started applying compression to Production AX. Our SalesLine and CustInvoiceTrans has been between 250-350 GB size each! Our approach was to apply compression before a maintenance window using the Enterprise Edition license of SQL Server in ONLINE mode and using TempDB sorting, so it was running during business hours only adding a slight overhead to the system (mostly as disk I/O). It took 4 and 6 hours respectively, and space saving was more than 75% which is excellent.

Once the compression has finished and we were about to begin our regular Friday night maintenance, once the AX AOS, reporting and web services were all down, we could run the post-compression SQL script provided by Microsoft to populate the SQLStorage table. This is required for the Data dictionary synchronization step to recognize compressed indexes, so it would not drop and recreate them uncompressed.

Eventually we will consider compressing our whole database for Page level. The reason being is that Dynamics 365 for Finance and Operations, Enterprise edition in the background uses full page compression for the whole AX database. If you would like to use the upgrade scripts from 2012, even the documentation mentions that compression is a pre-requisite step:

https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/migration-upgrade/prepare-data-upgrade

As a result we have seen great performance boost for the tables involved and much lower numbers in the slow performing SQL statements, since more data could be kept in the SQL memory buffer.

DAXRunBase / 2018-02-27 / AX 2012, Dynamics 365 for Finance and Operations / 0 Comments

1 2 3 12