Microsoft Dynamics AX – Release to Web (RTW)
Congrats to the Microsoft Dynamics AX team. They had completed the Release to Web (RTW) version of Microsoft Dynamics AX last Monday. This version has build number 7.0.1265.3015 and has been made available for deployments now. A downloadable virtual machine (VM) will follow soon.
Microsoft Dynamics AX – Trial mode
In December 2015, Microsoft released the preview of the new Microsoft Dynamics AX. Partners and customers can now learn what the new cloud based version could bring you. You can deploy a cloud hosted environment from Lifecycle services. When this is complete you can start browsing and learning how to use the cloud based version of Microsoft Dynamics AX. Probably you have already heard about the task guides. There is a way to start your deployed environment in a Trial mode and have dozens of pre-loaded task guides available. This post will tell you how.
Trial mode
When you open your Lifecycle services project, you can browse to the Cloud hosted environments. On the details pane you find some links to start AX using several cloud services, but also an option called Login to trial experience.
When you click this link, AX will be started, but you also get some additional dialogs. The first one is a question about the industry of your company and your role within the company.
When you click next, you can watch a movie what partners think of ‘AX 7’. This is a movie which was already published last year July on YouTube. You probably have seen this already. If not, this is your chance!
Now you can use the arrow to continue to the next pages. This is a real nice short summary of user experience changes in Microsoft Dynamics AX.
Finally you can click Start to open Microsoft Dynamics AX in the Trial mode. Within this mode a Getting started section will be visible on the default dashboard. This section contains many Task guides to learn using and navigating Microsoft Dynamics AX. These task guides are loaded from Lifecycle Services (LCS).
Now you can pick any task guide to open and start the guide to have a guided tour on the new Microsoft Dynamics AX.
There is more
When you deploy your cloud hosted Dynamics AX environment, you can choose which Business Proces Modeler (BPM) library should be used for the Getting started section. The default is based on the APQC Unified library. If this one is not selected, you might get an error stating that Dynamics AX cannot find the getting started library.
You can also start the trial mode by adding ?mode=trial to the URL for Dynamics AX. This will directly start the Dynamics AX preview with the Getting started section without being prompted with initial dialogs as mentioned above.
That’s all for now. Till next time!
Session date in Microsoft Dynamics AX
Accountants would like to easy enter corrections at a month end date. For this reason in previous versions of Microsoft Dynamics AX there was an option in the Tools menu to change the session date and time. However this menu is not implemented in the new cloud based Dynamics AX, the option to change the current work date is still available. The option is even closer than you might think.
Microsoft Dynamics AX Client – One for all
The ‘new’ Microsoft Dynamics AX is now a web based application. There is now a “One for all” client. When you look at previous versions like Microsoft Dynamics AX 2012, there are two features which were also web based. This blog post will inform you about the Enterprise portal and Warehouse Mobile Devices Portal features in the new version.
The new Personalization options – part 2
A lot of investments had been done by Microsoft to get a new attractive user interface for Microsoft Dynamics AX using modern browsers. As there is no native client, also the personalization options are reconsidered. In previous previews there was an option to change the theme colors and a setting to display more or less information which actually manages a kind of zooming. With the latest preview (CTP8) there is a new way of doing form personalizations. In part 1 I explained some basic user options. In this second episode I will inform you about form personalizations.
(meer…)
The new Personalization options – part 1
A lot of investments had been done by Microsoft to get a new attractive user interface for Microsoft Dynamics AX using modern browsers. As there is no native client, also the personalization options are reconsidered. In previous previews there was an option to change the theme colors and a setting to display more or less information which actually manages a kind of zooming. With the latest preview (CTP8) there is a new way of applying personalizations. In this part I will explain some basic user options. Part 2 will inform you about form personalizations.
The new Microsoft Dynamics AX (aka AX7)
A new era starts. Microsoft has released its public pre-release of the ‘new’ Microsoft Dynamics AX. This version was also code-named ‘Rainier’ and ‘AX 7’. Together with this release the information is no longer confidential. In this post I will provide some details to get access to this preview and will share my personal favorite enhanced functional features.
Tips on AX 2012 Security Development Tool – Part 8
Last year I posted some tips on the Microsoft Dynamics AX Security Development Tool. Recently my colleague Boye Walters also wrote an episode and named it Tips on AX 2012 Security Development Tool – Part 7. Well… he fanned the fire on his topic and here is another edition: Tips on AX 2012 Security Development Tool – Part 8; focusing on the view type Duties and Privileges.
SQL Trace Flag for Dynamics Ax: Do we need it?
What is a SQL Trace Flag?
A SQL Trace Flag is an indicator that changes the way the SQL engine reacts. Why would we want to that? Well because the DBA always knows best, uh well actually because the standard behavior of the SQL engine will not always give the best possible performance for a Dynamics Ax ERP. Which SQL Trace Flag could be of interest for a Dynamics Ax Database? Well I found 5 that work great for some situations. (-T1117 -T1224 -T2371 -T4136 -T4199). Yes I said “some situations” because which SQL Trace Flag can be enabled depends on lots of things, and should be decided carefully. Let me inform you about these 5 SQL Trace Flags.
SQL Trace Flag T1117: TempDB in multiple files
When you divided the TempDB in multiple data files to match the number of CPU cores as recommended by Microsoft for Dynamics AX, SQL Trace Flag –T1117 comes in handy. It will change the standard behavior of auto growing database files in a file group. The standard behavior is to auto grow one of the files at a time. With this SQL Trace Flag enabled all files in a file group will grow simultaneously.
For example:
1 db divided in 4 data files with an initial size of 100MB and an auto grow of 20MB each. When your reaches the 400MB and all 4 files are full, one of them will auto grow to 120MB. But the next data will be written in the file with the freest space. Guess which one that will be…. The one that grew off course. Now the same example with SQL Trace Flag –T1117 globally enabled: When your reaches the 400MB and all 4 files are full, all of them will auto grow to 120MB. The next data will be written in the file with the freest space. Guess which one that will be…. All of them.
Should we enable this SQL Trace Flag this minute?
No, there is a drawback. This SQL Trace Flag is great for the TempDB but it affects all data files of all databases in the instance. They will simultaneously grow if they’re in the same file group. So think before you act, if you don’t want the files to grow simultaneously put them in different file groups, or don’t enable this SQL Trace Flag.
More information on this SQL Trace Flag: Microsoft Dynamics Ax Performance team
SQL Trace Flag T1224: Running big operation during the day.
When running big operations (5000+ rows) during the day, like master planning, they could be blocking your users from doing their daily business. This is due to lock escalation. SQL locks a page to make sure only one process effects that page at a time. When a certain number of pages of a table are locked by the same process SQL can decide to lock the table if this is less costly on memory. This will make all requests for pages in that table wait till the first process is done. SQL Trace Flag -T1224 Disables lock escalation based on the number of locks. However, memory pressure can still activate lock escalation.
Should we enable this SQL Trace Flag this minute?
No, if you don’t need to run big operations simultaneously or with users in the system, you’re probably free of blocking by lock escalation. And lock escalation will have a positive effect on the performance of your SQL. So please plan large operations carefully outside office hours where possible.
SQL Trace Flag T2371: Keeping statistics up-to-date on large tables
The SQL query optimizer uses statistics to create query plans that improve query performance. Performance of Dynamics AX depends largely on up-to-date statistics. That’s why it is recommended to set “Auto update statistics” on. But when will the statistics be updated? Well when 20% of the rows are updated/inserted. This SQL Trace Flag is only available on SQL Server 2008 R2 SP1 and all later versions. There was a small update to this SQL Trace Flag in SQL Server 2008 R2 SP2 and SQL Server 2012 SP1 that makes it more precise.
For example:
On a table containing 1,000 rows the statistics are updated when 200 rows are updated. And the same table after a while containing 1,000,000 rows the statistics are updated when 200,000 rows are updated. Did you read that right? Yes you need to update 200,000 rows till the statistics are updated. Imagine even larger tables. We all know that in an ERP like Dynamics AX these large tables are pretty common. Microsoft also recognized that and released SQL Trace Flag –T2371. This SQL Trace Flag will make the 20% rule a dynamic percentage rule that kicks in at 25,000 rows.
For example with SQL Trace Flag –T2317 globally enabled:
SQL Server will update statistics on a table containing 1,000 rows when 200 rows are updated. And on a table containing 1,000,000 rows the statistics are updated when 32,000 rows are updated. In a chart the dynamic percentage rule looks like this:
Should we enable this SQL Trace Flag this minute?
No, first examine if your database has a lot of large tables (above 100.000 rows is a good rule of thumb). Without large tables this SQL Trace Flag is useless.
SQL Trace Flag T4136: Parameter sniffing optimisation
Dynamics AX uses parameterized SQL statements if we don’t use the ‘Forceliterals’ parameter in AX. I personally have never seen a developer who fully understood the working of ‘Forceliterals’ let alone use it in code. It even is best practice not to use it.
Why? Well when using parameterized SQL statements the query plans are cached and reused. SQL Server will use one plan for all similar queries instead of compiling each query. This can significantly reduce CPU overhead and improve throughput. That sounds like a good thing and it is.
But there is a drawback, if the queries are complex and/or the data distribution on the columns against which the parameter is compared vary, the cost of different plan choices can change. A plan that is optimal for one parameter value may perform poorly for another value. The query optimizer still needs to estimate the selectivity and cardinality of predicates using a parameter value. In Dynamics AX especially from version 2012 on the queries are almost always complex.
One way to avoid parameter sniffing is to put the OPTIMIZE FOR UNKNOWN option to all SQL statements leaving AX. Another way is to enable SQL Trace Flag -T4136. This SQL Trace Flag is only available on SQL Server 2008 R2 Cumulative Update 2, SQL Server 2008 SP1 Cumulative Update 7 and SQL Server 2005 SP3 Cumulative Update 9 and later.
For example:
If we have 2 companies in our Dynamics Ax Application and one only 2 customers and the other a couple thousand. The following could happen: if the first query we send to loop through customer is done in the company with a couple thousand customers , it could look like:
SELECT * FROM CUSTTABLE WHERE DATAAREAID = ‘@P2’
And SQL Server Engine will solve it by doing a full table scan because almost all records are needed.
Next time we do the same loop in the other company due to the parameter on dataareaid (and partition in AX2012) the query is identical. That is why SQL Server will solve it in the same manner, with a table scan, where a page scan could be more appropriate. If only SQL could store a queryplan per dataareaid….
Should we enable this SQL Trace Flag this minute?
No, because Microsoft provided a way to use parameters but not for dataareaid (and partition in AX2012). This makes SQL server store a queryplan per dataareaid, making SQL Trace Flag T4136 completely unnecessary.
AX2009 SP1: KB 3000700
AX2012 RTM: KB 2920058
AX2012 R2: KB 2969229
You can find more information on the blog of Dynamics in the field.
More information on this SQL Trace Flag: Microsoft Support on SQL Trace Flag T4136
SQL Trace Flag T4199: Query execution plan updates
Microsoft turned off All query execution plan updates/hotfixes by default to make sure that an update will not affect the way your query executes. Several of these hotfixes will positively boost performance for Dynamics AX. Microsoft controls all future query processor fixes that are scheduled to be ‘On-By-Default’ in a later release with trace flag t4199. This SQL Trace Flag is only available on Cumulative update package 6 for SQL Server 2005 Service Pack 3, Cumulative update package 7 for SQL Server 2008, and Cumulative update package 7 for SQL Server 2008 Service Pack 1 and all later versions.
Should we enable this SQL Trace Flag this minute?
No, there is are 2 drawbacks. 1: Your DBA will send you off to an insane asylum because of the next drawback. 2: If you enable this SQL Trace Flag you enable all future hotfixes/updates to the query execution plans, because we all know you’re going to forget about enabling this SQL Trace Flag.
More information on this SQL Trace Flag: Microsoft Support on SQL Trace Flag T4199
Security: Past, current and future
When you read the title of this blog post you might think this post is about changes during the lifecycle of Microsoft Dynamics AX 2012. Or maybe it is related to the security framework in older versions (AX 2009), the current version (AX 2012) or the new Microsoft Dynamics AX (aka ‘AX 7’). Well, it’s not. This post will tell you about a standard feature to restrict access on past, current and future records for tables which supports date effective data. It is called “Date effective policies”.