• Microsoft Dynamic AX 2012, Solusi ERP Terjangkau

    JAKARTA, KOMPAS.com - Microsoft Indonesia, Kamis (8/12/2011), meluncurkan produk Microsoft Dynamics AX 2012 bagi pengguna di Indonesia. Microsoft Dynamics AX 2012 adalah aplikasi bisnis generasi terbaru, yang dapat memberi solusi Enterprise Resource Planning (ERP) atau perencanaan sumber daya perusahaan...

    read-more
  • Microsoft Dynamics AX, Solusi Sumber Daya Enterprise

    Microsoft Dynamics AX adalah sebuah solusi perencanaan sumber daya enterprise yang mudah disesuaikan untuk membantu Anda memperkuat dan menstandarkan proses, memperoleh visibilitas dalam organisasi Anda, dan membantu menyederhanakan kebutuhan pemenuhan. Produk ini tersedia dalam dua edisi dan komponen-komponen terpilih dapat ditambahkan kedalamnya. Produk ini mencakup perkakas untuk .....

    read-more
  • Etiam augue pede, molestie eget.

    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Quisque sed felis. Aliquam sit amet felis. Mauris semper, velit semper laoreet dictum, quam diam dictum urna, nec placerat elit nisl in quam. Etiam augue pede, molestie eget, rhoncus at, convallis ut, eros. Aliquam pharetra. Nulla in tellus eget odio sagittis blandit. Maecenas at nisl. Nullam lorem mi, eleifend a, fringilla vel, semper at, ligula. Mauris eu wisi. Ut ante dui, aliquet nec, congue non, accumsan sit amet, lectus. Mauris et mauris. Duis sed massa id mauris pretium venenatis. Suspendisse cursus velit vel ligula. Mauris elit. Donec neque. Phasellus nec sapien quis ...

    read-more
  • Hellgate is back

    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Quisque sed felis. Aliquam sit amet felis. Mauris semper, velit semper laoreet dictum, quam diam dictum urna, nec placerat elit nisl in quam. Etiam augue pede, molestie eget, rhoncus at, convallis ut, eros. Aliquam pharetra. Nulla in tellus eget odio sagittis blandit. Maecenas at nisl. Nullam lorem mi, eleifend a, fringilla vel, semper at, ligula. Mauris eu wisi. Ut ante dui, aliquet nec, congue non, accumsan sit amet, lectus. Mauris et mauris. Duis sed massa id mauris pretium venenatis. Suspendisse cursus velit vel ligula. Mauris ...

    read-more
Previous Next

Archive for 2012


CTRL+ALT+BREAK

atau

CTRL+ALT+PAUSE

Read More

Biasanya tuh setiap surat yang dibuat, baik surat untuk internal maupun eksternal pasti akan menampilkan surat tersebut dibuat oleh siapa atau diprint oleh siapa. Nah nama user di sini menjadi bagian penting dari sebuah sistem. Karena itulah di AX, kita bisa menampilkan nama user yang sedang aktif menggunakan source code X++ di bawah ini :
display str TampilUser()
{
    UserInfo UserInfo;
    ;
    select Name from UserInfo where UserInfo.id == curUserId();
    return strfmt(UserInfo.name);
}

Read More

Manusia tentunya tidak akan terpisahkan dengan yang namanya waktu. Begitu juga di sebuah sistem informasi, waktu menjadi sebuah hal vital yang harus ditampilkan. Berikut ini adalah bagian - bagian dari waktu yang sering kali dipakai :
Untuk Mendapatkan tanggal dari system computer, kita bisa pakai :
date systemDateGet()
atau
date today()

Untuk mendapatkan tahun saja, kita bisa pakai :
int year(date _date)

Untuk mendapatkan bulan ke berapa, kita bisa pakai :
int mthOfYr(date _date)

Untuk mendapatkan nama bulan, kita bisa pakai :
str mthName(int number)

Untuk mendapatkan tanggal saja, kita bisa pakai :
int dayOfMth(date _date)

Untuk mendapatkan hari ke berapa dalam 1 minggu, kita bisa pakai :
int dayOfWk(date _date)

Untuk mendapatkan nama hari, kita bisa pakai :
str dayName(int number)

Untuk mendapatkan tanggal saja dari UTCDateTime, kita bisa gunakan :
date _date=DateTimeUtil::date Method(datetime _dtime);

Read More

Bagi yang biasa menggunakan excel pasti familiar dengan fungsi - fungsi untuk mengambil string, yaitu RIGHT() . LEFT() , dan MID(). Akan tetapi di X++ apabila kita kita ingin mengambil string, kita cukup hanya menggunakan fungsi SubStr(). Misalkan saja kita ingin mengambil 2 string terakhir dari tahun hari ini, kita bisa mencobanya memakai script di bawah ini :

