Saturday, February 4, 2012

Microsoft Dynamics AX 2012 Feature Pack Released alongwith Retail Whitepapers

Microsoft has released Dynamics AX 2012 Feature Pack which can be downloaded by going through this link - Microsoft Dynamics AX 2012 Feature Pack Release (You need to Sign in via PartnerSource or CustomerSource)

Below I have extracted From the Overview Page:

Microsoft has released Dynamics AX 2012 Feature Pack which is Microsoft ERP solution for enterprises that empowers people to anticipate and embrace change so business can thrive. It constitutes Microsoft's biggest releases that target five key industries: Manufacturing, Distribution, Services Industries, Public Sector, and Retail. This release also incorporates Microsoft Dynamics ERP RapidStart Services.

Microsoft Dynamics AX Feature Pack is generally available on February 1, 2012

The Microsoft Dynamics AX retail solution has been incorporated into the Microsoft Dynamics AX 2012. This release includes key feature enhancements in areas such as POS, multi-channel management, store management, merchandising, and more. The supply chain features described in the following section complement retail in addition to other industries.

Note: All functionality for retail, except for the sample POS plug-ins, are part of Microsoft Dynamics AX 2012 Feature Pack.

Supply Chain Management
The moving average inventory valuation method has been added to Microsoft Dynamics AX 2012. This method of inventory valuation is often used by retailers and wholesale distributors.
A fourth product/item dimension (style) has been added to better enable Stock Keeping Unit (SKU) support across Microsoft Dynamics AX.
Additionally, support for high volume sales processing has been added by enabling the import of sales invoices without requiring associated sales orders.

Service Industries
Support has been added for inter-company project time entry.

Industry Solutions
All of the industry solutions, Process Industries, Public Sector, Retail, and Service Industries, are now incorporated into the product and are installed the same way as other Microsoft Dynamics AX modules. Customers can enable or disable features by using configuration keys and can use features from multiple industry solutions. For example, a Public Sector organization can use the Retail POS capabilities, a pharmaceutical company involved in drug discovery and trials can use Service Industries and Process Manufacturing capabilities, or a wholesale distributor can use the Retail merchandising features.

Microsoft Dynamics ERP RapidStart Services
The connector required to configure an on-premise instance of Microsoft Dynamics AX 2012 instance by using RapidStart Services is now included in the installer. You no longer have to download it separately.

Also, you can download Retail Deployment and other whitepapers for Microsoft Dynamics AX 2012 directly from Microsoft Download Center

Respect to Microsoft

I was delighted to have received a tweeted apology from a product manager at Microsoft in response to my blog post about Microsoft closing my SkyDrive account, behaving like the Parisian police did in 1917.



I also received a personal email outlining Microsoft’s policy and how they had mistakenly applied it in my case.

I had further correspondence with the product manager on the subject of what Microsoft calls ‘established’ works of art. In which he described the ‘delicate balance’ Microsoft needs to take in dealing with 140+ countries on exactly what is and what is not obscene content – they are ‘constantly learning’ and, in my case they had ‘made a mistake.’

I do have some empathy as I recall when providing SMS subscription services for a UK mobile operator, in 2000. I was castigated by the operator’s product manager for allowing a joke to go out to several thousand subscribers which had the word 'school' spelt as 'skool'. Corporate monoliths such as Microsoft, mobile operators and others have to maintain ‘standards’, however these standards must reflect the times, if they are not to lose touch with their users.

What’s so refreshing with my case is the speed and candor with which Microsoft handled the situation, the tweet and subsequent correspondence clearly indicate that a monolith can have a human face, so respect to Microsoft they evidently want to keep in touch with the times and their users.

BTW My SkyDrive is open now and I am using it freely. At the risk of being accused of being a sycophant it is great value: 25GB on line plus 5GB sync making 30GB for free. With Google you ‘only’ have 9GB free – I have to pay 5$/yr for my extra 20GB

Further Google’s memory usage calculation across its services Gmail, Docs, and Picasa is complex, Microsoft's approach is much simpler so, for me Microsoft's SkyDrive tops Google’s Docs

Sunday, January 29, 2012

Microsoft Xbox Kinect - Compatibility and Games

The Xbox Kinect allows a revolutionary wire-free game-play experience. Designed to compete with the Sony PlayStation Move and Nintendo's established Wii games console, we take a look at the origins of the Kinect system and review compatibility with older Xbox 360 consoles. We also review the best new games and look at the Kinect launch titles.
Origins of Microsoft's Kinect
Kinect was announced by Microsoft at the E3 technology show on 1 June 2009. At the presentation three demos were shown to showcase the system, these being Ricochet, Paint Party and Milo & Kate. A demo-only version of Burnout Paradise was also shown at he show.
Project Natal formally became Kinect at the 2010 E3 show where the redesigned Xbox 360 was also announced. This new version of the console has the additional Aux port to combine the USB data and power supplies required by the Kinect.
Kinect Compatibility
Microsoft has confirmed that the Kinect system will be fully compatible with all versions of the Xbox 360 console sold since its original release. It would appear that the new motion control system will considerably extend the product life of the Xbox 360 system. Combined with the recent refresh of the product line, the console should not see a replacement until around 2015.

Wednesday, November 9, 2011

Tutorial: Debugging AX while still using restricted roles (non-admin)

Saw this on our internal forum today, and thought it's a nice thing to share with all of you.


1.       Close All AX instances

2.       Open AX Development Environment (ax32.exe -development)

3.       Open AX Application (ax32.exe)

4.       Add Role that you would like to test to your UserId

a.       System Administration > Common > Users

b.      Find yourself and double click to get to the detail window

