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

Sunday, December 09, 2012

Workflow Wizard's for Dynamics AX 2012





I wanted to write today about Workflows in Microsoft Dynamics AX. Specifically around the Wizard's that now exists for Microsoft Dynamics AX 2012 Feature Pack and beyond. There are several wizard's that help you create the needed artifacts and elements that make up a workflow.



Before getting into the Wizard's, I think it's very important that we look into some very good resources on this topic. So the following is my hot list of resources, I make use of when looking to work with workflow's and create custom workflow's for Microsoft Dynamics AX 2012.

Now with those resource's one should have plenty of information to focus in and get started with the wonderful concept and power workflows bring's to a Dynamics AX 2012 instance.

One area that is new with the release of the Feature Pack for Microsoft Dynamics AX 2012 and beyond is the amount of Wizard's that Microsoft has delivered. We have several actually, and each has their own value point. The idea is around to help decrease your time to value for enabling workflows.



The focus for the wizard's that are delivered is around.: Approvals, Task & Workflow Types. These are each accessed by highlighting the specific type of artifact desired, right clicking, highlighting add-in's, and then selecting the Wizard option from there.



Each will ask a series of question's that will then be used to generate workflow artifacts that relate to specific workflow document classes, and types. This means having the workflow types & categories in place is a must. After understanding this, one can then jump start creating artifacts that fully help model and instance of Microsoft Dynamics AX 2012 for their specific needs.

I will end with this fact, don't under estimate the amount of work that might be required to fully enable a workflow. Depending on the nature of the workflow, and what is required. What should always be the first thing that is done to help with this fact? Solid Functional Design Documents that clearly give finalize & finite scope to the deliverable's that are being targeted.

Well that's all for this post. Check back soon as more to come! 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.


Follow Me @:
   RSS Feed  LinkedIn  Twitter

"Visit the Dynamics AX Community Page today!"

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

Monday, September 17, 2012

Using XDS to Secure data via the Organization Model (Part 1) - AX 2012





Recently, I posted an article that covered the resources for helping one understand the options, and how best to model a companies organization within Microsoft Dynamics AX 2012. You can find that article here.: A question around Organization Modeling for AX 2012

As promised, this post kicks off that two part series, in where I will dive into the use of XDS for securing data within AX 2012.



Before we dive right into securing data, based on the organizational model within AX 2012, first it's important to understand the parts that will make up our solution to this. Keep in mind, that the focus for Microsoft Dynamics AX 2012, is always to model more and code less!

With that in mind, and referencing the above image the are we are talking about focusing on is the Data Security area. This is where deny takes place, where as above it in the authorization section, in which we do role based modeling of security, grant takes focus.

For the sake of this post, and it's focus around data security, lets assume then that you already have your role based modeling of security petty much complete. With that assumption aside, our focus for this effort is around the Data Security Policies. This is where we will live, and what objects we created will have context.

As mentioned in previous post, Query Elements are meant to be a re-usable API in AX 2012. They are considered modeling elements, vs. custom code elements.

The idea, is that we create a modeling query used to represent the policy, in what we want to deny. In doing this we then, as stated above, start with a query. For example, if we wanted to model a query that limited prospects, by inbound user id, then that would be the target of our query.

Lets then look at the start of this example query. Since we want to constrain the Prospects from the Sales & Marketing module, we need to first target the smmBusRelTable. Since we want to constrain these for the inbound user id, lets assume responsibilities have been modeled and we have a "Sales Rep" responsibility tied to prospects.



With having this, then we need to add to our query, the smmResponsibilitiesEmplTable table. This is joined to the smmBusRelTable by RefTableId & RefRecId as a 1:n join type in the query design. Further, since we are targeting the "Sales Rep", we add to our ranges, the ResponsibilityId field, and add for the value: Sales Rep.



The next trick we need to focus on, is then having the query take us from the Worker associated with the responsibility for the the prospect, to the user id. This assumes, then that User's are associated with employee's of type workers via user relations. In that assumption, we can make the connection from smmResponsibilitiesEmplTable -> HcmWorker -> DirPerson -> DirPersonUser.



Now that we have achieved this, we next need to focus on our final range for the DirPersonUser table. That being of the user field. For the value that we supply for the range, it is a function: (currentUserid())



Now that we have this supplied, our query is ready to be set for the basis of a Security Policy. That is the next element of focus, in modeling security with XDS, a security policy. Doing this, we create a security policy, set our constraint properties, and finally enable the policy.



The above we see the correct security policy, and that it is further constraining the SalesQuotationTable as well as the SalesQuotationLine table. Further, the following is the properties of the above listed security policy object.



