Dynamics AX
  RSS Feed  LinkedIn  Twitter
Want to turn you're data into a true asset? Ready to break free from the report factory?
Ready to gain true insights that are action focused for truly data informed decisions?
Want to do all of this across mutliple companies, instances of Dynamics and your other investments?
Hillstar Business Intelligence is the answer then! (www.HillstarBI.com)

Hillstar Business Intelligence for Microsoft Dynamics AX and NAV on Mobile, Desktop, Tablet


Let us prove to you how we can take the complexity out of the schema and truly enable users to answer the needed questions to run your business! Visit Hillstar Business Solutions at: www.HillstarBI.com

Friday, July 29, 2011

Dynamics Community Article - Just Because you can, doesn't mean you should

Well I finally got back to my monthly article on the official Microsoft Dynamics Community site. I've wanted to before now, but have had real trouble working it back in.

I should be able, though, to continue back on a monthly basis of writing for this column, which is more high level typically than how deep I go in some of my post here. To kick this back off, here is the link to my latest column entry: Just because you can, doesn't mean you should

I hope the point is well made, and that it clear, business value, should drive what scope exists around an AX 2012 project.

That's all for now, but check back soon as more to come! Till next time!



"Visit the Dynamics AX Community Page today!"

Labels: , , , , , , , , ,

Wednesday, July 27, 2011

Microsoft Dynamics AX 2012 - A Dive Into Services



With the release of Microsoft Dynamics AX 2012, services are a key role that enable many parts of AX. This includes from Office, to internal use, to extending and working with complex datasets, and even to expose custom busienss logic.

To help better understand services in AX 2012, lets first take and understand what services means. There are three distinct service context, which are.:
  • System Services - These are services that come as part of AX 2012 offering,
    like the Metadata Service, User Session Service & Query Service
  • Document Service - This carries similar concepts and design on previous version of AX, in that a document service is meant to wrap complex datasets, for CRUD based operations. There are some differences now, and we will review these.
  • Custom Services - These are meant to wrap simple datacontract needs, or to expose custom business logic. I will note here: These are never recommend to handle complex data operations. Use Document services for that.


System Services
System Services are meant to give a window into the Dynamics AX 2012 world. Part of that world involves Query Service, as well as the Metadata Service. These two services are meant to be very specific uses. The Query Service is meant to take and offer an ad-hoc ability to query datasets, from AX 2012. Now I must say this should be used with caution. If this query, or integration is meant to be re-used in any fashion, you should build a query object, and create a document service from it.

There is a pretty decent example on MSDN, that shows how to use a Windows Form, and Dataviews / grids, for showing off the power of AX 2012, and the Query Service, located here.: Walkthrough: Calling the Query Service with a User-Defined Query [AX 2012]

The meta data service is meant to give the ability for other LOB applications to query against to allow AX 2012 to self describe information about objects that reside within the system. Here again, the use should be limited.

Document Services
Document Services are meant to truly be the path, in which any real complex operations of CRUD, or Create, Read, Update & Delete, operations are meant to be executed via. The idea here, is that a Query Object, or set of Query objects created within the AOT, represent a document service, that is deployed, and consumed by either AX itself, or other LOB systems.

This includes both master data, like EcoResProduct (or Products), as well as Customer, Vendors, and event transactional data like Sales Orders and purchase orders. This has improved a lot since a AX 2009, and the ability to quickly deploy such services in AX 2012 is now such an easy task.

Custom Services
Custom services represent, to most C# developers, something that has been common for a little while. This is, DataContracts, and Service Oeprations. As mentioned above, this is not meant to represent complex data opertaions, but instead, to expose simple data contracts, as well as custom business logic through service operations.

Finally, There are some guidelines when thinking in terms of use of services, which include design patterns around "chatty" services and integrations.

Where possible, it should always be considered, to take and perform the least amount of calls as possible. This means instead of sending a single Entity Object that represents a Document Service create, for example, for a given table, per service call, the better approach would be to build up a collection of said objects, with a single call for the entire collection.