c.       Assign role that you want to test

5.       Close AX Application

6.       Set break points in AX Development Environment

7.       Create a job and add this line

             SecurityUtil::sysAdminMode(false);
 
8.       From the AX Development Environment “Ctrl W” to open the application

9.       You are now in a reduced permission user and have the ability to debug. J
 

To get your environment back to full admin, re-execute the job in step 7 with a true.


Note: This will not work for EP, Services, direct BC.NET and cases using runas(), as the SecurityUtil::sysAdminMode is limited to the current session.


Ed Budrys from our Security team deserves the credit for the above.

Let me know if you found this to be useful.
Thanks

Friday, October 28, 2011

Tutorial: AX 2012 - Invalid field access or Accessing unretrieved fields

Read the post all the way until the end - there's an ask for you guys there!

As many of you have already seen in the new AX 2012 release, there are a lot more tables present in the application, because we went through an exercise of normalizing the data model.
Another feature that was added at the same time was the Table Inheritance, allowing to sub-class tables and add additional fields reusing some of the behaviors of the base table.

All of it is great! The only problem with it is that it comes at a price - we now need to retrieve a lot more data and do a lot more joins between tables. So we tried to mitigate that by using field lists where possible and adding AdHoc query support, which basically eliminates unneccessary joins between tables from the hierarchy, if fields from these tables are not selected.

We have also implemented a number of things that allow us to clearly see if the field was selected in the user interface, the APIs needed for doing the same, as well as special handling for invalid field access.

This tutorial contains a form, which showcases the different aspects of data access in cases described above.
You can download the project with the tutorial from my SkyDrive.

On the first tab, we have the standard "On hand" view, which in the data model is a join between InventSum and InventDim, with group by clauses on selected fields, in this case, ItemId from InventSum and InventLocationId from InventDim, and aggregation on the AvailPhysical column.
As you can see from the screenshot below, the rest of the InventDim fields are shown as Unretrieved. So, naturally, accessing one of them from code, for example, should not be a legal operation.
To verify that statement, there are 2 buttons on the form, the Incorrect and the Correct was of accessing the field. Clicking on the first one simply tries to read the value out of the InventSiteId field, while the second one uses the API method TableBuffer.isFieldDataRetrieved() to first verify if the field can actually be accessed.

Note, that in the below example, both buttons will work, as in, there won't be any errors shown to the user. When accessing the field, even though it is not retrieved to the client, the value will be treated as the default value for that type, that is, an empty string.

In order to verify that we do not access fields in an invalid way like above, we have introduced a parameter, that will throw an exception if a field that was not retrieved is being accessed.

In order to enable this validation, you need to update the below shown parameter in the Server configuration form (Located under System administration \ Setup \ System). After changing the value (note, that it is per AOS) you need to restart the AOS for the changes to take effect.


Now, if you try to use the first button (under Incorrect) from above, you will get a stack trace, notifying you that the specified field was not retrieved.



We suggest that when testing your modifications in the application, you always have that flag enabled, so as to avoid unpleasant and hard-to-find bugs later on in the production environment.


On the second tab of the Tutorial form, the same type of information is presented, only this time the output is actually based on a new table inheritance structure I created.


The base table, GenericBall, contains 2 characteristics of any ball. SoccerBall is extending it and adding an additional characteristic (for the sake of the example, let's assume Brand is only relevant to soccer balls). This is basically a very simple table inheritance structure.

In the form, however, I am only selecting to view the Brand field from SoccerBall, not selecting the other 2 fields from the base table. As expected, they show up as Unretrieved in the user interface.
However, there is one difference in how Scsc tables are handled - and that is, they will always throw an exception when you try to access one of the unretrieved fields.
The two buttons above the grid demonstrate that. Try it out, enabling/disabling the server configuration parameter shown above.


That's pretty much all there's to it. Let me know if you have any questions.

Now, I have one thing to ask you all too.
We in the AX Test team have done our best to find invalid field access problems before the release, but if you find one using the approach above, please log it either through the standard Microsoft channels (partner/ MsConnect/ etc.), or as a comment directly under this blog post.

Thank you!

Monday, October 24, 2011

Tutorial: AX2012 - A new way of accessing the QueryBuildDataSource for a particular FormDataSource

When playing with some X++ code, I found an interesting addition that happened in AX 2012 related to form development.

There are 2 new methods that were added to the FormDataSource class, which allow you to very easily and error-free access the underlying QueryBuildDataSource, whether that is for the initial form query or for the queryRun that also contains user filters and sorting.

So, for example, instead of writing:

this.query().dataSourceTable(tableNum(InventTableModule), 2);
this.queryRun().query().dataSourceName(identifierStr(Purch));
....

you can use the 2 new methods:

this.queryBuildDataSource();
this.queryRunQueryBuildDataSource();


It might seem as a very minor improvement, but in reality it greatly simplifies maintenance of code on forms, when new datasources are added or existing ones removed/renamed.

That's all for today.

Thursday, October 20, 2011

Microsoft FY12Q1 Results

Here it is, FY12Q1 already: Microsoft Reports Record First-Quarter Results $17.37 billion of revenue driven by solid business and consumer demand.. Wow, is that the longest, braggy release title we've ever had? Read it and you'll also discover that Bing has an organic line. In the Q&A session, Microsoft Management Discusses Q1 2012 Results - Earnings Call Transcript - Seeking Alpha, there was a lot of Qs about Skype and - news to me - we discover that $51 billion of our cash assets are kept offshore, to avoid taxes. Viva la 1%! (I kid).

(I'm out on the road so this will be short.)

My usual suspects:

And a bonus view of OSD:


-- Comments