Skip to main content

Posts

Developing an SSRS report using the Report Data Provider in Microsoft Dynamics AX 2012

Source: http://www.dynamics101.com/2013/09/developing-ssrs-report-using-report-data-provider-microsoft-dynamics-ax-2012/ Overview There are multiple methods to develop SSRS reports in Microsoft Dynamics AX 2012. This tutorial will guide you in developing Report Data Provider (RDP) based SSRS reports. RDP based SSRS Reports are used when complex business logic cannot be achieved using AOT query. Pre-requisites Microsoft Dynamics AX 2012 Visual studio 2012 SQL Server Reporting Services (SSRS) must be configured Reporting services extensions must be installed in Dynamics AX Important Concepts Report Data Provider (RDP) Class Report Data Provider Class is an X++ class that is used to access and process data for a SSRS report. The RDP class processes the business logic based on a specified parameter and/or query and returns a dataset to the reporting services. In order to create a RDP class in AX, you have to extend that class with SRSReportDataProviderBase . T...

MSDN: Walkthrough: Creating a Simple Default Security Policy [AX 2012]

Source: http://msdn.microsoft.com/en-us/library/hh272123.aspx Source: http://msdn.microsoft.com/EN-US/library/hh272121.aspx Overview of Security Policies for Table Records [AX 2012] Security policies enable developers and administrators to block access to subsets of data rows in tables. A policy is roughly similar to a where clause in an SQL select statement. A security permission increases the access a user has to data, but a security policy decreases access to data. In the Application Object Tree (AOT), policies are displayed under Security > Policies . Security policies are enforced in the Application Object Server (AOS). All access mechanisms that route through the AOS are subject to policy enforcement. These access mechanisms include forms, Enterprise Portal webpages, SSRS reports, and calls from class methods. An Extensible Data Security Model Microsoft Dynamics AX uses an extensible data security (XDS) model. XDS extends data security from a s...

Auto create job card journal in Production | AX 2012

Multiple journals are created in the production process. When the order is started route card journal and picking list journal are auto created. But system does not create job card journal automatically. It requires a small customization. Following method can be called when the production order is started with the production order id passed as the parameter. /// <summary> /// This method auto creates Job Card Journal and its lines against selected production order. /// </summary> private void autoCreateJobCardJournal(ProdId _prodId) {     ProdJournalTable    prodJournalTable;     ProdRoute           prodRoute;     ProdRouteJob        prodRouteJob;     ProdJournalRoute    prodJournalRoute;     ProdParametersDim   prodParametersDim;     int   ...

Create new legal entity in ax 2012 through code

I came across a scenario to create new legal entity in ax2012 through code, and wrote down following job to create legal entities. static void createLegalEntities(Args _args) {     CompanyInfo                         legalEntity;     DirPartyPostalAddressView           partyPostalAddressView;     int                                 coCount;     int                                 gap;     int      ...

Filter records in form by code

Courtesy: http://dynamics-ax-live.blogspot.com/2010/03/how-to-filter-records-in-form-by-code.html Step 1: Declare a class variable In the ClassDeclaration method of the form, define a range. QueryBuildRange CurrencyQBR; Step 2: Instantiate the new range. In the init method on the datasource of the form, you assign the range to a specific field (after the super call). public void init() { super(); CurrencyQBR = this.query().dataSourceName('CustTable').addRange(fieldnum(CustTable,Currency)); } Step 3: In the last step, you assign a value to the range. This is done in the executeQuery method on the same datasource of the form. Before the super call. Like this: public void executeQuery() { ; CurrencyQBR.value(queryvalue('USD')); super(); }