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, January 18, 2013

My Review of "Microsoft Dynamics AX 2012 Services"





I hope everyone has had a great and productive Dynamics week thus far! I know it's a busy time of year for projects, and changes that a new year brings with it. I wanted to take the time and focus this week on a book I was asked to review. What I'm talking about, is the "Microsoft Dynamics AX 2012 Services" book that was recently released.



This was a book I was ready to see released, and one that I wanted to put to the test. It's a topic that needs understanding by anyone implementing Dynamics AX 2012. What is learned when truly diving into services with Microsoft Dynamics AX 2012 is a foundation for the future.



To help frame the importance of this topic, lets look at an Interview from the past. Doing so will help give meaning to the mention of how services are the foundation for the future of Microsoft Dynamics. Here, you will find my interview with Lachlan Cash from Microsoft.: Microsoft's strategy and vision for Dynamics AX and SOA.

This interview took place in March of 2009, nearly four years ago. However what is laid out in this vision interview is what we see today with Microsoft Dynamics AX 2012 & R2. The vision has become reality, and now it's time to embrace the changes that this foundation of services represents.

From the interview.:
"SOA has been about connecting systems together, we think that it has more a place with-in the application as a fundamental shift in the way business logic is written and designed. This is a long term strategy to make it easier for our customers and partners to adapt the business application to their needs and integrate with other line of business applications." - Lachlan Cash, Microsoft

With this understanding, and a blast from the past, lets look at the amazing job authors Klaas Deforche & Kenny Saelen did with this book. From start to finish it is well thought out, easy to find specific information about topics, and can take a newbie on a journey of services enlightenment.



Starting off, the concepts are covered very well, including basic concepts like "What are services and SOA?". Klass & Kenny advance the reader through a what's new section, and how this section is so important to grasp for those that have been working with Dynamics AX for many years.



All possible service types are covered very well, including the needed understanding for working with Collections, via the infamous AifCollectionTypeAttribute. The reader is throw into great examples that enforce basic concepts, while introducing the 'to-become' services jedi master!

As further proof of Klass & Kenny's understanding what services are in AX 2012, they devoted the entire Chapter 5 to the explain & explore the SysOperation Framework. The following is an excerpt from the that chapter.:
"The SysOperation framework is new in Microsoft Dynamics AX 2012, and is the preferred way of creating batch jobs. It replaces the RunBaseBatch framework, which remains available for backwards compatibility. When Microsoft Dynamics AX 2012 was released, the SysOperation framework was known as the Business Operation Framework or BOF."


Image from book comparing RunBase vs. SysOperation.


The authors also cover well the system services, uses of the system services, and giving full, tested examples throughout the book.

Like any book review, there is always something that can be added. A book, like a house, as any author or architect well knows, is never really finished. It's just a static version, or a version release for consumption and use. With that, there are a few area's that I would like to have seen including in this.

First one, which is near and dear to my heart, is the ODataQueryService. You can find out more about OData and Dynamics AX at the following.: AX-OData Queries.

This, is a very useful system service, that saw much improvements with the release of Dynamics AX 2012 R2. Further this service will continue to become more and more important to fully help complete the vision that was laid out by Lachlan Cash, in the above referenced interview.

Finally, the other area that is the biggest hole in this book is Debugging Services in AX 2012. The referenced link there, covers just the steps needed for getting started, but honestly this is a topic that needs some deep dives, to cover it well and understand the nuances of debugging services for AX 2012.

With this, I give the book a 4.25/5 possible score. Overall this is a really great book, and I would recommend anyone implementing Dynamics AX 2012 to have this as their go to services book.

Well that's it for this week. I plan to get back into the serious side of business insights next week! Check back soon, as more to come. Till Next Time!


Follow Me @:
   RSS Feed  LinkedIn  Twitter

"Visit the Dynamics AX Community Page today!"

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

Sunday, January 15, 2012

