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

Thursday, May 24, 2012

AX 2012 - EP Development - Warranty Page





Well I hope everyone is enjoying this fine spring day. I love spring time, specifically the closer we get to the start of summer. Every year - my family and I always kick off summer on Memorial Day, and share time together with friends and family. Laughing, and just enjoying being together and out in the sun. With that spirit in mind, lets kick off this Enterprise Portal development focus for Microsoft Dynamics AX 2012.

Our first focus, should be around the functional design of what we are trying to achieve. This would typically mean, if this was being developed for a customer project, some functional artifacts were created. This would include discovery efforts, functional requirements documents (FRD), functional design documents (FDD) and so forth. Since this focus of this series is around design and development, I think it's important to acknowledge how best to arrive at a solution.



All of these artifacts that I have mentioned thus far, comes from SureStep, Microsoft methodology for implementing Microsoft Dynamics - including AX 2012. Now with that stated, it is also typical that Sure Step be understood as a toolbox in which project implementer's and customer's, as well as Microsoft can have a common vocabulary and tool set in which to create project artifacts, communicate design, document the project scope, through support and operating with the help of standard operating procedures.

Not to spend to much more time on this point of design, as I could write entirely to much about the process of well executed projects. The point, in short, and so we can get into the meat of this focus - good design is critical. It should focus on the business, it should bring value - and that is the only reason it should be a deliverable.

With this good design in mind, lets assume that we have done our due design, and planning from a functional nature, and we need a custom, Enterprise Portal based Warranty Management Solution. This solution, should allow for the following to take place.:
  • Enable Creation of Warranty Master & Reference data
  • Enable Warranty Association to Inventory
  • Allow for creation of a form that will show up-coming warranty dates for customers, with actions to engage customer to renew
  • Track warranty claims from customers
  • Allow warranty claim submission by customer


Now there could be a lot more that is done with this, however I believe from the above we can gain a lot of understanding about enterprise portal development, with some functional point to it as well. With that, we will then cover topics of creating pages, creating custom EP forms, using Cue for Role Center pages as well as touch on even workflow for warranty management, and how that works with EP.

To get us started in this effort, we will need a new home on EP for all warranty related scope, that is described above. With that, we will then target creating a custom page on EP for our warranty scope to live on. We can reference the following Microsoft resource page, that gives us a step-by-step on creating a custom EP page for AX 2012.: [MSDN] How to: Create Pages



So the above is the end result, that we are targeting, in having created a custom warranty page, on our EP portal site. Now how did we get there? Well first you have to go to your Enterprise Portal site. From there you need rights to manage the site, and therefore go to site settings, and then more options as we see below.



Once we have selected more options, we need to select pages, and then make sure and highlight Web Part page, and continue on with the process.



After that we need to select pages, and then select the type of page we care about. We are going to stick with: "Header, Footer, 3 Columns" for the basis page of this solution. Further after selecting the type of page, you need to make sure and name this correctly, as we have named below "idbWarrantyManagement.aspx" and notice we are placing this in the Enterprise Portal Document library.



Now that we have created our custom page, the next step is adding it to the EP navigation. We will pick back up on this, and continue forward with our focus on EP development, for our Warranty Management Solution in the next part of this series of post. The next steps we will add this to our EP navigation, and move forward with creating the scope needed that will allow us to have a Warranty Management Solution that gives us the scope we laid out in the start of this post.

That's all for today, but check back soon as more to come, including a continued dive into BI, spotlight post, book review, and of course our continued dive into EP design and development for AX 2012!Till Next Time!
Follow Me @:
RSS Feed  LinkedIn  Twitter

"Visit the Dynamics AX Community Page today!"

Labels: , , , , , , , , ,

Monday, May 07, 2012

AX 2012 Personal BI - By Example - Customer Aging I




I hope everyone is doing well, and having a great start to a brand new week. After taking a week off from blogging, I wanted to start back with a focus around a topic I've been spending a lot of time focusing on. This topic, is around getting the most value of of Microsoft Dynamics AX 2012. To be specific, this is around Business Intellegnce and fitting AX 2012 today, and tomorrow, into the BI Semantic Model.



As the name implies, I wanted to show off the power and flexibility of AX 2012 with use of PowerPivot. You have seen me post about this in the past, with how to correctly access AX data via PowerPivot and OData Feeds.