static void Job2(Args _args)
{
    date     Tanggal;
    int      Tahun;
    str      Tahun2;
    ;
    Tanggal = today();
    Tahun = year(Tanggal);
    Tahun2 = SubStr(int2str(tahun),3,2);
    info(strfmt("Tahun sekarang 4 digit = %1 dan yang 2 digit = %2",Tahun, Tahun2));
}

Hasil runningnya adalah sbb :

Read More

Bagi orang awam tentang Microsoft Dynamics AX dan X++ mungkin akan sedikit bingung ketika diharuskan mengambil nilai dari sebuah field dengan tipe enum. Tidak usah bingug, karena ternyata caranya sangatlah gampang. Misalkan saja kita mau menampilkan SalesId dari SalesTable yang statusnya "Delivered", nah kita bisa menggunakan cara di bawah ini :
Pertama lihat dulu tuh field SalesStatus pada  SalesTable memakai Base Enum apa, lalu tinggal tulis aja

namaBaseEnum::namaElementBaseEnum



Nah, contoh penggunaan scripnya seperti di bawah ini :
static void Job2(Args _args)
{
    SalesTable      _SalesTable;
    ;
    While select SalesId from _SalesTable
        where _SalesTable.SalesStatus == SalesStatus::Delivered
        {
            info(strfmt("%1",_SalesTable.SalesId));
        }
}

Sementara hasilnya adalah seperti di bawah ini :

Read More

Basic Enumerations digunakan sebagai data list untuk type data Enum. Basis enumerations, disebut juga basic Enum, digunakan untuk memasukkan type data enum primitif yang memerlukan seperangkat nilai yang telah ditetapkan. Unsur-unsur dari base enum didefinisikan sebagai nilai string dan ditugaskan mengidentifikasi nilai integer.

Untuk membuatnya sangatlah mudah, 
1. Buka AOT, expand Data Dictionary,  kemudian klik kanan pada Base Enum, lalu pilih New Base Enum


2. Kasih nama base enum yang baru saja dibuat sesuai dengan keinginan
3. Untuk menambahkan element, klik kanan pada base enum yang baru saja dibuat, lalu pilih New Element
 4. Lalu tinggal diisi aja Name dan Label pada Properties. Name merupakan value-nya, sedangkan label merupakan label yang akan muncul.

Read More

Mungkin ada yang masih bingung maksud dari judulnya apa. Maksudnya di sini adalah kita bisa mem-filter record yang mau ditampilpkan di form melalui script X++ yang ditaruh pada data source-nya form. Misalkan saja saya punya sebuah form dengan nama "CopyOfWcs_BookingMemoTable" dengan data source yang dipakai adalah table "Wcs_BookingMemoTable". Nah, dari sini kita mau membatasi record yang tampil hanyalah record yang status-nya udah confirm saja, maka kita bisa memakai script X++ seperti di bawah ini :

Tuliskan script di bawah ini pada data source table
1. FilterWCS_BookingMemoTable()
void FilterWCS_BookingMemoTable()
{
    QueryBuildRange qbr;
;
    qbr = this.query().dataSourceNo(1).addRange(
        fieldnum(Wcs_BookingMemoTable, Status));
    qbr.value(enum2str(Wcs_BMStatus::Confirm));
}

2. init()
public void init()
{
    super();
    this.FilterWCS_BookingMemoTable();
}

Read More

Biasanya kalo lookup table, kita bisa langsung menggunakan EDT, tapi bagaimana kalo yang mau di- lookup hanya data di table dengan kriteria tertentu saja. Untuk bisa melakukannya, kita bisa menggunakan script X++ di bawah ini :

public void lookup()
{
    Query                   query          = new Query();
    QueryBuildDataSource    queryBuildDataSource;
    QueryBuildRange         queryBuildRange;

    // Create an instance of SysTableLookup where 'this'
    // is the current form control.
    SysTableLookup sysTableLookup =
        SysTableLookup::newParameters(tableNum(emplTable), this);
    ;

    // Add fields to be shown in the lookup form.
    sysTableLookup.addLookupField(fieldNum(emplTable, emplId));
    //sysTableLookup.addLookupField(fieldNum(emplTable, Del_Name));

    // Limit and arrange the data selection.
    queryBuildDataSource = query.addDataSource(tableNum(emplTable));
    queryBuildRange = queryBuildDataSource.addRange(
        fieldNum(emplTable, Dimension));
    queryBuildRange.value('070');
    sysTableLookup.parmQuery(query);

    // Perform the lookup.
    sysTableLookup.performFormLookup();

    //Don't call super() (commented out in the code).
    //   super()
}