Of course, this might not be always applicable, where you look to transactional data needs, where the very nature of the integration leans towards possible one-off single calls. Still having this kind of design approach in mind, will help in *not* creating possible performance issues around your services related integrations and needs.

There are also other topics, that I will continue to dive into from this post, including the use of Query Objects being represented as OData feeds, and a deeper dive into the Business Operations Framework and the use of the SysOperations for enabling service use to replace the RunBaseBatch framework for business logic and reports.

That's all for now, but check back soon as I dive deeper into each of these topics, and show off real world examples for each. Just keep in mind, the idea is to abstract and extend via SOA, or service-oriented architecture. There should never be a reason, now, to ever go driectly to the AX 2012 database. All interactions, should always take place via the application layer, and typically through services.

Well that's all for now, but check back soon, as more to come! Till Next time!



"Visit the Dynamics AX Community Page today!"

Labels: , , , , , , , , , , , ,

Monday, July 25, 2011

Spotlight: Dynamics AX Musings



I thought I would start off this week, with a blog spotlight. It's so important for the growth of the Microsoft Dynamics AX Community at large, for those that have been working with the product, and can give in depth knowledge tidbits, to write and share their knowledge.

With that, I would like to highlight: Dynamics Ax Musings

This is the blog by Joris de Gruyter who is a true veteran of the Dynamics AX world.

Joris starting really sharing his knowledge last year, and has spear headed such wonderful projects, like the open-source, codplex project, Dynamics AX Build Scripts (And's it's TFS impacts), as well as sharing with us a great series of post on Microsoft Dynamics AX 2012.

His in-depth cover of very specific, developer and technical engineer related topics, are exactly what is needed, and I hope you would bookmark his blog, and check for regular updates, as well as encourage Joris to continue in his efforts to help spread the good word of the brave new world Microsoft Dynamics AX 2012 represents for all of us!

A great series that Joris just finished up was on AX 2012 Models & Events




Joris really helps bring home some of the great new features, that makes Microsoft Dynamics AX 2012, a truly powerfully simple, Generational Shift in ERP!

That's all for now, but check back soon as so much more to come! Till Next time!



"Visit the Dynamics AX Community Page today!"

Labels: , , , , , , , , ,

Tuesday, July 19, 2011

Microsoft Dynamics AX 2012 - At your Service



Yesterday, I talked about Business Operations Framework for Microsoft Dynamics AX 2012.

This touched on a new concept, that will take us away from RunBaseBatch, and other concepts in AX, and move us towards some of the new features, that have never existed before, with the SysOperations Framework, and into true SOA approaches within, and extending AX.

Today, a new post from Microsoft, that continues a series well into the launch event for Microsoft Dynamics AX 2012, has arrived. I'm talking about the following post.: At Your Service: Microsoft Dynamics AX2012 Integration and Web Services


Caption: In Microsoft Dynamics AX 2012, inbound ports provide a logical grouping of services, which model specific integration points between the ERP solution and an external system.


From the post.:
"Standards-based web services are undoubtedly the programming model with the widest possible reach across platform boundaries. In Microsoft Dynamics AX 2012, we have greatly emphasized the role of services, both in integration with other line-of-business applications and as a programming model to expose the rich functionality of the application. We believe these enhancements will benefit our customers by significantly reducing the time it takes to develop custom applications and by enabling the enterprise resource planning (ERP) system to reach the entire organization."

Service are for sure the future with development, inside Dynamics AX, as well as extending AX, and other LOB applications reaching into AX. This is the vision and the desired goal.

Embracing this now, as an Architect, Developer, and general AX consultant or company, will help you and your clients reach their full Dynamic Potential that drives business value, while taking advantages of the latest technology advancements.

