Thursday, September 18, 2014

Manipulasi string menggunakan char2Num, num2Char dan strAlpha pada AX 2012

Ada beberapa cara dalam menghilangkan ascii dalam AX 2012. Misalnya jika kita ingin menghilangkan enter / newLine pada alamat, maka kita dapat menggunakan syntax berikut:
strReplace(companyInfo.postalAddress().Address, num2char(10), num2char(32))
Kode diatas menunjukkan bagaimana cara untuk merubah newLine character (num2Char(10)) dengan space character (num2Char(32)).


Jika kita tidak mengetahui nilai suatu karakter, maka kita dapat menggunakan method char2Num.
strfmt('%1--%2--%3', char2Num('\n', 1), char2Num('\t', 1), char2Num(' ', 1))

Wednesday, April 30, 2014

Cara mensetting report ke pdf

Kita dapat mensetting agar report yang kita buka akan otomatis tersimpan ke dalam file PDF.
Kita harus meng-override method preRunModifyContract yang terdapat pada class Report Controller.

Contoh:

protected void preRunModifyContract() {
     FolderName lTmpPath = System.IO.Path::GetTempPath();
     FileNameOpen lFile;
     SRSPrintDestinationSettings gPrintDestSetting;
     ;
     gPrintDestSetting = new SRSPrintDestinationSettings();
     lFile = strfmt('%1file.pdf', lTmpPath);
     gPrintDestSetting.printMediumType(SRSPrintMediumType::File);
     gPrintDestSetting.filename(lFile);
     gPrintDestSetting.fileFormat(SRSReportFileFormat::PDF);
     gPrintDestSetting.overwriteFile(true);
     this.parmReportContract().parmPrintSettings(gPrintDestSetting);
}
Setelah itu kita buat Menu Item tipe Output yang akan diarahkan ke controller class ini.

Monday, April 7, 2014

Cara mengirim notifikasi melalui email

Microsoft Dynamics AX 2012 memiliki fungsi mengirimkan notifikasi melalui Email. Contoh yang sering digunakan adalah mengirimkan invoice yang terbentuk kepada Customer.

Class yang akan kita gunakan adalah: SysEmailTable::sendMail.

Email notifikasi yang dikirimkan dapat berupa plain text atau attachment. Pada artikel ini akan diterangkan email berupa plain text.

Ada beberapa langkah yang harus dilakukan agar fungsi email ini dapat digunakan:

Saturday, March 22, 2014

Cara mem-filter Dimension Attribute pada SSRS Report

Berikut adalah contoh bagaimana cara mem-filter Dimension Attribute pada SSRS Report.<br />
Method processReport dibawah ini adalah method yang terdapat pada class Report Data Provider (DP Class).

Contoh:

[SysEntryPointAttribute(false)]
public void processReport() {
   Query _qry = new Query(querystr(CustTransOpen));
   ContractClass _contract;
   QueryBuildDataSource _qbds = _qry.dataSourceTable(tableNum(CustTrans));
   QueryRun _qrun;
   ;
   // Get contract
   _contract = this.parmDataContract() as ContractClass;

   // set range if dimension2 filled
   if( _contract.parmDimension2() ) {
      SysQuery::addDimensionAttributeRange(_qry
           , _qbds.name()
           , fieldStr(CustTrans, DefaultDimension)
           , DimensionComponent::DimensionAttribute
           , _contract.parmDimension2()
           , "Dimension 2 Name"
           , true
      );
   }

   _qrun = new QueryRun(_qry);
   while( _qrun.next() ) {
      this.insertTmpTable();
   }
}

Thursday, February 20, 2014

Cara Mengakses External Database Menggunakan TSQL dari X++

Sebagai developer AX pasti ada satu saat dimana kita perlu untuk menghubungkan program kita ke database external
AX sudah menyiapkan beberapa class (OLEDB) yang dapat kita gunakan untuk hal tersebut. Tetapi pada artikel ini kita akan menggunakan ODBCConnection class

Untuk membuat DSN, masuk ke Administrative Tools > Data Sources (ODBC)
DSN dapat dibuat disisi client atau di sisi AOS.

Tuesday, February 18, 2014

Cara Mengakses Database menggunakan TSQL dari X++

Salah satu cara untuk mengakses record pada database dapat menggunakan TSQL. Karena lebih banyak yang familiar query menggunakan TSQL daripada query menggunakan standard AX Berikut adalah contoh mengambil record dari table CustTable yang ada didalam sistem Axapta.

Saturday, January 11, 2014

Cara Membuat Query Range untuk Field Tipe Tanggal

Untuk mem-filter query dengan tipe tanggal di Microsoft Dynamics AX 2012 dapat menggunakan class SysQueryRangeUtil::day(int)

Contoh:

static void jobs1(Args _args)
{
                 Query query = new Query();
                 QueryBuildDataSource qbds;
                 QueryBuildRange qbr;
                 ;
                 qbds = query.addDataSource(tableNum(LedgerJournalTrans));
                 qbr = qbds.addRange(fieldNum(LedgerJournalTrans, TransDate));
                 qbr.value('<'+queryValue(SysQueryRangeUtil::day(-50));
                 ..
                 ..
                 ..
}