Now if you don't have PowerPivot installed, that is the first thing we need to get you connected with. When talking in terms of PowerPivot for this purpose of this series of post, we are speaking about 'PowerPivot for Excel 2010'. You can get this as a free download from the following location.: Microsoft BI: PowerPivot Download Page. Make sure to download and install the add-in, so that we can proceed.



Building from that knowledge, and keeping in-line with the BISM focus around Personal BI, lets dive into a great example, specifically for "Customer Aging". In this first part of this series, which I will finish out by the end of this week, lets focus on getting a Customer Aging Query that we can make use of. Therefore lets have a look at the "CustomerAging Query". For your reference, you can download this query, located here.: CustomerQging Query. Please keep in mind use at your own risk, and no warranty is implied. This came as part of the demo instance's for AX 2012.



You can at this point download and import this query, and add it to your document data sources, which is located under Organization Administration > Setup > Document Management > Document Data Sources.:



In doing this, we should be able to then launch Excel, open PowerPivot window, enter your OData Service, similar to the following.: "http://localhost:8101/DynamicsAx/Services/ODataQueryService/" In doing that, we should now see the CustomerAging Query to make use of. In clicking next you should see a screen similar to the following, after importing data.



Doing this, means we have added a new query to the AOT, added as a document data source, and consumed that document data source as an OData feed. Doing so means we correctly consume AX 2012 data, from the Application Layer. Moving forward from here, we will work with the Data, create computed columns, work with vertical & horizontal slicers and finally some conditional formatting. The last thing we will cover is publishing to SharePoint and displaying on a Role Center page.

That's all for this post, but check back tomorrow as we continue this focus on Personal BI for AX 2012. Till Then!
Follow Me @:
RSS Feed  LinkedIn  Twitter

"Visit the Dynamics AX Community Page today!"

Labels: , , , , , , , , ,

Wednesday, June 20, 2007

.Net BC, C# - Working with AxaptaRecord Object

In moving forward with my post about working with the .Net BC and C# below is some sample code of working with an AxaptaRecord object. With this object you can call upon a DataBuffer or better known as a table variable and perform X++ SQL Statements to fill the given object with data to work with. This means that all logic, checking, validation, and methods are exposed via this object that may exist for the given DataBuffer, ie: AxaptaRecord object. Let's take a look at the code:


AxaptaRecord axRecord;
String FieldValue1;
String query;

objDAXCn = (Axapta)Session["objDAXCn"];

if (objDAXCn == null)
return "";

try
{
axRecord = objDAXCn.CreateAxaptaRecord("SomeTable");
query = "select FieldValue1 from %1 where %1.SomeKeyValue == '" + _PassedInVariable + "'";
axRecord.ExecuteStmt(query);

if (axRecord.Found)
FieldValue1 = (string)axRecord.get_Field("FieldValue1");
elseM
FieldValue1 = "";

return FieldValue1;
}
catch
{
// Do something here
}

Alright so with the above block of code what are we doing?
First we are gettting the Axapta object for our connection from a session variable. We then perform a check to see if the given object is null. If so we simply return a blank value. Here though one could re-establish the connection, report back an error, etc. The next peice to this is we call the Axapta Object.CreateAxaptaRecord() call and set our AxaptaRecord object equal to that. Notice this is done Before we call for the query to be used to fill the object with data. Next we set our Query variable equal to the select statement of choice.
Notice this is X++ SQL Statements, and notice that the %1 is used. This is because the name of the table is passed as the create of the object, and the %1 refers to said name, because the Query that is passed in is formatted internally with a strfmt() function. The next thing if we is check if a Record is found, and if so set our variable to that field value, otherwise blank it out. Very simple, but very powerful.
Here we could have created advanced DataSets that where filled, and perform for or while blocks of code used to loop through all the records found, etc. Anyway this code is very useful, and makes it possible to make use of the Business logic that may be contained at the Table object level from within the AOT. Again you can get really advanced with this, but this should give you an idea of how to work with the AxaptaRecord object.

Well please leave comments, and check back as I continue down this path in exploring with you different ways to interact with objects via the .Net BC from C#!


Find a job at: www.DynamicsAXJobs.com

Labels: , , , , , ,


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