AX 2012 and the value of Microsoft's Visual Studio LightSwitch





Recently, I posted an article on my column, for the Microsoft Dynamics Community site, in which I focused in on the Any Device ERP concept. The push towards this concept, enabling true mobile ERP, as I stated in the article, will actually help drive adoption of the Microsoft Windows 8 powered devices.



Also, including in this post, I highlighted and pointed to the use of Microsoft Visual Studio LightSwitch. I'm really stoked about this product, and the more and more I look at it, the more value I see it can bring to companies. The value, in which I'm referring to here is all about giving companies the ability to simply, and in a fast nature, create Line-Of-Business Applications quickly and easily. This means faster Time-to-Value for such solutions, that are needed by companies, which can extend from Microsoft Dynamics AX 2012.



We see, with AX 2012, a push for it being the central hub of business logic, operations, data and delivery of business intelligence. With this, we also see the move for exposing data, API's and business logic internal and external of AX 2012, via Services. Because of this, companies can use LightSwitch, and it's ability to quickly and easily create apps that extend AX for a company, and help create a more total solution.

This is done, via AX services, be that Document Services, or Custom Services and Service Operations. Taking this design approach then, of exposing Data and Business logic from AX via services, these services then themselves can be consumed within a LightSwitch Application. A great resource for walking through this, by example can be seen at the following location: MSDN: LightSwitch - Consuming Web Services

From the post: "The aim of this document is to show developers how you can easily configure LightSwitch to consume Web Services. This walk-through assumes you have a background knowledge of creating basic applications with LightSwitch."



Having this example, we can now extend AX 2012, with LightSwitch for internally hosted Line-Of-Business (LOB) applications, on IIS, and even quickly scale and create applications that are deployed to Microsoft's Cloud Offering, Azure. In order to enable the scaling to the cloud, we do need to deploy the AX 2012 Services, via IIS, so that they can be consumed externally by the outside world. Doing this, means then, that quickly and easily we can create a Hybrid cloud story, for AX customers, and quickly bring the value to a customer that the cloud brings with scale, agility, and exposing AX business logic and data for consumption through such LightSwitch created apps.

For those customers, that have invested in AX, working with LightSwitch from Visual Studio 2010, will seem familiar, in how it's ability to work with Entity Data Framework, ease of creating and working with services, as well as the Tree Style design of forms, and buttons, that feels similar to AX and how it's forms and UI elements are designed.



So, if your a Microsoft Dynamics AX Customer, I highly recommend looking into either having your Partner, or your staff work with Microsoft Visual Studio LightSwitch, and how it can be used to extend your AX investment, quickly, efficiently and fast. That's always the goal, and keep in mind Simple is King of value, and let me tell you LightSwitch is one heck of a product that truly simplifies the creation of Line-Of-Business (LOB) applications. It's all about Time-to-Value, and that is why LightSwitch is a tool that should be considered, for completing your companies / customers total solution.

These applications, can then be made a part of the AX story, either hosted externally in the cloud, or internally. After creating and deploying a LightSwitch App, it can be incorporated directly into the user experience, via links hosted within Role Center Pages, to the LightSwitch App UI, or hosted within the AX 2012 Rich Client Forms and UI.



Bringing this full circle and to have a little forward looking exercise here, I personally believe LightSwitch, which currently delivers it's UI via SilverLight, will quickly be updated, once Windows 8 comes out. I believe, that Microsoft will enable you the ability to choose your target UI, be that SilverLight, or XAML+HTML5+JavaScript. The idea, is that LightSwitch will still create the UI for you, and enable fast and easy creation of Apps, that target even the Metro Style UI of Windows 8, and therefore having company specific Win8 Metro Style Apps, that work directly with & extend a companies AX 2012 ERP investment.



The following links, are useful resources that are used throughout this blog post. I would strongly encourage spending time researching and learning from these resources, and others to see how Microsoft Visual Studio LightSwitch can help you drive the most value out of your AX 2012 investment.:

Well that's all for now, I hope everyone has a great productive week. Check back soon as I have a lot of good post coming out, all around AX, the Ecosystem, Spotlights, Interviews and more! Till Next time!


Follow Me @:
RSS Feed  LinkedIn  Twitter

"Visit the Dynamics AX Community Page today!"

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

Tuesday, December 20, 2011

AX 2012 - Items & InventItemSetupSupplyType Table





In past post, I've covered the usage of services for performing operations external to AX, as well as internal.

Some examples that have done recently, were focused around Creating Products in AX 2012, via the EcoResProductService.



As well as creating the new Trade Agreements, via PricePriceDiscJournalService.



The point that I've tried to get across in these examples, is to show how this can be done within AX 2012, as well as the same concepts and constructs can be used externally of AX 2012. This is the right move, specifically if your looking beyond AX 2012, and beyond AX7 even.

With this concept, you can also Release Products to a specific legal entity, which is covered pretty well, via a C# example, found at the following resource.: Product-item data management services.

So again, we see how both X++ and C# can use these constructs, Document Services, to create products, as well as release them to a specific legal entity. With this said, there is something missing, for this process.

Specifically, if we look to have our migrated products, that have been released, to show up on the Purchase Order Lines, Item Id field drop down. If we go to do this, and we created products, and released them for use within a specific legal entity, via the services described in the above references, then our items would not show up for use on Purchase Order lines. They can be entered, but do not show up.



The reason this is the case, is because in AX 2012, the Purchase Order Line, Item Id datasource field, has a new lookup() form it uses, called InventItemIdLookupPurchase. This form, has a datasource, that includes the new table: InventItemSetupSupplyType. [InventItemSetupSupplyType Table [AX 2012]]

This new table, contains sourcing information, related to the Item that is being released to a specific legal entity. When this release takes place, the AX Rich Client UI, will fire the EcoResProductReleaseManager object that has logic which creates a default entry into the InventItemSetupSupplyType table, with a Default Order Type of Purchase.

When creating products and releasing them through the services, specifically for the InventItemService, [InventItemService Class [AX 2012]], it makes use of the AxdItem Query object in AX 2012, in order to create records via.



Since this is the case, and we can see from above that the InventItemSetupSupplyType table does not exists as a datasource, then when creating records via this design concept, will not satisfy the requirement of adding entries into the new table, of InventItemSetupSupplyType.

Therefore, there is a small disconnect between the UI release process, and the document service approach for creating and releasing items. This is a simple fix however, either invoke similar code, found in the EcoResProductReleaseManager class for the createInventItemSetupSupplyType() method. Or the other option, could be to add the datasource, to the AxdItem query, for the InventItemSetupSupplyType table, and regenerate the InventItemService, document service, so it will reflect the new entity within it's WSDL.

Depending on the scope of what your doing, should guide you on which choice you make here. If it's throw away, migration code, the simple, fast option of just invoking the X++ code that lives within the EcoResproductReleaseManager class would be advised.

However, if your doing a longer, value add modification, or integration, then, looking to modifying the InventItemService, via the AxdQuery object should be considered.

Well I know that's a little deep dive, on something very specific, however such deep dives are warranted at times. I believe, it's important to understand this, from a process point of view, but also see the value in showing choice. The ability to solve a need, there is multiple ways. Depending on where the most value is, should guide your choice, for the design and the development of answering a specific scope need.

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

Follow Me @:
RSS Feed  LinkedIn  Twitter

"Visit the Dynamics AX Community Page today!"

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

Sunday, December 11, 2011

AX 2012 - Using the PricePriceDiscJournalService





I hope everyone is enjoying their weekend. I hope you have gotten some downtime, and are ready to kick off a new week! To help get things started right this week, I thought I would give some specific focus to one of the out-of-the-box services that comes as part of Dynamics AX 2012.

The service I'm talking about, is the PricePriceDiscJournalService

