Block/Remove Personalization option on the form using X++ (Dynamics AX 2012)

Friends,

We all know that the users are provided with many options to personalize forms in Microsoft Dynamics AX . These include moving controls, setting properties on controls, and adding extra fields to forms.

We can block/remove the personalization option on a particular form using x++ code. To do this, override the init() method of the form/element and add the below code after super(); as shown below

element.blockPersonalization(true); will help to remove this option

image

For more information on enabling/disabling the personalization on the forms : Here is the link

Happy Dax6ng,

Sreenath Reddy

SBS Group Acquires Microsoft Dynamics® AX Practice from Solugenix Corporation

Friends,

SBS Group, a leading technology consulting firm integrating business management solutions, announced today the acquisition of Solugenix’s Microsoft Dynamics® AX Practice. Solugenix has a proven track record of successful implementations and support of Microsoft Dynamics AX across multiple industries. Solugenix will continue to provide Application Lifecycle Management, Enterprise Business Support and Professional Staffing solutions not related to Dynamics AX.

For more information: Click here.

Happy Dax6ng,

Sreenath Reddy

image

How to display/show the inventory dimensions as parameters on SSRS reports [Dynamics AX 2012, X++]

Friends,

Today, I am going to help you how to display the inventory dimensions [product dimensions, storage dimensions, Tracking dimensions] on SSRS reports as parameters. Not clear? Please see the Report parameters screen below.

All the inventory dimensions are available to be selected on report parameters below. You will see this view in almost all inventory reports and other module reports.

image

Well, Let me explain how to achieve this and retrieve the values in the data provider class

Its very simple, we need to make use of the contract class for this inventory dimensions view.

Standard has got a InventDimViewContract class with all the parm inventory dimensions methods and we can use these methods later in the DP classes for the selected inventory dimensions by the user on the report parameters screen.

Create an Object for InventDimViewContract in your contract class as shown below [Please note: I am using ProdPickListContract] as an example below

image

Then add a new parm method to the contract as shown below.

[DataMemberAttribute(‘InventDimViewContract’)]

public InventDimViewContract parmInventDimViewContract(InventDimViewContract _inventDimViewContract = inventDimViewContract)

{    

    inventDimViewContract = _inventDimViewContract;

    return inventDimViewContract;

}

That’s it, by adding the above discussed,we will get the inventory dimensions on the parameters screen.

Now, the question is how do we get the selected dimensions from the user. Its simple again.

In your data provider class, mainly in processReport method, get the object of the contract class and call the parmInventDimViewContract() method, this object will help you to retrieve the inventory dimensions selected by the user by using parm methods in it. [Example : ParmViewConfigId(), parmViewInventBatchId() etc]. Please refer to screen shot below.

image

You can use these selected inventory dimensions values based on your requirements. The above screen shot is just an example of retrieving the values.

 

Happy Dax6ng,

 

Sreenath Reddy

 

image

 

 

Upcoming: Microsoft Dynamics AX Solutions Excellence certification program that will help your company and employees show their level of AX expertise [H2 FY14]

Friends,

Microsoft Dynamics AX Solutions Excellence Certification Program has been designed to enable Microsoft Dynamics partners and individuals to achieve the highest level of certification on Microsoft Dynamics AX 2012. The Microsoft Dynamics AX Solutions Excellence Certification Program is aimed to help you:

  • Distinguish your partner organization and employees from the competition, and show your level of expertise to customers.
  • Demonstrate your company’s ability to provide proven, high-quality Microsoft Dynamics AX implementations.
  • Provide your employees with a learning path to attain the highest level of Microsoft Dynamics AX certification.
  • Provide your customers with best-in-class Microsoft Dynamics AX technical resources.

Beginning in H2 FY14, Microsoft Dynamics will be launching the exams for two out of the three AX Solutions Excellence Certification Program tracks, enabling Microsoft Dynamics partners and individuals to achieve the highest level of certification on Microsoft Dynamics AX 2012.

You can get more details from this link

Thank you!

Happy Dax6ng,

Sreenath Reddy

image

Cumulative update 6 (CU6) for Microsoft Dynamics AX 2012 R2

Friends, CU6 for Microsoft Dynamics AX 2012 R2 has been released. For more information, click here

Happy DAX6ng,

Sreenath

image

AX 2012 Cumulative Update 5[CU-5] has been released

Friends,

Cumulative Update 5 for Microsoft Dynamics AX 2012 (CU-5) has been released and published on Partner Source and Customer Source. Follow the below link

CU5 for AX 2012

This cumulative update includes all fixes that are described in Cumulative Update 4, Cumulative Update 3, Cumulative Update 2, and Cumulative Update 1 for Microsoft Dynamics AX 2012, country specific feature and additional hot fixes.

This cumulative update is applicable for both Microsoft Dynamics AX 2012 (6.0.947.0) & Microsoft Dynamics AX 2012 Feature Pack 1 (6.0.1108.0).

Happy Dax6ng,

Sreenath Reddy

Get the underlying SSRS Report Query, reset query , add your own ranges and execute report [Dynamics AX 2012, X++]

Friends,

Below is the small code snippet to get the underlying query of the SSRS report, reset query, prompt the parameters form, add our own ranges and execute the report. You can customize the job as per your requirements. Below I have used CustBaseData.Report report and added my own range on customer group.

static void SR_ResetQueries_executeReport(Args _args)

{

    #define.reportName(‘CustBaseData.Report’) // report Name

    QueryBuildRange queryBuildRange;

    QueryBuildDatasource queryBuildDatasource;

    SRSReportRun srsReportRun;

    Query reportRunQuery;

    srsReportRun = new SRSReportRun(#reportName);

    srsReportRun.init();

    srsReportRun.resetQueries(); // reset the query

    reportRunQuery = srsReportRun.reportQueries().lookup(srsReportRun.currentQueryKey());

    if (srsReportRun.isInitialized() && srsReportRun.prompt()) // prompt the parameters form

    {

        queryBuildDatasource = SysQuery::findOrCreateDataSource(reportRunQuery, tablenum(CustTable));

queryBuildRange = SysQuery::findOrCreateRange(queryBuildDatasource,  fieldnum(CustTable, CustGroup));

        queryBuildRange.value(‘INT’);

        queryBuildRange.status(RangeStatus::Hidden);

        srsReportRun.saveSettings();

        srsReportRun.executeReport();

    }

}

Happy Dax6ng,

Sreenath Reddy

 

Follow

Get every new post delivered to your Inbox.

Join 238 other followers