Is critical, that we take into consideration all that Microsoft Dynamics AX 2012 brings to the table. Doing so will help shape the business world, from the older, strict, and cumbersome business systems of the 90's that so many Dynamics Competitors shove down their clients throats, and bring to the forefront what end users, and business users need, today. Dynamic, Flexible & Scalable business processes, that adapt and grow, as the business that implement and need them.

That's all for now, but check back soon, as a whole lot more to come, including interviews, blog spotlights, continued dives into AX 2012, and more! Till next time!



"Visit the Dynamics AX Community Page today!"

Labels: , , , , , , , , , , ,

Monday, July 18, 2011

Microsoft Dynamics AX 2012 - Business Operations Framework and the start of Services Abstraction with AX



With Microsoft Dynamics AX 2012, a new system service type exists. This is the Business Operation Framework (BOF) [AX 2012]

From the MSDN Home:
"The Business Operation Framework service is one of the system services exposed by Microsoft Dynamics AX and that adheres to the Windows Communication Foundation (WCF) protocols and standards. This service enables you to ... "

I love the "..." because, this shows the MSDN home for the new Business Operations Framework (BOF), is not actually complete. What's important to understand however is what this represents.

This is the start of what I talked about years ago with Lachlan Cash for Microsoft, with the following post.: WCF: The Enterprise Service Bus for Dynamics AX and the rest of the Microsoft Stack.

What I mean by this, is the fact, that the new Business Operation Framework it the fruit of all the work that Microsoft has invested in being able to have SOA communication between modules, and specifically between elements of code within Microsoft Dynamics AX 2012 and beyond.

This is making use of AIF, and Services, within the context of AX itself, and doing so, is the stepping stones to enabling the future flexibility of being able to have a true hybrid cloud that takes and enables bits and parts of AX to live on-premise, or in the cloud, and to the end user they have no clue which is which, because it does not matter to that level.

Understanding the impact of what this new development means, and what this offering can enable, is so very important today. This means, that new development, can take advantage of such offerings, and there is much more benefit than just future enabling your scope of work.

Check out the following MSDN articles.:

Just check this out.:
"Business Operation Framework (BOF) lets you run services on Microsoft Dynamics AX using the Windows Communication Foundation (WCF) framework. Business Operation Framework services have a clear separation of responsibilities between tiers. Dialog boxes are presented on the client tier, execution occurs on the server tier, and parameters can be accessed by both the client and server tiers. Business Operation Framework services can also increase efficiency by reducing round trips between client and server. "

And...
"Business Operation Framework services are flexible. BOF services can be executed in a job, as menu items, and as batch operations. BOF Services can also be executed synchronously or asychronously. "

I plan on taking this topic a lot further, with giving some real world examples, and comparisons with this approach, vs. standard development and execution. I hope this has really peaked your interest, and this design approach should be consider for use with anyone doing any development work within Microsoft Dynamics AX 2012.

That's all for now, but check back soon, as so much more to come! Till Next Time!



"Visit the Dynamics AX Community Page today!"

Labels: , , , , , , , , , ,

Friday, July 15, 2011

Microsoft Dynamics AX 2012 - MorphX Drag and Drop, but no fields?!

Alright, so one of the cool things that I wrote about recently, for Microsoft Dynamics AX 2012, was around the new Type Hierarchies, and the Type Hierarchy Broswer and it's use.

In looking at this, however, I was questioned about the ability to be able to say, create a new Query object, and being able to drag fields over from the table, into the new Datasource. To help bring this topic home, lets look together and one of the new datasets in Microsoft Dynamics AX 2012, the EcoRes* tables.

If we go to the EcoResProduct table, right click and go to the type hierarchy browser for this table, we can see, that it extends from common, and from it extends the EcoResDistinctProduct table object.



Now, lets take and open an AOT window, and browse to the EcoResDistinctProduct table object, so that we can see what kind of fields we have to work with, directly from the object within the AOT tree itself.



