Microsoft Dynamics AX 2012 won’t support Oracle database

Current customers using Oracle database as their AX transactional database will be forced to switch to Microsoft SQL Server. It should be facilitated by Oracle to Microsoft SQL Server Data Migration Assistant for Microsoft Dynamics AX (PartnerSource link) – it allows to migrate AX4/AX2009 databases; conversion of Axapta 3 database is supported as a part of upgrade to AX2009

Overview of the tool from Partner source

The Oracle to Microsoft SQL Server Data Migration tool helps customers on Microsoft Dynamics AX with an Oracle database to migrate to a Microsoft SQL Server database. It supports Microsoft® Business Solutions-Axapta® 3.0, now part of Microsoft Dynamics®, Microsoft Dynamics AX 4.0 and Microsoft Dynamics AX 2009.

For Microsoft Dynamics AX 4.0 and Microsoft Dynamics AX 2009, it supports migration of database on same Microsoft Dynamics AX version i.e. Microsoft Dynamics AX 4.0 on Oracle to Microsoft Dynamics AX 4.0 on SQL Server. For Microsoft Business Solutions-Axapta, it supports upgrade from Microsoft Business Solutions-Axapta to Microsoft Dynamics AX 2009 as part of the upgrade. This framework is a replacement for the AXDBUpgrade step in the upgrade. Rest of the steps remain the same and need to be fully followed thru for complete upgrade as well as data migration.

The Oracle to Microsoft SQL Server Data Migration Tool provides the ability to multi thread the data transfer, while doing the necessary transformations. It is important to note that the toolset does not support not standard table migration (Tables that are not on the AOT). The toolset execution should be followed with rigorous testing for data validation as well as migration quality

Oracle to Microsoft SQL server Migration tool

How to Set the Query Range on a SSRS Report

If the SSRS report is build with AOT query

SRSReportRun reportRun = new SRSReportRun(‘Report1.AutoDesign1’);

// Create variables for setting the range for the query.

Query query;

QueryBuildDataSource queryBuildDataSource;

QueryBuildRange queryBuildRange;

int i;

// Check if the query will return data.

if (reportRun.init())

{

// Find the Cust query.

query = reportRun.reportQuery(‘Cust’); // query name of the report

if (query != null)

{

// Get the Customers data source.

queryBuildDataSource = query.dataSourceName(‘Customers’);

if (queryBuildDataSource != null)

{

queryBuildRange = queryBuildDataSource.addRange(fieldName2Id(queryBuildDataSource.table(), ‘AccountNum’));

queryBuildRange.value(‘4000’);

}

}

// Save the report settings.

reportRun.saveSettings();

// Run the report.

reportRun.run();

}

If the report is build with Data contract

Here is an example which comes from the AOT – Classes – CustPamnManOutputReportController – preRunModifyContract method:

protected void preRunModifyContract()

{

Query reportQuery;

SrsReportRdlDataContract rdlContract;

rdlContract = this.parmReportContract().parmRdlContract(); // may be some changes require here if the report is running from some job.

if (rdlContract.getValue(#reportParameter))

{

custPaymManFile.reportDate(systemdateget());

custPaymManFile.status(PaymManRemittanceStatus::Sent);

}

this.processReport(custPaymManFile);

reportQuery = new Query(querystr(CustPaymManOutputReport));

SRSReportHelper::addParameterValueRangeToQuery(

reportQuery,

tablenum(TmpPaymManOutputReport),

fieldnum(TmpPaymManOutputReport, SessionId),

this.currentSessionId());

this.parmReportContract().parmQueryContracts().insert(queryKey, reportQuery);

}