With the above enabled, and not having anything supplied for the ContextType, this policy is not enabled for anyone, and will deny access to the Prospects & Quotation tables based on the query we modeled. Meaning anyone that does not have a Sales Rep responsibility association for a prospect will not see that prospect when access AX 2012 from the Rich Client, EP, Reporting or service integration. Only users with System Administration role can see everything.

This would mean, that most likely you would want to at least apply this by Security Role, say Sales Rep that you had modeled. Then this policy would only deny access by the modeled query, for the specific user id's, when having the Sales Rep Security role applied to their user id.

Another point about security policies is that the intersection of multiple policies is what is shown. Where as in the grant focused authorization of role based security modeling, that will take the sum of all granted rights, for all applied security roles. Security policies, all that are enabled, must fully be satisfied. This means you could enable overlapping security policies that have adverse affects on what is trying to be achieved. Therefore, like all things, use caution.

Having the above base knowledge, and walk through for using data security policies to deny access to specific data, we can then move forward with part II of this focus, with using the organization model relating to released products, to model security against.

That's all for today's post, I hope you find it useful. Check back soon as more to come, including part II of this post, more on BI and the System of Engagement, as well as upcoming AXUG Summit coverage. Till Next Time!
Follow Me @:
RSS Feed  LinkedIn  Twitter

"Visit the Dynamics AX Community Page today!"

Labels: , , , , , , , ,

Wednesday, January 25, 2012

AX 2012 - Security Tools Review





I hope everyone is doing well this week, and finding yourself in a very productive mood, diving deeper and deeper into your AX projects. I wanted to take the time, and highlight an Context Menu Add-in, for AX 2012, specifically the Security Tools that appear when highlighting certain objects in the AOT.



When talking about security in AX 2012, it's important to understand what securable objects within the application are related to what Duties, Roles and more.



To help us understand how the secureable objects in AX 2012, are related to specific privileges, through duties and roles, Microsoft comes with out-of-the-box offerings, that help us in this effort. This is what we see in the first image of this post, showing where, highlighting for example, the SalesTable table object, right clicking and then highlighting security tools, and finally clicking on the View related security roles. In doing this action, a similar screen as shown below is displayed.



There are many fields in this, for helping us understand how the specific element we have highlighted, related back up through the security model in AX 2012. As the following screen shot, further shows even more of the helpful information, for understanding the securable objects relations.



You can see, that like any other form in AX, that has a grid control, you can filter by grid, to get to needed specific information, like type of security, if it's related to form controls, etc. What's also great, and this is again throughout the AX application, the ability to take the data within the specific grid control, and easily export that to Excel, for further analysis and reporting.



Clicking on the export to excel, and we can see quickly and start working with the security related information for the element.



This then, helps in the design phases, as well as post development, within the operation of AX, to understand and glimpse into the current setup from the Role, down to the duty level of the security artifacts that exsit now as part of any AX 2012 instance. This again is powered, out-of-the-box, through the content menu. You can better understand what other functions exists as part of these Security Tools context menu in AX 2012, by going to the Menu's node, in the AOT tree. From there navigate to the SysContextMenu element, and expand the Security Tools node.



With this information, understanding what exist around security for specific elements of AX, be that out-of-the-box or custom, becomes a lot easier. This translate further, into helping make the term, powerfully simple, a true one. To add more value to this topic, if your interested in understanding more about how to work, and add your own scope to the context menu in AX, I recommend checking out the following resource page on MSDN: How to: Add Items to the AOT Add-Ins Menu [AX 2012]

Well, that's all for this post, check back soon as I have a lot more coming, including the continue dive into AX 2012, BI, Data Management, Services, Ecosystem and a whole lot more! Till next time!

Follow Me @:
RSS Feed  LinkedIn  Twitter

"Visit the Dynamics AX Community Page today!"

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

Wednesday, April 07, 2010

ProISV Launches Version 1.0 of AX.NET

Today, ProISV is releasing version 1.0 of the AX.NET, minus the AX.NET Server peice, which is set to be released within the next two months.

This is a new offering, that I wrote about in the following blog post.:
Dynamics AX and .Net - A new technology offering from ProISV

As well as my CIO focused article on MSDynamicsWorld.com, found here.: MSDW: How AX.NET Extends a CIO's Integration Options

This covered the details of what AX.NET planned on offering and was bringing to the Dynamics AX, .Net table. Now, as of today, ProISV is releasing AX.NET, along with their new partner program.

For this launch, I interviewed ProISV team, Neils and Kaspar. Below is that interview.:

1.) What will be released as version 1, today, from the AX.NET offerings and what does this bring to customers and partners? (Niels)

"We are including a lot of functionality in our first AX.NET release. The core functionality creates a .NET version of AX, thereby enabling full .NET integration with Microsoft Dynamics AX business logic and data. Feedback from our now closed beta1 program and analysts is that we are closing a major gap in the Microsoft Dynamics AX technology base with the release of AX.NET.

So, today we are offering two different types of AX.NET licenses: AX.NET Developer System, which targets product developers and AX.NET Client, which is suitable for users on the system as well as internal AX development. The AX Developer System all inclusive license, unlimited developer users and Code Protection System, will retail at EUR 3,995, while the Client license retails as low as EUR 295 per user.

This means that developers can now write custom .NET code, while using the AX logic directly in Visual Studio, as well as use our Code Protection System to ensure that their intellectual property is fully managed and cannot be circumvented. The client license makes it possible to run the AX.NET applications at a low price, thereby enabling a much richer Microsoft Dynamics AX experience and at the same time reduce the cost dramatically. There are many fine details in our functionality, which is probably too much to all be mentioned here, but our website provides all the details as well as the differences in the license types: (ProISV license types link.)

Well worth mentioning though is that we are now also introducing our Partner Program, through which we will enable authorization for partners to distribute and resell AX.NET licensing. This is a very big revenue opportunity in addition to the significant cost savings of using AX.NET to develop applications. None of this would be meaningful though, without having a high quality product offering, so that has been our highest priority leading up to our product launch."


2.) To what do you attribute your ability to release a stable version 1 of the AX.NET offerings? (Niels)

"The key principle of all of our product development is that it is test driven, agile development, blended with our many years of experience in the field. This means we can quickly attain a very high level of quality in our products. The key purpose of our AX.NET beta1 program was to work with partners, get their feedback both in terms of quality and functionality. We had a very successful and productive beta1 program, which resulted in great new features and a very stable product, so we are obviously very happy for that and thankful to our beta partners for their active participation."

3.) Without getting into details, can you give us an idea of Customer and Partner involvement during the beta program that lead up to this April 7th release? (Niels)

"We had great feedback from our beta partners and some of them were giving us intensive feedback throughout the work days. This speaks to the fact that AX.NET really fills a major technology gap and the ability to finally work with a full .NET version of AX is something, which has been received with tremendous interest. We will now continue working with the beta partners and assist those, who have chosen to take a step further and use AX.NET commercially in their businesses. We were actually able to very quickly implement suggestions for product improvements as well, so that probably create great confidence in ProISV as a business partner"

4.) Can you talk about some of the improvements, with examples that took place during the beta program that helped refine and make AX.NET a better offering? (Kaspar)

"There have been many improvements during the beta program, and many suggestions from our Beta Program Partners have been implemented.
The most visible changes have been made to streamline the AX.NET Assembly Generator that is where all AX.NET development starts.

We have for example made it easy to connect the Microsoft Dynamics AX AOS using the Dynamics AX Client Configurations stored on the local computer.



When choosing the selection of tables, classes and enums to be included in the AX.NET Assembly, which shall constitute your .NET version of the AOT in Microsoft Dynamics AX, you can now define the selection by choosing private and shared projects from the selected Microsoft Dynamics AX.



This way it is easy for a business consultant to define in Dynamics AX, what should be included in the .NET representation of AX. A technical consultant can then build the AX.NET Assembly using the Microsoft Dynamics AX project.

During the Beta Program we improved the control over which elements actually are included in the AX.NET Assembly. When building the AX.NET Assembly, the AX.NET Assembly Generator uses the defined selection of elements, but AX.NET Assembly Generator also included a feature to automatically include depended elements.



So if I am creating an AX.NET Assembly with the CustTable table from Microsoft Dynamics AX, I would probably like to automatically include the classes and tables that the methods (business logic) on CustTable use as parameters. AX.NET enables this, and with the new features developed during the Beta Program, it is even now possible to define how many levels of dependencies should be included.

There has also been made great progress in streamlining the AX.NET Framework to make it more intuitive and user friendly. We have for example changed the naming convention in the AX.NET Assembly, so the name of the .NET types in a generated AX.NET Assembly in most cases have exactly the same name as in Microsoft Dynamics AX.
This means that the Microsoft Dynamics AX class Map is now also called Map in an AX.NET Assembly, where it before was called IMap. Further the Microsoft Dynamics AX table CustTable is now called CustTable in an AX.NET Assembly, and a row in CustTable is called CustTableRow.