As you can see from above, we have no fields actually, within the AOT object, that represents the EcoResDistinctProduct table, to actually reference directly or work with directly. So what can be done then, for dragging and dropping fields, on datasources for example?

To show this off, we will need a new custom Query object. This will be the same, however, for any datasource for a form, report, etc. etc. So lets take and create our new custom Query object. Once we have that, take and drag and drop the EcoResDistinctProduct table from the AOT window, into the datasources of the new custom Query as shown below.



In doing this, we see that we now have the EcoResDistinctProduct table as our datasource, and again no fields, when expanding the fields section under the Datasource node. Now here, you could manually add a new field, but that's no fun, now is it? Enter the power of AX 2012, and the continued use of MorphX!

Simply go back to the AOT window, and expand the fields of the EcoResProduct table, and drag over, say the DisplayProductNumber field. Drop it into the fields section of the EcoResDistinctProduct datasource, and bang! We now have the DisplayProductNumber field, for the EcoResDistinctProduct datasource and table, and not the EcoResProduct table.



Looking at the properties, below, you will see this is actually the case, as Morphx and the power of AX 2012 still handles this for us, and understands that we want that field, for the Distinct products, and not the products itself.



That's all for now, but check back soon as a whole lot more to come! Till next time!



"Visit the Dynamics AX Community Page today!"

Labels: , , , , , , , ,

Thursday, July 14, 2011

Microsoft Dynamics AX 2012 - UnitOfWork Class and it's usage

With the release of Microsoft Dynamics AX 2012, a new class is going to be introduced that did not previously exist. This is the UnitOfWork Class. This object, being a system class, contained within the System Documentation, is described by Microsoft as.:

"Giving the ability to manage the operation sequence and transaction integrity for row-based database operations."

In short, this gives the ability, for any insert, updates or deletes, that might need to take place for a set of rows, of data, and register that with a given instance of the UnitOfWork class. After performing, and gathering up all the needed inserts, update or delete actions for a given set of rows of data, a sigle method call can be used to perform said updates.

This class, in turn, without the need for the developer to worry about, take and make sure the correct ordering and sequence of the given data updates are carried out properly. This then, means that this new class helps to make sure, that the integrity of transactions are safe, while developing code that performs such actions on a set of possible data needs.

To help bring this concept home, I have created the following short, dive into the use of this class, and how it can be used with your own needs of working with row data inside Microsoft Dynamics AX 2012.

To start we will need to make sure and have a table to work with. For this, I will create a new custom table, in which to work on. The idea, again, is to prove out and show the theory behind the UnitOfWork class. Once it's clearly understood the purpose, then the usage can be applied as needed when working with data.



For this, I created the above UOWTest table, that has two fields as part of it's make up. Those are two string based fields, called 'Id' & 'Name'.

Now that I have the table to work with, next I need a block, or unit of code, in order to work with this table. In the past, the only way to perform insert's, updates or deletes, a developer would have to take and make use of ttsBegin,ttsCommit & ttsAbort to perform such actions.

These are still around, and you can still make use of them, however, with the UnitOfWork class, this is handled for you, through a single method call of UnitOfWork.SaveChanges();

So lets take a look then, and see some code, that makes use of the UnitOfWork, in say an insert fashion.



As you can see above, I choose to place my block of code in a job called 'TestUOWJob'. Looking at the make up of this job we can see that I have 3 variables. A UnitOwWork variable, a variable that represents my new test table as well as an int
variable.

Since I am performing an insert, I choose to do a for() loop, that should in turn create ten records in the new table. In order to achieve this, I am simply, taking and working with the table variable, by setting my two field values, and then calling upon the initialized uow variable, for '.insertonSaveChanges(tUOW);'.

This is passing in the given record, or row of data, into the UnitOfWork object, and slating that record, for later when code calls the saveChanges(). When this is done the UnitOfWork object will in turn iterate through the given types of deletes, updates or inserts that have been marked for *onSaveChanges() method calls.