This service is what you should use, when needing to work with Trade Agreements, via code, inside or outside of AX 2012. As I've mentioned before, around the topics of Services, document services should be used internal and external of AX 2012, as much as possible. This services abstraction has benefits now, with AX 2012 and what comes with the AIF Document Framework. It also holds values, for the future, as Dynamics ERP scales to Azure with AX 7.0, and beyond.

With this in mind, we need to then start with how to use this service, from within AX itself, via X++ code. We have reviewed a similar topic before, in which I talked you through the consumption of the EcoResProductService.



Working with the PricePriceDiscJournalService is similar, in the type of objects you need to create, and make use of. All, relating and apart of the AIF Framework.

There is a functional setup part to this service, in which needs to be understood for proper execution. With AX 2012, Trade Agreements, for Sales Prices, Discounts, etc. must be first created as a Journal, and then posted. Since this is the functional workflow, and therefore functional requirement, AIF has to know which price journal name should be used, during the operations of the service.

This is enabled through the setup parameters, of the Procurement & Sourcing Module. You can navigate to this location, by going to Procurement & Sourcing > Setup > Procurement & Sourcing Parameters. In navigating to this location, there is an AIF smart tab, that appears on the left hand of the parameters form. Clicking on this, will take to you where you select which Journal Name to make use of.



The possible overlooked value in this setup, and use of a default journal for AIF price entries, is it can allow for a degree of separation. In that, the ability to have easily all the prices and discounts that are coming in through AIF, can be separated from other price journals.

Now having this set, we can now move forward with our use of the PricePriceDiscJournalService. In order to show this off, lets start with a simple job, in a new project. This job, will be what shows off our X++ example code.



Now that we have our job, lets take a look at the following code, and break it down for it's use.

static void idbExecutePricPriceDiscJourSvcJob(Args _args)
{
// PricePrice Vars
PricePriceDiscJournalService PriceDiscSvc;
PricePriceDiscJournal PriceDiscJour;
PricePriceDiscJournal_PriceDiscAdmTrans PriceDiscJourAdmTrans;
PricePriceDiscJournal_InventDim PriceDiscJourDim;

// keys return from create process
AifEntityKeyList keys;

// Instantiate the objects
PriceDiscSvc = PricePriceDiscJournalService::construct();
PriceDiscJour = new PricePriceDiscJournal();
PriceDiscJourAdmTrans = PriceDiscJour.createPriceDiscAdmTrans().addNew();
PriceDiscJourDim = PriceDiscJourAdmTrans.createInventDim().addNew();

// Set PriceDiscJourDim
PriceDiscJourDim.parminventDimId(InventDimCombination::
findByDistinctProductVariant(
EcoResProduct::findByDisplayProductNumber(
"SomeProductVariant").RecId)
.InventDimId);

// Set PriceDiscJourAdmTrans
PriceDiscJourAdmTrans.parmInventDim().add(PriceDiscJourDim);
PriceDiscJourAdmTrans.parmItemRelation("SomeProduct");
PriceDiscJourAdmTrans.parmItemCode(TableGroupAll::Table);
PriceDiscJourAdmTrans.parmAmount(100.00);
PriceDiscJourAdmTrans.parmFromDate(today());
PriceDiscJourAdmTrans.parmAccountCode(TableGroupAll::All);
PriceDiscJourAdmTrans.parmrelation(PriceType::PriceSales);
PriceDiscJourAdmTrans.parmCurrency("USD");

// Post PriceDiscJour
keys = PriceDiscSvc.create(PriceDiscJour);
}


With the above code, we can see that we are now working with the PricePriceDiscJournalService, and using the AIF Entity objects, in order to create a Price Journal, that represents a ready to be reviewed, and posted Trade Agreement.