We believe that there has been made great progress and improvements during the Beta Program, and we really would like to thank our Beta Partners for providing us with their feedback. We will continue down the path with our next product offering, the AX.NET Server."


5.) What are your plans for the AX.NET Server offering? What will it target, and allow? (Niels)

"In short, AX.NET Server will enable the AX infrastructure to run in the Cloud as a modern age alternative to on premise or hosted servers in the traditional sense. Thereby new business models in line with Cloud computing can be introduced as well.

So with AX.NET Server, AX can be accessed through a web browser, just like any other Cloud service. AX.NET Server is fully compatible with all of the AX.NET features in the Developer System and Client License system, which means that applications developed today, can run as Cloud services, once we release AX.NET Server.

Obviously, delivering Microsoft Dynamics AX as a cloud service will eliminate many costs otherwise associated with deploying and maintaining AX."


6.) When is the AX.NET Server offering scheduled to be released as version 1? (Niels)

"We anticipate to release AX.NET Server Beta towards the end of April. The commercial release will depend on the beta program feedback. As was the case with AX.NET beta1, we will apply agile development and release when the product is ready. That means “fast”."

7.) What do you feel are some of the most important things that AX.NET brings to Customers and Partners? What is the, short version, of the case for AX.NET in a Dynamics AX implementation? (Kaspar)

"We believe that the release of AX.NET today marks the beginning of the next generation of .NET solutions for Microsoft Dynamics AX. AX.NET will enable customer to build custom .NET solutions that increase the value of their Microsoft Dynamics AX investment by enabling faster, cheaper and better support for development of web, mobile, smart client and integration solutions.

AX.NET can achieve this by enabling the full power of the newest version of Microsoft .NET Framework and Microsoft Visual Studio to be unleashed including support for LINQ (Language Integrated Query) and Intellicense (auto completion, inline documentation and compilation check) in Visual Studio.

Writing .NET solutions for Microsoft Dynamics AX by direct use of the Microsoft Dynamics AX Business Connector can almost be illustrated as writing your .NET code in notepad without any productivity or quality enhancing tools. AX.NET truly brings .NET development for Microsoft Dynamics AX into Visual Studio with everything it includes.

For AX.NET Partners we both provide a great business opportunity to resell AX.NET to the end-user, but we also provide special features for our ISV Partners developing solutions on top of AX.NET and selling them commercially.

When Partners buy the AX.NET ISV license (AX.NET Developer System), they get the possibility to use the AX.NET License System to protect their own Intellectual Property (IP). All AX.NET ISV will receive a digital certificate from ProISV that they can use to sign AX.NET Licenses. The AX.NET License System then allows them to specify, that their AX.NET solution only is allowed on an AX.NET installation with an AX.NET License digital signed by both ProISV and the ISV. Hereby the ISV is ensured that they receive the entire AX.NET License sale for their solution, and that there is no unauthorized use of their product."


8.) If you could pick one thing to really highlight about AX.NET, that maybe a lot of customers and partners might not appreciate fully when first looking at AX.NET, what would that be? (Kaspar)

"If you don’t have a technical background or are familiar with the life of a .NET developer working with Dynamics AX through the Microsoft Dynamics AX Business Connector, it can be easy to underestimate the effect of AX.NET on productivity, quality and moral. With AX.NET a Microsoft Dynamics AX .NET developer does not have to look envious at his colleague that is developing a pure .NET solution."

"The era where .NET development for Microsoft Dynamics AX was a difficult process has passed, and the future is racing towards us. The future is the Cloud, and AX.NET will take your there with AX.NET Server and Microsoft Azure very soon!"

I would like to thank Niels and Kaspar from the ProISV team for taking the time to do this interview. This is exciting news, and I recommend you check out what AX.NET can do for Dynamics AX implementations that need .Net based integration work.

A direct link to their website can be found here.: www.ProISV.com

That's all for now, but check back soon!




"Visit the Dynamics AX Community Page today!"


Labels: , , , , , , ,

Wednesday, March 31, 2010

AX Tools Blog: Navigating the AX Application Explorer in Visual Studio

Sometime ago, I posted about a brand new blog ran by part of the Dynamics AX Microsoft team. This blog is focused on 'Microsoft Dynamics AX Tools'

With this, there was a teaser post given by the authors of that blog, talking about the 'AX Application Explorer in Visual Studio'.

Well now the authors of the AX Tool Blog has taking this a step further with a new post.: Navigating the AX Application Explorer in Visual Studio

From the post.:
"In the last post we introduced the AX Application Explorer in Visual Studio, as the central hub for all AX development in Visual Studio. Now we will take a quick look at the navigation in the AX Application Explorer.