So lets take now and try to execute this block of code. In clicking on the run button of the job, instead of getting my desired results, I get the following error message.: "Error - Cannot add a record in table UOWTest (UOWTest) with Unit of Work. The UnitofWork class should be instantiated on the server to perform any operation."

What gives? Well, the is actually by design, since the context of which a given UnitOfWork object is meant to operate only at the server level. This can not operate within a client side context at all. Since that is the case, then we can either wrap our code block in a class that is set to run at the Server, or within a server static method, that will execute then the given unit of code at the correct server side context.

In order to achieve this, I have now taken my block of code that was in a client side job, and moved it to live within a class, and a static method off of that class, with the server keyword as part of the method signature.



I then simply, take and make the following call: UOWTestClass::executeUOWTest(); Which in turn gives us are unitOfWork, proper context execution, so that we get the full amount of data, as shown in the following screen shot.:



With this, the same approach works for both update and delete operations, including the ability to mix these operations within a given instance of the UnitOfWork class.

The benefit from doing so, in turn reduces the need for the developer to keep up with transactions within the given code block, and reduces the effort therefore needed to achieve working with row based data, for insert, update & delete operations.

That's all for now, but check back soon as more deep dives into AX 2012 continue, including I have a review of the keynote speech from Microsoft COO Kevin Turner, while at WPC11. Till next time!



"Visit the Dynamics AX Community Page today!"

Labels: , , , , , , , ,

Wednesday, July 13, 2011

Microsoft Dynamics AX 2012 - Launch Event, Training Plans & WPC 2011



Yesterday brought a lot of great information published around Microsoft Dynamics AX 2012. These are all very important items, and so I will cover them in this single post for today.

To Start, the Microsoft Dynamics AX 2012, Virtual Launch Event has been released. You can find out more, by going to the event's page here.: Microsoft Dynamics AX 2012 - Virtaul Launch Event.

Registration is now open for this event, which will take place on Sept 8th, of this year! There is a nice little countdown clock, which lets us know that we are now 56 days, as of this blog post.

You will get to.:
  • Hear from Microsoft executives
  • See product demos
  • Listen to customers and partners
  • Watch product tours, based on your business, industry, or role
  • Collaborate with your peers through feeds and community forums
  • Chat with product experts and sales associates


This should prove to be an amazing virtual launch event, and anyone that is interested or is apart of the Dynamics Ecosystem in anyway, should register and set time aside to attend this VLE.

Moving forward, we also have the new learning plans, that were first published on the 7th, and were updated yesterday. You will need PartnerSource access to get at the following page.: Microsoft Dynamics AX 2012 Product Based Learning Plan

The learning plans are broke up into the following area's.:
  • Introduction to Microsoft Dynamics AX 2012
  • What’s New in Microsoft Dynamics AX 2012 - These courses provide an introduction to each topic area, which include: Supply Chain Management and Manufacturing; Finance, PA, Case Mgmt., HRM and Public Sector; Technical in Microsoft Dynamics AX 2012 for Implementation; Technical in Microsoft Dynamics AX 2012 for Development
  • Financials Track
  • Supply Chain Management Track
  • Application/Foundation Track
  • Manufacturing Track
  • Services Track
  • Public Sector Track
  • Installation & Configuration Track
  • Development Track
  • Application Platform Track


So there is a lot of training plans and tracks listed there. If you can see though, this is broken down into: Whats new, Functional or Application, the five industry sectors & finally the technical tracks.

The majority of the learning plans that actually have details and links, to training that can be made use of are still within the technical & what's new area's. The Application tracks and the Industry Sector tracks are still being developed, and are not ready for release, beyond beta, as of yet.

This page however, should be bookmarked, and checked weekly moving forward, as more and more of the learning plans are updated, and courseware is released.

This brings me to my final part of this three part post, which is #WPC11, that is currently knee deep in keynotes, and information.



