This blog is for Dynamics AX (AXAPTA) Developers,this will help you for your development issues. This site contains some Microsoft Dynamics AX X++ Codes for use in your day to day use.
13 July 2016
24 June 2016
X++ code to generate ledger voucher number sequence in AX 2012
NumberSeq numberSeq;
NumberSequenceTable numSeqTable;
Voucher voucher;
select firstOnly numSeqTable
where numSeqTable.RecId == LedgerJournalName::find(ledgerJournalTable.JournalName).NumberSequenceTable;
if (numSeqTable && !voucher)
{
numberseq = numberseq::newGetVoucherFromCode(numSeqTable.NumberSequence);
voucher = numberseq.voucher();
}
ledgerJournalTrans.Voucher = voucher;
21 June 2016
06 June 2016
12 May 2016
SSRS Report RDP class with process report method - Query in process report with multiple tables
[SysEntryPointAttribute(false)]
public void processReport()
{
Query query;
QueryRun queryRun;
QueryBuildRange vendAccountRange;
QueryBuildRange fromDateRange;
QueryBuildRange toDateRange;
QueryBuildRange incoTermsRange;
QueryBuildRange cTMLocationIdRange;
QueryBuildRange cTMItemIdRange;
QueryBuildRange WMSCarrierNameRange;
QueryBuildRange approvedContractRange;
QueryBuildRange locationRange;
QueryBuildrange commodityRange;
QueryBuildRange contractTypeRange;
QueryBuildDataSource qbds;
QueryBuildDataSource qbds1
,qbds2
,qbds3
,qbds4;
QueryBuildDataSource qbds_load;
QueryBuildLink queryBuildLink;
CTMContractLoads ctmContractLoads;
CTMContractOnCost ctmContractOnCost;
CTMContractLines ctmContractLines;
CTMMIHeader ctmMIHeader;
CTMContractHdr ctmContractHdr;
CTMMILine ctmMILine;
UOMLogisticsContract2 contract;
VendTable vendTable;
CTMCustVendName ctmCustVendName; // origin Name
VendAccount vendAccount;
CTMDeliveryFromDate ctmDeliveryFromDate; // delivery from date
CTMDeliveryToDate ctmDeliveryToDate; // delivery to date
CTMLogisticStepStatus ctmLogisticStepStatus; // status
CTMIncoTermsCode ctmIncoTermsCode; // Inco Terms
CTMLocationId ctmLocationId;
CTMLocationId shipTo;
WMSCarrierName vendAccountHau; // Haulier
CTMItemId ctmItemId; // Commodity
CTMContractId contractId;
;
contract = this.parmDataContract() as UOMLogisticsContract2;
query = this.parmQuery();
qbds = query.dataSourceTable(tableNum(VendTable));
qbds1 = query.dataSourceTable(tableNum(CTMContractLoads));
qbds2 = query.dataSourceTable(tableNum(CTMMIHeader));
qbds3 = query.dataSourceTable(tableNum(CTMMILine));
//qbds1 = query.dataSourceTable(tableNum(CTMContractLoadsForm));
//qbds1 = query.dataSourceTable(tableNum(CTMContractLoadsForm));
//qbds1 = query.dataSourceTable(tableNum(CTMContractLoadsForm));
vendAccount = contract.parmOriginName(); // done
ctmDeliveryFromDate = Contract.parmDeliveryFromDate();// done
ctmDeliveryToDate = contract.parmDeliveryToDate();// done
ctmLogisticStepStatus = contract.parmStatus(); // done
ctmIncoTermsCode = contract.parmIncoTerms();
// cTMLocationId = contract.parmDe
ctmLocationId = contract.parmPickUpLocaton(); // done
vendAccountHau = contract.parmHaulier(); // done
ctmItemId = contract.parmComodity(); // done
//shipTo = contract.parmShipTo();
if(vendAccount)
{
vendAccountRange = SysQuery::findOrCreateRange(qbds,fieldNum(VendTable,AccountNum));
vendAccountRange.value(vendAccount);
}
if(vendAccountHau)
{
WMSCarrierNameRange = SysQuery::findOrCreateRange(qbds2,fieldNum(CTMMIHeader,carrier));
WMSCarrierNameRange.value(vendAccountHau);
}
if(cTMLocationId)
{
cTMLocationIdRange = SysQuery::findOrCreateRange(qbds1,fieldNum(CTMContractLoads,DeliveryLocation));
cTMLocationIdRange.value(cTMLocationId);
}
if(cTMItemId)
{
cTMItemIdRange = SysQuery::findOrCreateRange(qbds1,fieldNum(CTMContractLoads,PurchaseCommodity));
cTMItemIdRange.value(cTMItemId);
}
if(cTMDeliveryFromDate)
{
fromDateRange = SysQuery::findOrCreateRange(qbds2,fieldNum(CTMMIHeader,DeliveryFromDate));
fromDateRange.value(SysQuery::range(cTMDeliveryFromDate,dateNull()));
//vendAccountRange.value(cTMDeliveryFromDate);
}
if(cTMDeliveryToDate)
{
toDateRange = SysQuery::findOrCreateRange(qbds2,fieldNum(CTMMIHeader,DeliveryToDate));
toDateRange.value(SysQuery::range(dateNull(),cTMDeliveryToDate));
}
queryRun = new queryRun(query);
while ((queryRun.next()))
{
vendTable = queryRun.get(tableNum(VendTable));
ctmContractLoads = queryRun.get(tableNum(CTMContractLoads));
ctmMIHeader = queryRun.get(tableNum(CTMMIHeader));
ctmContractOnCost = queryRun.get(tableNum(CTMContractOnCost));
ctmMILine = queryRun.get(tableNum(CTMMILine));
select firstOnly ctmContractHdr
where ctmContractLoads.PurchaseContract == ctmContractHdr.ContractId;
this.insertIntoLogisticsTMP(
vendTable
,ctmContractLoads
,ctmMIHeader
,ctmContractOnCost
,ctmMILine
,ctmContractHdr
);
}
}
==========
SSRS Report design - >
Parameters Change proeperty
Allow Blank: True
Nullable: True
public void processReport()
{
Query query;
QueryRun queryRun;
QueryBuildRange vendAccountRange;
QueryBuildRange fromDateRange;
QueryBuildRange toDateRange;
QueryBuildRange incoTermsRange;
QueryBuildRange cTMLocationIdRange;
QueryBuildRange cTMItemIdRange;
QueryBuildRange WMSCarrierNameRange;
QueryBuildRange approvedContractRange;
QueryBuildRange locationRange;
QueryBuildrange commodityRange;
QueryBuildRange contractTypeRange;
QueryBuildDataSource qbds;
QueryBuildDataSource qbds1
,qbds2
,qbds3
,qbds4;
QueryBuildDataSource qbds_load;
QueryBuildLink queryBuildLink;
CTMContractLoads ctmContractLoads;
CTMContractOnCost ctmContractOnCost;
CTMContractLines ctmContractLines;
CTMMIHeader ctmMIHeader;
CTMContractHdr ctmContractHdr;
CTMMILine ctmMILine;
UOMLogisticsContract2 contract;
VendTable vendTable;
CTMCustVendName ctmCustVendName; // origin Name
VendAccount vendAccount;
CTMDeliveryFromDate ctmDeliveryFromDate; // delivery from date
CTMDeliveryToDate ctmDeliveryToDate; // delivery to date
CTMLogisticStepStatus ctmLogisticStepStatus; // status
CTMIncoTermsCode ctmIncoTermsCode; // Inco Terms
CTMLocationId ctmLocationId;
CTMLocationId shipTo;
WMSCarrierName vendAccountHau; // Haulier
CTMItemId ctmItemId; // Commodity
CTMContractId contractId;
;
contract = this.parmDataContract() as UOMLogisticsContract2;
query = this.parmQuery();
qbds = query.dataSourceTable(tableNum(VendTable));
qbds1 = query.dataSourceTable(tableNum(CTMContractLoads));
qbds2 = query.dataSourceTable(tableNum(CTMMIHeader));
qbds3 = query.dataSourceTable(tableNum(CTMMILine));
//qbds1 = query.dataSourceTable(tableNum(CTMContractLoadsForm));
//qbds1 = query.dataSourceTable(tableNum(CTMContractLoadsForm));
//qbds1 = query.dataSourceTable(tableNum(CTMContractLoadsForm));
vendAccount = contract.parmOriginName(); // done
ctmDeliveryFromDate = Contract.parmDeliveryFromDate();// done
ctmDeliveryToDate = contract.parmDeliveryToDate();// done
ctmLogisticStepStatus = contract.parmStatus(); // done
ctmIncoTermsCode = contract.parmIncoTerms();
// cTMLocationId = contract.parmDe
ctmLocationId = contract.parmPickUpLocaton(); // done
vendAccountHau = contract.parmHaulier(); // done
ctmItemId = contract.parmComodity(); // done
//shipTo = contract.parmShipTo();
if(vendAccount)
{
vendAccountRange = SysQuery::findOrCreateRange(qbds,fieldNum(VendTable,AccountNum));
vendAccountRange.value(vendAccount);
}
if(vendAccountHau)
{
WMSCarrierNameRange = SysQuery::findOrCreateRange(qbds2,fieldNum(CTMMIHeader,carrier));
WMSCarrierNameRange.value(vendAccountHau);
}
if(cTMLocationId)
{
cTMLocationIdRange = SysQuery::findOrCreateRange(qbds1,fieldNum(CTMContractLoads,DeliveryLocation));
cTMLocationIdRange.value(cTMLocationId);
}
if(cTMItemId)
{
cTMItemIdRange = SysQuery::findOrCreateRange(qbds1,fieldNum(CTMContractLoads,PurchaseCommodity));
cTMItemIdRange.value(cTMItemId);
}
if(cTMDeliveryFromDate)
{
fromDateRange = SysQuery::findOrCreateRange(qbds2,fieldNum(CTMMIHeader,DeliveryFromDate));
fromDateRange.value(SysQuery::range(cTMDeliveryFromDate,dateNull()));
//vendAccountRange.value(cTMDeliveryFromDate);
}
if(cTMDeliveryToDate)
{
toDateRange = SysQuery::findOrCreateRange(qbds2,fieldNum(CTMMIHeader,DeliveryToDate));
toDateRange.value(SysQuery::range(dateNull(),cTMDeliveryToDate));
}
queryRun = new queryRun(query);
while ((queryRun.next()))
{
vendTable = queryRun.get(tableNum(VendTable));
ctmContractLoads = queryRun.get(tableNum(CTMContractLoads));
ctmMIHeader = queryRun.get(tableNum(CTMMIHeader));
ctmContractOnCost = queryRun.get(tableNum(CTMContractOnCost));
ctmMILine = queryRun.get(tableNum(CTMMILine));
select firstOnly ctmContractHdr
where ctmContractLoads.PurchaseContract == ctmContractHdr.ContractId;
this.insertIntoLogisticsTMP(
vendTable
,ctmContractLoads
,ctmMIHeader
,ctmContractOnCost
,ctmMILine
,ctmContractHdr
);
}
}
==========
SSRS Report design - >
Parameters Change proeperty
Allow Blank: True
Nullable: True
26 April 2016
Pass the record from to class in ax 2012
LedgerJournalTable Form Button:
void clicked()
{
Args args = new Args();
VendInvoiceJournalLineImport invoicejournalimport
;
args.record(LedgerJournalTable);
invoicejournalimport = new VendInvoiceJournalLineImport();
invoicejournalimport.run(args);
LedgerJournalTrans_ds.executeQuery();
}
Class:
public void run(Args _args)
{
ledgerJournalTable = _args.record() as ledgerJournalTable;
dialog = new dialog('Excel Import');
dialogfield = dialog.addField(extendedTypeStr(FilenameOpen), 'File Name');
dialog.run();
if(dialog.run())
{
filename = (dialogfield.value());
application = SysExcelApplication::construct();
workbooks = application.workbooks();
if(filename)
{
try
{
workbooks.open(filename);
}
catch (Exception::Error)
{
throw error('File cannot be opened.');
}
this.dataImport();
}
}
}
void clicked()
{
Args args = new Args();
VendInvoiceJournalLineImport invoicejournalimport
;
args.record(LedgerJournalTable);
invoicejournalimport = new VendInvoiceJournalLineImport();
invoicejournalimport.run(args);
LedgerJournalTrans_ds.executeQuery();
}
Class:
public void run(Args _args)
{
ledgerJournalTable = _args.record() as ledgerJournalTable;
dialog = new dialog('Excel Import');
dialogfield = dialog.addField(extendedTypeStr(FilenameOpen), 'File Name');
dialog.run();
if(dialog.run())
{
filename = (dialogfield.value());
application = SysExcelApplication::construct();
workbooks = application.workbooks();
if(filename)
{
try
{
workbooks.open(filename);
}
catch (Exception::Error)
{
throw error('File cannot be opened.');
}
this.dataImport();
}
}
}
21 March 2016
Dynamics AX 7 List of Courses for technical at partner sources and Dynamics Learning Portal - DLP
List of AX 7 courses available at partner source and DLP.
80730AE: Development Basics in Microsoft Dynamics AX
80732AE: Introduction to Microsoft Dynamics AX
80753AE: Microsoft Dynamics ‘AX 7’ Security
80754AE: Microsoft Dynamics 'AX 7' Performance, Reliability and Scale
80755AE: An Introduction to the Microsoft Dynamics 'AX 7' User Experience
80757AE: Monitoring and Diagnostics of Microsoft Dynamics 'AX 7' Environment
80758AE: Microsoft Dynamics 'AX 7' Office Integration to Enhance User Productivity
80759AE: Microsoft Dynamics Lifecycle Services Solutions Overview
80760AE: Microsoft Dynamics 'AX 7' Data Management Story
80763AE: Navigating Microsoft Dynamics AX
80764AE: Introduction to Microsoft Dynamics AX for Retail
80765AE: Introduction to the Microsoft Dynamics AX System Architecture and Technology
80766AE: Introduction to Microsoft Dynamics AX Reporting and Analytics
80767AE: Introduction to Case Management in Microsoft Dynamics AX
80768AE: Introduction to Microsoft Dynamics AX Workflow
80769AE: Introduction to the Task Recorder in Microsoft Dynamics AX
80770AE: Introduction to Microsoft Office Integration with Microsoft Dynamics AX
80771AE: Introduction to System Administration in Microsoft Dynamics AX
80772AE: Introduction to the Organizational Model in Microsoft Dynamics AX
80730AE: Development Basics in Microsoft Dynamics AX
80732AE: Introduction to Microsoft Dynamics AX
80753AE: Microsoft Dynamics ‘AX 7’ Security
80754AE: Microsoft Dynamics 'AX 7' Performance, Reliability and Scale
80755AE: An Introduction to the Microsoft Dynamics 'AX 7' User Experience
80757AE: Monitoring and Diagnostics of Microsoft Dynamics 'AX 7' Environment
80758AE: Microsoft Dynamics 'AX 7' Office Integration to Enhance User Productivity
80759AE: Microsoft Dynamics Lifecycle Services Solutions Overview
80760AE: Microsoft Dynamics 'AX 7' Data Management Story
80763AE: Navigating Microsoft Dynamics AX
80764AE: Introduction to Microsoft Dynamics AX for Retail
80765AE: Introduction to the Microsoft Dynamics AX System Architecture and Technology
80766AE: Introduction to Microsoft Dynamics AX Reporting and Analytics
80767AE: Introduction to Case Management in Microsoft Dynamics AX
80768AE: Introduction to Microsoft Dynamics AX Workflow
80769AE: Introduction to the Task Recorder in Microsoft Dynamics AX
80770AE: Introduction to Microsoft Office Integration with Microsoft Dynamics AX
80771AE: Introduction to System Administration in Microsoft Dynamics AX
80772AE: Introduction to the Organizational Model in Microsoft Dynamics AX
Subscribe to:
Posts (Atom)
Merge Dimensions (MainAccountId and LedgerDimensions) defaultDimension in D365 F&O and X++
public DimensionDynamicAccount getLedgerDimension(container _conData, TransDate _transDate = today()) { int ...
-
Please click here to access Custom Workflow step by step process:
-
public InventQty onHandInventory(ItemId itemId, InventSiteId inventSiteId,InventLocationId inventLocation) { InventOnhand inventOnh...
-
1. In classDeclaration extend SrsReportDataProviderPreProcess instead of SrsReportDataProviderBase 2. Temp table properties should b...