Since the AOT is the AX developers home, we preserved the same UI look and feel, as well as the gestures commonly used by AX developers. You can navigate the AX Application Explorer using the keyboard just the same way you use the keyboard in the AOT. You can use type-ahead to search for elements, just like in the example below, where you see the selection on InventCostList after “inventcost” was typed in (in the status bar the type-ahead text is displayed)."




One highlight from this blog post I think everyone should take away from it, is the following.:
"An important thing to understand about the AX Application Explorer is that it is not a superficial tool in Visual Studio. It integrates deep in the guts of Visual Studio and enables the presence of AX metadata in many of the existing Visual Studio components."

This is really important to understand, and help put context to the depth Microsoft is going to making Dynamics AX vNext and beyond deeply rooted in .Net, .Net technologies and the rest of the Microsoft stack!

Thanks AX Tools Blog Authors for sharing! Great post, and has me wanting to see more!




"Visit the Dynamics AX Community Page today!"


Labels: , , , , , , , ,

Wednesday, October 28, 2009

Dynamics AX 2009 - SSRS Report Deployment Issue

If you have deployed the SSRS Report Lib.'s from Dynamics AX 2009 before, you might have ran into some timeout issues.

Even with deploying the reports one ReportLib at a time. And if you have not seen this yet, most likely you will.

An error message, sometimes with great detail will show up during the Reports Deployment process, and that will reference something similar to the following.

[ThreadAbortException: Thread was being aborted.]


The ThreadAbortException is the key for this error. Basically the thread trying to do the deploy is timing out writing to the Report Server.

Most likely you cause is related to the amount of langauge files / cultures that are trying to be deployed for the given ReportLib.

A simple change can be done to help fix this issue.



The following is the steps to do, that relate to the above table inside Dynamics AX.:
1) Open the AOT
2) Expand Data Dictionary > Tables > LanguageTable > Fields
3) Right click on the 'LabelFile' field and choose properties
4) Change the Visible property to 'Yes'
5) Save the change
6) Right click on the LanguageTable and choose Open
7) In the table, uncheck the Label file field for any languages that are not needed
8) Deploy the ReportLibs again that were having issues

This may not be the fix all the time, but most likely it will be. Also this can be used to help clean up the Report Manager. The initial deploy can deploy a lot of reports in languages you just don't care about. So you can remove those, or clear the entire Report Manager and then deploy with only the language files / Cultures that matter to you.

Well that's call for now, check back soon, as I have more post coming! See you then!




"Visit the Dynamics AX Community Page today!"


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

Thursday, September 03, 2009

Tips for Creating Services in Microsoft Dynamics AX 2009 - White Paper

While staying on the topic of integrations for Dynamics AX 2009, I wanted to give a link to a great resource that was first released in June of this year.

That is the Tips for Creating Services in Microsoft Dynamics AX 2009 - White Paper

The previous post, of consuming services inside Dynamics AX 2009 was taking and bring in data or working with serviecs from the point of Dynamics AX 2009 to the outside world.

This white paper goes into great details, helps, do's and dont's for creating Services that expose Dynamics AX 2009 to the outside world.

These services can then be consumed by the outside world for working with process, data, and business logic inside Dynamics AX.

Before this white paper came out, there was good help on the web with great blog entries, etc. However this white paper is recommended for anyone that is working with AIF, or will be working with AIF to expose Dynamics AX to the outside world.

From the white paper.:
"Microsoft Dynamics AX services are designed and implemented in the Application Object Tree (AOT) using X++. A service is defined once, but can be exposed via different transport protocols, such as a Web Service, an MSMQ adapter, a BizTalk adapter, or a file system adapter. Microsoft Dynamics AX tools and wizards are available to expose and deploy services to these different environments, leaving the application developer to focus on the service definition and implementation.

The application developer uses tools and wizards to generate and deploy the X++ service as a Windows Communication Foundation (WCF) service hosted in Internet Information Services (IIS). After a service has been implemented, any requests made to that service are forwarded from IIS and run on the Application Object Server (AOS). These generation tools create the service definition in the form of XML Schema Definitions (XSDs) and managed assemblies. From a high level, service requests are made to the managed assemblies that delegate them to the X++ service implementation using .NET Business Connector. The incoming message is not deserialized inside the managed assembly to increase performance."


AIF, in Dynamics AX 2009, comes as part of the base package and should be used for exposing business logic, data and processes to the outside world.

That's all for now, check back soon!




"Visit the Dynamics AX Community Page today!"


Labels: , , , , , , , ,


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