If your like me, and not able to attend this year, that's ok, go to www.DigitalWPC.com

There is all kinds of great digital content, and great news that is coming out for Microsoft Cloud Computing, Azure, 365 and Dynamics. So of these topics, I will be taking and covering on other post, however I wanted to make sure, and point out this great resource, that you should check out now.

That's all for now, so much to cover, but so much to be excited about. We are living in a great time for the Dynamics Ecosystem, specifically for Microsoft Dynamics AX 2012, and more.

Make sure to check back, as I take and continue the dive into more and more information for the Microsoft Dynamics Ecosystem. Till next time!



"Visit the Dynamics AX Community Page today!"

Labels: , , , , , , , , ,

Back at it again...



Well, I'm back from vacation, and it's time to blast off into full steam with deep focus on Microsoft Dynamics AX 2012.

Vacation is always great, to get some downtime with my family. My girls love the beach, and the older they get the more they like the actual beach itself. Something about the ocean that always gives me a freshed look about life.

One of the coolest things this year, was the fact we got to watch live, the last ever shuttle launch, the Atlantis, blast off into space! We also got to hear the sonic boom afterwards, as it broke the speed of sound.

It was so very cool, and something my little girls, can always say they were there, to see the very last one. Here's to safe travels back home to the crew of the Atlantis, and the rest of those on board the ISS space station.

Here's also, to a great second half of 2011 to everyone. Can you believe it's already half over? Time flys by so fast sometimes.

Well check back, as I have all kinds of post coming out soon, as we continue to deep dive into Microsoft Dynamics AX 2012, and more!



"Visit the Dynamics AX Community Page today!"

Labels: , , , , , , , ,

Friday, July 01, 2011

Adeaca Announces the Release of Advanced Projects 4.0 for Microsoft Dynamics AX



Adeaca recently launched it's Advanced Projects 4.0 for Microsoft Dynamics AX.

The full press release, on this can be found here.: Adeaca Announces Advanced Projects 4.0 Release for Microsoft Dynamics AX.

From the Press Release.:
"Advanced Projects with Dynamics AX is a one‐stop solution that is capable of replacing a host of specialized best of breed solutions like project; estimation, scheduling, resourcing, costing and reporting applications. Migrating to a single integrated project management system not only reduces IT costs it also greatly improves project visibility, automation and collaboration."



Daniel Bevort, President & CEO of Adeaca describes Advanced Projects 4.0, as the following.:
“The release of Advanced Projects V4.0 represents a clear continuation of our mission to deliver best in class fully integrated solutions to project driven companies"

The following list, is a set of links and a bit of information, for the different types of verticals that Advanced Projects focusing it's feature set for.:
  • Project Manufacturing and Engineering - Advanced Projects PME is designed for project driven; manufacturing, service and engineering companies, that are faced with the challenging task of managing large and complex projects, often with a low degree of project repeatability.

  • Civil Engineering and Construction - Advanced Projects CEC for Civil Engineering and Construction provides a single consolidated solution that enables you to effectively manage all critical project components, and provides a holistic and project centric approach to efficiently managing all parts of your projects life cycle, operational as well as administrative.

  • Professional Services - Advanced Projects PSO™ delivers mission critical capabilities specifically designed for the industry, with focusing on increasing project profitability and resource utilization by effectively managing all critical business processes within a single integrated application.




If your a company, or partner, that focuses in on these vertical area's, I would recommend checking Adeaca, a sponsor of this site, out. Let them show you how Advanced Projects can help your company, or your clients.

You can signup to see a recorded demo of Advanced Projects in action, with the following link.:


That's all for now. I hope everyone enjoys their 4th of July week! I will be gone, but might sneak in a post, closer to the end of next week, and will be back in full force the week after.

Till next time!



"Visit the Dynamics AX Community Page today!"

Labels: , , , , , , , , , , ,


Copyright 2005-2011, J. Brandon George - All rights Reserved