Read More

 
Misalkan saja kita punya 2 table, yakni table "SalesLine" dan "SalesTable". Kalau dilihat dari namanya, tentu saja yang menjadi table utama adalah  "SalesTable". Nah, untuk mencari record di "SalesTable" yang mempunyai kriteria tertentu kita bisa memakai cara di bawah ini :

Select * from _SalesLine where
//kriteria
_SalesLine.SalesId == SalesTable.SalesId &&
_SalesLine.QtyOrdered == 20 &&
_SalesLine.SalesStatus == SalesStatus::Invoiced;

//Ngecek apakah recornya ada
if(_SalesLine.RecId)
{

//Bila terpenuhi, mengerjakan script di bawah ini
super();
element.execute(1);

}

Read More

Ngutak - ngatik report Dynamics AX 2009, akhirnya nemu juga caranya memilah report berdasarkan batasan tanggal

public void executeSection()
{
PurchTable _PurchTable;
;
select firstonly RecId from _PurchTable where
_PurchTable.OrderAccount == VendTable.AccountNum;

if(_PurchTable.RecId)
{

super();

while select * from _PurcHline group by
_PurcHline.PurchId, _PurcHline.ItemId , _PurcHline.VariantId where
_PurcHline.VendAccount == VendTable.AccountNum &&
_PurcHline.DeliveryDate >= dtFrom &&
_PurcHline.DeliveryDate <= dtTo && _PurcHline.PurchStatus != (PurchStatus::Backorder || PurchStatus::Canceled) { element.execute(1); } } }

Read More

Mendengar bahasa pemrograman X++ mungkin bagi sebagian orang terdengar aneh. Sudah namanya X ada plus - plusnya pula. Apa sih sebenarnya bahasa X++ itu ?

X++ adalah bahasa pemrograman yang dipakai sebagai code behind of MorphX. MorphX sendiri adalah sebuah linkungan development yg sudah terintegrasi di Micorosoft Dynamics Ax dimana para developers dapat membuat DataType, Enumeration, Tables, Queries, Forms, Menus dan Reports. MorhpX men-support drag and drop functionality dan sangat user friendly. Selain itu juga dapat mengakses / membuat berbagai macam class-class yang tersedia dalam aplikasi dengan menggunakan X++ code editor.
 
Syntax X++ sendiri sebagian besar mengadaptasi dari syntax keluarga C. Kalau dilihat strukturnya, bahasa pemrograman X++ lebih mirip dengan bahasa C#. Disana terdapat Looping, Logical conditional (If condition...), Query (seperti halnya LINQ di .NET tanpa harus menggunakan object koneksi), Array, dsb.

Penggunaan query di X++ sangatlah mudah, kita bisa langsung menuliskan query tanpa mendefinisikan koneksi dengan database seperti pada pemrograman pada umumnya.Di bawah ini merupakan contoh source code X++ yang bisa langsung dicoba di Job-nya Microsof Dynamics Ax :

static void Coba(Args _args)
{
CustTable custTable;
;

select custTable
where custTable.AccountNum =="1103";
print "This is the address of Customer " +
custTable.AccountNum + ": " + custTable.Address;
pause;
}

Read More

Untuk membuat report yang dibatasi oleh periode tanggal, kita bisa menggunakan inputan berupa dialog. Cara membuatnya adalah sebagai berikut.

classDeclaration
public class ReportRun extends ObjectRun
{
dialogfield dfFromDate;
dialogfield dfToDate;
dialogGroup dialogGroup;
Date dtFrom, dtTo;
}

getFromDialog
public Object dialog(Object _dialog)
{
DialogRunbase dialog = _dialog;
;

dialogGroup = dialog.addGroup("Dialog Group");
dfFromDate = dialog.addField(typeID(FromDate));
dfToDate = dialog.addField(typeID(ToDate));

return dialog;
}

dialog
public boolean getFromDialog()
{
dtFrom = dfFromDate.value();
dtTo = dfToDate.value();

return true;
}

Hasilnya ketika kita running reportnya dari menu item adalah seperti gambar di bawah ini :

Read More

Untuk menampilkan total halaman pada report, caranya sangatlah mudah
1. Klik kanan pada elemen report (biasanya pada header atau footer-nya report), pilih New Control dengan type integer.


2. Pada Properties control yang baru dimasukkan tadi, isi dengan "pagestotal".

Read More

Ini merupakan salah satu cara untuk menampilkan data nomor halaman pada report yang kita buat.
1. Klik kanan pada elemen report (biasanya pada header atau footer-nya report), pilih New Control dengan type integer.


2. Pada Properties control yang baru dimasukkan tadi, isi dengan "page".

Read More