Just to break down, first we start off we Instantiate an instance of the needed objects. This includes the service, PriceDiscSvc. Also, the PriceDiscJour , PriceDiscJourAdmTrans & the PriceDiscJourDim. All of which are a part of the AIF Framework. The PriceDiscJour extends from AIFDocument, as the other two PriceDiscJourAdmTrans & PriceDiscJourDim extends from the AfStronglyTypedDataContainer class.

These are critical in filling out the information needed, for the PricePriceDiscJournalService to properly create a brand new Trade Agreement journal.

From here we can see that I fill the PriceDiscJourDim first, as it is then added tot he PriceDiscJourAdmTrans. This is then filled in the rest of the way, and in turn itself ias added to the PriceDiscJour object.

Finally the PriceDiscJour Object, is sent as the needed variable for calling the create() service operation of the PricePriceDiscJournalService, represented by the PriceDiscSvc variable within the example code.

With this, we can now create Price Journals, that can be reviewed and posted. These can be viewed from the Procurement & Sourcing Module > Journals > Price / Disc. Agreement Journals.



Well that's all for this post. I hope you have enjoyed it, and find it useful. Moving forward from here, if your importing data, and not needing a review the next step would be to post the journal, after the creation of it. That, is a nice little topic for a future post.

Till next time!



Visit Hillstar Business Intelligence (www.HillstarBI.com) in order to truly unlock your data trapped in your Microsoft Dynamics investment. With our value driven business intelligence strategy Hillstar help you transform into a data informed company.


"Visit the Dynamics AX Community Page today!"


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

Tuesday, October 25, 2011

AX 2012 - Excel Add-in Revisited





With the release of Microsoft Dynamics AX 2012, came some great new ways of achieving business requirements, and user experiences. One of those is the Excel Add-in for Microsoft Dynamics AX 2012. I first wrote about this topic, back in June, in which you can find here: Microsoft Dynamics AX 2012 Excel Add-in. This has been a hot post actually, with a lot of comments, and a lot of visits.

It's rightfully so that it should be, being that it's new, and there is some confusion on how to do some of the more complex data sets, within AX, that go beyond just a simple table, which that first post covered for us. With that in mind, I thought I would help clear the air a little bit, in how the Excel Add-in is actually very flexible, and something to watch out for in December from Microsoft on this topic.

First, lets look at the starting point, in which we can start to work with more advanced data sets in AX. This concept, is enabled through the use of document services. This is the way, in which complex data sets in AX are exposed internally and externally of AX 2012. This is true, even for the Excel Add-in.

From the excel point of view, what we are talking about is the Add Data ribbon button, and when the drop down appears clicking on the Add Data, instead of Add Tables.



When clicking on this, for the first time, if you've not setup any Document Data Sources within AX 2012, your selection options will be blank. Now we have talked a little bit about this new concept of Document Data Sources, in the following post.: AX 2012, PowerPivot and a Dash of OData Feeds

In that above post, I covered with you how to enable Excel 2010 PowerPivot to work with OData Feeds from AX 2012. This was enabled through having Query Type of Document Data Sources enabled through the Organization Administration module, Setup, Document Management and finally Document Data Sources.



Here we can also add a document data source, of type service. These services must be document services and extend from the AIF Document Services types. These can not be custom services that do not extend as part of the AIF document services.

With that in mind, we can add a couple of document services, to our list, from within that form, as seen below.



Now that we have these services as document data sources within AX 2012, we can now go back to Excel 2010, within the Excel Add-in and click on our add data, and see our two new services we can make use of.



With this, now we can work with more complex data sets within AX 2012. This also means, that Office 2010, very much is a major part of the user experience in regard to AX 2012. This also means, that some very complex data set needs, can be accomplished through the use of Query Objects, and Document Services that wrap those query objects to expose them internally and externally of AX 2012.

With this said, there are some issues, and area's to watch out for. Basically, there are some super normalized data sets, like customers, vendors, etc. To help address those needs, Microsoft will be releasing in December a resource kit, that will contain artifacts that help enable the use of the Excel Add-in, for the master data, that has some super normalization aspects to it, that make it a little harder to work with from Excel. The basic concept will still be used that you see above here, that will be enabled with staging tables that the process will still use document services to enable.

