Dynamics AX Blog - Dynamics AX 2009 - Posts from 2015

RSS-Feed of this version
Import data from csv-file to Dynamics AXUsing the CommaTextIo class you can import CSV files into Dynamics AX. The job shows a simple example of using this class.
static void importCSVFile(Args _args)
{
Filename fileName = @"c: empcsvimport.csv";
CommaTextIo commaTextIo = new CommaTextIo(fileName, "r");
container lineCon;
commaTextIo.inFieldDelimiter(';');
commaTextIo.inRecordDelimiter(' ');
while (commaTextIo.status() == IO_Status::OK)
{
lineCon = commaTextIo.read();
info(strFmt("%1 %2 %3", conPeek(lineCon, 1), conPeek(lineCon, 2), conPeek(lineCon, 3)));
}
}
In principle, this would also work with the TextIo class (or AsciiIo), but it must be noted that these classes can provide unexpected results when, for eample the inFieldDelimiter - in my example a semicolon - occurs within a text.
The following sample file would otherwise be processed, as expected from the developer. The third column in the third row would be interpreted as two columns by the read()-method. 100;450,00;Customername1 101;1200,00;Customername2 102;50,28;"Customername 3; Second customername" |
Create purchase order line through codeA simple example of how to create a purchase order line through code using AX<Table>-Class.
static void createPurchLine(Args _args)
{
axPurchLine axPurchLine;
purchLine purchLine;
axPurchLine = AxPurchLine::newPurchLine(purchLine);
axPurchLine.validateInput(true);
axPurchLine.continueOnError(false);
axpurchLine.parmPurchId("P00001");
axpurchLine.parmItemId("1000");
axPurchLine.parmPurchQty(10);
axPurchLine.parmPurchPrice(24.50);
axPurchLine.save();
} |
How to create a AX<Table>-Class IIIf you need a so called AX-class can use the class AxGenerateAxBCClass.
Simply call this class in the AOT by right clicking and follow the wizard or use following job:
static void generateAXTableClass(Args _args)
{
AxGenerateAxBCClass axGenerateAxBCClass;
axGenerateAxBCClass = new AxGenerateAxBCClass();
axGenerateAxBCClass.parmTableId(tableNum(MyNewTable));
axGenerateAxBCClass.run();
}
If the table changes, for example when adding new fields, you simply call that AxGenerateAxBCClass again and the AX -class will be extended accordingly.
How to use such AX -classes, i've described here.
|
|
|
|
|
|
|
To open the query-windows when opening a form, you can use the following code for example:
public void run() { super(); if(dataSourceName_ds.queryRun().prompt()) { dataSourceName_ds.research(); } }