Friday, August 21, 2015

OpenXML teaser

If you want to be able to create an Excel document from a batch job or on a machine where Excel is not installed, you can use the Open XML standard to create the file without ever opening the Excel application.

You would of course need some X++ wrappers, but I have learned today that these are actually already created for some Russian localizations.

Check this out:
static void OpenXML_Excel_Demo(Args _args)
    Counter                 c;
    XMLExcelDocument_RU     excelDocument;
    str                     templateFilename = @'F:\SomeTemplate.xlsx';
    str                     newFilename = @'F:\OpenXML_Excel_Demo.xlsx'; 

    // Create a new document
    // This implementation works with template files, so I have just created an empty spreadsheet to act
    // as template
    excelDocument = XMLExcelDocument_RU::newFromFile(templateFilename, newFilename);
    // Create some column headers
    for (c = 1; c != 10; c++)
            ComExcelDocument_RU::numToNameCell(c, 1), 
            strFmt("Column %1", c));

    // Close and save the document

Use the cross reference tool to see more usage of this in AX.

Wednesday, August 19, 2015

The important ViewUserLicense and MaintainUserlicense properties of menu items

These often overlooked properties are key to how Microsoft will determine the number and nature of required AX licenses during a license audit.

You need to map menu items to correct CAL type by specifying a value for ViewUserLicense and MaintainUserLicense. If nothing is provided for these properties of a menu item, the menu item will be categorized with the highest available CAL type, which is Enterprise CAL ($$$).

To determine the appropriate CAL's, you can refer to "Microsoft Dynamics AX 2012 R3 Licensing Guide" and follow the guidelines in that document.

In the "Inside Dynamics AX 2012 R3" book, you can find text instructing you to not fill these properties. That is wrong. Microsoft has confirmed with us (EG) that this is wrong, and the team behind the book is aware of the error.

Friday, August 14, 2015

One-stop page for Microsoft development tools

I was made aware of this site today, where you can find all the important Microsoft development tools in one place:

Google will get a lot less traffic from me now.

Friday, August 7, 2015

VSO Alternate authentication credentials

When you setup a link between a Life Cycle Services (LCS) project and a Visual Studio Online (VSO) project, you need to specify some "Alternate authentication credentials" to login to VSO from LCS.

On VSO you setup these credentials by going to "My profile \ Security \ Alternate authentication credentials", tick the "Enable alternate authentication credentials" box an enter the alternate user id and password you want to use from LCS.