I hope this helps further explain the value of the Microsoft Dynamics AX 2012 Excel Add-in and how it can be used right now with even more complex data sets, than just simple tables. You enable this through the use of Document Services. Also, it's very important to understand that Microsoft will be releasing that resource kit to help out with some of the super normalized master data elements. Finally, you can create your own document services, that wrap your own custom data sets, or query objects, that in turn can be consumed and made use of in a bi-directional nature through Excel. This is a huge benefit to customers of AX 2012, and something that needs to be considered when thinking about designing and developing scope for customer.

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

"Visit the Dynamics AX Community Page today!"


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

Friday, October 14, 2011

Freaky Tech Friday - The Abyss Of Integration





Last week, we dared to enter into Freaky Tech Friday - It came from another Platform. This hellish post, covered the dark path of how other-worldy platform technologies could be used in a solution-stien way of creating offering that only igor could love. As part of that walk on the wild side, in which we highlighted the use of the ghoulish way in which services could be hosted as part of AX 2012 on IIS, for consumption not just be internet external consumers, but also by other technologies that could not consume net.tcp based service binding.



I warned you all, that if you dared to come back, we would move forward in our dark quest of knowledge and enter in to the abyss of integration. This is a place, truly of no return. Well maybe there are some returns, specifically deep and dark returns on investment actually.

The abyss of integration is covered with a cesspool of options, in which one would not dare use for enabling connections with AX 2012. I say not dare use, in that well, you actually might find neat and should use, when the time is right and the integration needs call for it. For those that want to brave this dark path, I have three area's to highlight for you.

First lest talk about Asynchronous integration needs. This requirement can sometimes real it's ugly head, and how do you defeat such a monster? Well You can employee several tools, other than just holy water, including BizTalk and the use of Message Queuing with AX 2012.

First lets start with BizTalk, which in it's devilish acts, can help enable both Synchronous and Asynchronous in nature integration's. The best place to start for this area, is the blessings found in the following white paper: Microsoft Dynamics AX 2012 White Paper: Using Microsoft BizTalk Server 2010 to Exchange Documents with Microsoft Dynamics AX. Without this guide, you will become yet another lost soul, on the road to the center of the abyss, never to be seen or heard from again.

This white paper will cover topics that include Enterprise Application Integration, Business to Business Integration as well as Application to Application integration concepts. The target audience should not be faint of heart, and should have knowledge about developing and administrating BizTalk, from a past life.



Others have braved this part of the abyss before, so thankfully there is a way forward, even beyond the whitepaper itself. The following is a good little post about catching faults from AX WCF Services, that might can help you live through the night, and survive long enough to face more of the abyss of integration.: Catching Faults from Dynamics AX 2012 WCF services

Moving own, and if you're still part of the living, then we can dare to look into the sea of nothingness, which is flat in the middle of this abyss we now call home. I refer to Message Queuing with AX 2012. Another holy script exists for this part of the journey as well, which can be found at the following location. Deploy Message Queuing for AIF [AX 2012]

A passage from this light in a dark place of Queuing:
"The MSMQ adapter for Microsoft Message Queuing is included with Microsoft Dynamics AX.

To send documents by using Message Queuing, you must install it on a computer on the network and create at least one public queue.

To receive documents by using Message Queuing, you must install Message Queuing and create at least one queue on a computer that has Application Object Server (AOS) installed, and that has been configured to run Application Integration Framework (AIF) batch jobs."


Well Ghosts and Ghouls, that's all for this freak feast. I'm glad to see you've survived this brief tour of the abyss of integration. Scare you next week, when we review Attack of the Zombie Processes! Scare you next time.




"Visit the Dynamics AX Community Page today!"


Labels: , , , , , , , , ,


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