Akses Dynamics Ax via Android.

Untuk mengakses Service Ax via android cukuplah mudah. Yang perlu diperhatikan adalah webservice yang mengacu pada data ax dan versi android yang digunakan.

Untuk backend ax bisa menggunakan AIF, WCF ataupun teknologi lain yang mengusung webservice.

Jika menggunakan Android v23 kebawah maka bisa mengguakan HttpClient sebagai medianya. Namun, jika menggunakan versi 23 atau versi yang lebih tinggi maka gunakan Library 3rd Party atau bisa gunakan standart dari sdk android itu sendiri yaitu HttpURLConnection.

Berikut adalah screenshoot mendapatkan qty on hand dari Ax.

Ax form

OutputQA

 

Accessing from browser.

WebService1

Android script

WebService2

Output emulator

WebService3

Referensi didapatkan dari beberapa link dibawah ini :

https://developer.android.com/reference/java/net/HttpURLConnection.html

https://docs.oracle.com/javase/7/docs/api/java/net/HttpURLConnection.html

http://alvinalexander.com/blog/post/java/how-open-url-read-contents-httpurl-connection-java

 

Happy coding 🙂

 

Convert teks into 64bit encode in Ax 2012.

Berikut script sederhana untuk bind data teks kedalam 64bit encode.

static void convertInto64encode(Args _args)
{
str teks = “12B03226A6D8BE9C6E8CD5E55DC6C7920CAAA39DF14AAB92D5E3EA9340D1C8A4D3D0B8E4314
F1F6EF131BA4BF1CEB9186AB87C801AF0D5C95B1BEFB8CEDAE2B9”;
container cont = BinData::stringToData(teks);
BinData binData = new BinData();

binData.setData(cont);
info(strFmt(“%1”, binData.base64Encode()));
}

Semoga membantu.

Happy coding 🙂

Generate SHA 1 encrypt in Ax 2012

Ax telah menyediakan enkripsi yang bisa digunakan salah satu diantaranya SHA1. Script ini bisa dimodifikasi menggunaan encode yang diinginkan
Berikut salah satu penggunaannya :

static void SHA1()
{
System.Security.Cryptography.SHA1CryptoServiceProvider hash;
System.Text.ASCIIEncoding encoder;
System.Byte[] combined;
System.Byte byte;
str Sha1, input;
int i, arrayLength;
container cont;
;

new InteropPermission(InteropKind::ClrInterop).assert();
input = “1234567890”;
hash = new System.Security.Cryptography.SHA1CryptoServiceProvider();
encoder = new System.Text.ASCIIEncoding();
combined = encoder.GetBytes(input);
hash.ComputeHash(combined);
sha1 = System.BitConverter::ToString(hash.get_Hash());
info(stralpha(sha1));
}

Semoga membantu 🙂

Read JSON data from Ax 2012

Berikut adalah sebuah script sederhana di ax untuk mengakses data JSON.
Misal isi JSON seperti ini :

{
“value1”: “Ax script”,
“value2”: “Programming”
}

Sample code :

ax-json

Outputnya :
Value: Ax script

Selamat mencoba 🙂

Generate SSRS Report (PDF) via X++ code

Berikut adalah penggalan script sederhana untuk mengekeskusi ssrs report menjadi file pdf.

AgingARPDF

 

Semoga membantu 🙂

Error # AX 2012 : [Microsoft][ODBC SQL Server Driver]Invalid Descriptor Index

Terkadang ketika ax akan mengakses database external sering dijumpai error “AX 2012 : [Microsoft][ODBC SQL Server Driver]Invalid Descriptor Index”. Untuk mengatasi masalah ini, pada saat akan membaca nilai dari recordset database, posisi kolom harus dibaca secara sequence. Contoh nya sebagai berikut :

Error :

new 1

 

Fixed :

new 2

 

Happy coding 🙂

Create Query in AX via x++

Berikut adalah contoh script untuk membuat query pada ax via coding(x++).

Screenshot :

#AOT

treeNodeObj = TreeNode::findNode(#QueriesPath);
treeNodeObj = treeNodeObj.AOTfindChild(queryName);
if (treeNodeObj) {
treeNodeObj.AOTdelete();
}

treeNodeObj = TreeNode::findNode(#QueriesPath);
treeNodeObj.AOTadd(queryName);
queryObj = treeNodeObj.AOTfindChild(queryName);

qbds  = queryObj.addDataSource(tablenum(CustTable));
qbr   = qbds.addRange(fieldnum(CustTable, DlvMode));
qbr.value(“>10”);

queryObj.AOTcompile(1);
queryObj.AOTsave();

qr = new QueryRun(“TestQuery”);
while ( qr.next() )
{
xrecCustTable = qr.GetNo(1);
Global::info(strFmt(“%1 , %2”,
xrecCustTable.AccountNum, xrecCustTable.DlvMode));
}

treeNodeObj = TreeNode::findNode(#QueriesPath);
treeNodeObj = treeNodeObj.AOTfindChild(queryName);
treeNodeObj.AOTdelete();

 

Happy coding 🙂