Here's what I'd like to share with you today:
The opening keynote today had one big message:
Today's the business needs it's productivity gain when they think of an idea. Therefor they want solutions delivered 'yesterday'. Once we managed to implement the required solution, the business has evolved and demands a equally evolved solution. Or in short: the customer life-cycle is getting shorter and shorter.
Constant change is what makes companies competitive today.
How do we plan to fit Ax in?
- Envision: understand customers challenges and translate them to match a CxO's vision
- Pre-sales: demonstrate the capabilities to meet business needs
- Implementation: quality development that quickly delivers business value
- Support: easily maintainable, adaptable to fast changing business needs
Life cycle services (LCS) is the key concept and the cloud based Azure solution is the future of all the above . It was repeatedly stated: with the Ax2012 R3 release, the foundation of the next generation is laid.
Ohyeah, the keynote session also had the most amazing novelty I've seen over the last two days: when using LCS to report incidents, it actually creates you a virtual Ax environment (hosted in Azure … where else) on the exact version/kernel you submitted, where you can reproduce and record the bug you're reporting.
Big applause in the Grand Ballroom of the Hyatt Regency hotel in Bellevue!
As mentionned before, MS makes a smart move here imho: the life cycle services and Azure concept actually enables them to collect telemetry (as they call it) about Ax. Or in other words: they get an excellent insight in how Ax is used, where customizations are applied, which functionality is heavily/not used, where performance issues occur, …. It actually looks like a win-win situation: the Ax partner gets a brand new set of tools to improve quality, monitor solutions, get updates quicker, …. While MS gets virtually all the info they need to take Ax to the next level. Because - as was stated subtle: 'some of these tools talk back to MS'. In the same breath MS stresses it only collects telemetry data: no actual business data is involved in all this in any way. The idea and intention behind this is to act preventative: spot potential problems and act on it . So if the user or customer then reports it, we can bring the message across it was already detected and picked for improvement or solving. Perfectly matches the 'big message' from the keynote.
Further on we attended the session on master data management. A short recap of what I've captured:
- based on change tracking in Ax
- pushes changes in the own environment to SQL MDS (master data service)
- pulls changes in other environments from SQL MDS
- includes conflict resolution
- support for different flavours on how you want to set up the sync (bi-directional, recurrence, …)
Next up was the 'optimize your Ax application life cycle with LCS' session. A few new things heard there:
- set-based support for queries (applicable with slow performing SSRS reports)
- Overcoming the parameter sniffing issue, do check this blogpost
- Batch task created at runtime apparently get the 'empty batch group' by default (unless intentionally set otherwise in code), therefor it is important to link this batch group to the appropriate server
- The possibility to use plan guides in SQL 2012 (I did not know about this) to directly impact the execution plan of a SQL statement without changing the actual query.
In the early afternoon the 'Create compelling designs - advanced reporting solutions in MS Ax 2012 R3' by TJ Vassar (by far the coolest session-host of the conference). What we've learned here was:
- the SSRS/BI team has a series of blog posts (here and here) on best practices and how to improve performance on SSRS reports
- R3 has some very useful improvements in the print management
- since R2 CU7 a compare tool on SSRS reports was introduced (to facilitate upgrading reports)
- A nice trick to provide any SSRS report with the data you want, or as TJ puts it 'to set you up for success':
- set the table(s) used in the report to tableType 'regular' (if not already)
- create a job to populate the required tables with the data you prefer
- comment out the 'super()' call in the processReport method of the DP class of your choice
- run your report in visual studio
- Don't forget to undo the commenting-out and table-type stuff after you're done
- A 'refresh report server' entry in the Tools > Caches menu in the developer workspace
- improved report deployment (now does a delete + create instead of update … which eliminates various issues with the report not reflecting the applied changes) + a flag to re-activate the default (update only) behaviour
And then there was the 'Technical deep dive - warehouse management' session. OMG, impressed what MS did there. Looks really great and would for sure solve some performance issues we experienced over the last years (especially when using serial numbers). I'm not a functional guy, but let me try to summarize what I made out of it:
- Pre Ax212 R3: all dimensions were specified at the moment of reservation, this made the complexity of optimizing high
- From R3 on, the reservation system is designed to support WHS (warehouse hierarchy system):
- a warehouse can be set to be WHS enabled or not (all below implies WHS to be 'on')
- the location dimension is a key player in WHS
- inventory dimensions above the location are set during order entry (in case of SO for example)
- inventory dimension location and further down are decided by WMS when it's time to do so
- this results in a physical reservation without a location
- the 'work' concept is introduced: 'work' is what, where and how an action in the warehouse needs to be done (typical types of work would be: pick, pack, move)
- for 'work' to exist, all dimensions must know
- 'work' assumes it can update the reservation hierarchy from the location level and down
- 'work' has it's own set of inventory transactions
- based on source documents (=demand) a load is generated into a shipment (=search strategy) and further into a wave (=work template)
- a wave consist out of work and will - once completed - update the source document(s)
- a hierarchy defines the order of the inventory dimensions (for example: batch above or below location) and helps to decide which items will be used for the 'work' in the warehouse
- an item can have one hierarchy per company
This is all pretty scary and freaky if you hear it for the first time. But I'm sure once you get your hands on some slides of this, it will all become much more clear. This does requires a whole new mindset compared to WMS was working in pre Ax2012 R3 versions. Not only for the consultants, customers and users, because the inventory data in Ax needs to be interpreted in another way now at some points. But also for the developers since the new WHS approach comes with a brand new data model to support it. Nevertheless, the extendability of the WHS framework was also illustrated in a live demo. It looks very promising if you'd ask me. A few questions regarding upgrading and data migration from the audience were raised. In that area the team was looking a the possible solutions.
Last day at the conference tomorrow, looking forward to the 'Ask the experts' sessions and the 'Next generation servicing and update experience in MS Dynamics Ax 2012 R3'.
Also worth mentioning: for those who have access to InformationSource, the first recordings from the conference are available!