Iin Dewi Wahyuni

See also: Other Geeks@INDC
New, Changed, and Deprecated Features for Microsoft Dynamics AX 2012
See the attachment and download it !!!
Share this post: | | | |
Setting up intercompany for intracompany direct delivery - AX 2009

You can use Microsoft Dynamics™ AX intercompany functionality within one company as an intracompany direct delivery solution. This solution is relevant for companies that want to measure sites as independent cost centers when sites make deliveries on behalf of one another. This document describes one of the many ways to set up and use intercompany for intracompany direct delivery.


Note that intracompany direct delivery was not the original purpose of the intercompany functionality, and therefore, there are limitations to this solution that are related to the structure of companies within Microsoft Dynamics AX. One company is designed for one legal entity with one VAT number and in which all sites are placed in the same country. Some specific limitations to this solution are listed in the Extended Use section in this document.

Share this post: | | | |
What’s New in Microsoft Dynamics AX 2012 for Developers

Disclaimer: This document provides a summary of the developer features that will be implemented in Microsoft Dynamics AX 2012. Familiarity with Microsoft Dynamics AX or other business management software is assumed. The information in this document is subject to change without notice.

What's New in Microsoft Dynamics AX 2012 for Developers 
What's New: Analytics for Developers in Microsoft Dynamics AX 2012 
What's New: AOS and Database for Developers in Microsoft Dynamics AX 2012 
What's New: Best Practices for Developers in Microsoft Dynamics AX 2012
What's New: Client for Developers in Microsoft Dynamics AX 2012
What's New: Enterprise Portal for Developers in Microsoft Dynamics AX 2012
What's New: Help System for Developers in Microsoft Dynamics AX 2012
What's New: MorphX Development for Developers in Microsoft Dynamics AX 2012
What's New: MorphX Tools for Developers in Microsoft Dynamics AX 2012
What's New: Reporting for Developers in Microsoft Dynamics AX 2012
What's New: Security for Developers in Microsoft Dynamics AX 2012
What's New: Services & AIF for Developers in Microsoft Dynamics AX 2012
What's New: Visual Studio Tools for Developers in Microsoft Dynamics AX 2012
What's New: Workflow for Developers in Microsoft Dynamics AX 2012
What's New: X++ for Developers in Microsoft Dynamics AX 2012

 

Share this post: | | | |
Microsoft Dynamics AX 2012 A New Generation in ERP

 Microsoft Dynamics® AX 2012 is not just the next release of a great product. It is, in fact, a generational shift in business software, delivering new levels of capability, unmatched agility, and a compelling and empowering user experience. At the same time, Microsoft Dynamics AX 2012 sets a new standard for simplicity. This paper does not pretend to capture every detail of the product, but instead highlights the key innovations that make Microsoft Dynamics AX 2012 powerful, agile, and simple.

The document is on the attachment, you can download it !!

Share this post: | | | |
New HotFix of Dynamics AX 2009 Service Pack 1 is Available !!

 The serial number of inventory transactions on an intercompany purchase order is duplicated in Microsoft Dynamics AX 2009 and to solve this problem you should download the hotFix and install it to your AOS server. You can download it in here, find the attachment !!

Share this post: | | | |
Penggunaan ODBC di Dynamics AX
Dynamics AX mempunyai koneksi ke Database-nya sendiri melalui AOS setting Server Configuration sebagai Default Database, namun Dynamics AX mempunyai feature dapat mengakses data dari Database lain dengan platform yang berbeda dengan Database default-nya pada saat bersamaan (concurrent). Salah satu object yang bisa kita pakai yaitu OdbcConnection yang merupakan sebuah object untuk melakukan koneksi ke Database melalui ODBC.

Cara penggunaan :
1. Kita set sebuah User DSN di ODBC (contohnya : "TEST_AX"), lalu kita arahkan ke suatu database tertentu, bisa berupa SQL Server, Oracle, DB2, dan lain2x.
2. Kita gunakan object OdbcConnection untuk koneksi ke ODBC.

    Contoh Code :

    OdbcConnection  oc;
    LoginProperty   lp;
    ResultSet       rs;
    Statement       s;
    str             sql;
    ;

    lp = new LoginProperty();
    lp.setDSN("TEST_AX");
    oc = new OdbcConnection(lp);
    s = oc.createStatement();
    sql = "syntax query";
    rs = s.executeQuery(sql);
    while (rs.next())
    {
        info(rs.getString(1));
    }


Semoga bermanfaat.

Share this post: | | | |
Dapatkah Dynamics Ax membaca data yang dimasukkan lewat Database secara langsung ?

 Pertanyaan itu sering diajukan ke beberapa teknikal dan semua menjawabnya "emang bisa ?"

Jawabannya : ya masih bisa dibaca oleh Ax selama apa yang dimasukkan itu memenuhi standar Ax, namun siapa yg bisa menjamin apakah data yang dimasukkan itu akan sesuai dengan standar Ax ? karena kita harus sudah mengetahui secara detail fungsi per field maupun relation antar table untuk menjamin bahwa apakah yg kita masukkan itu sudah sesuai dengan standar Ax.

Untuk memecahkan masalah tersebut, maka ada solusi yang bisa kita ambil, solusi ini pernah saya implementasikan di beberapa company (red. user) dan berhasil, yaitu dengan membuat table-table temporary lalu kemudian untuk memasukkan ke table-table transaksi standar Ax itu dengan cara menggunakan function-function atau method-method yang memang biasa dipakai untuk pembuatan data transaksi.

Yang pernah saya implementasikan yaitu pembuatan Sales Order di sebuah system kecil di luar Ax, lalu kemudian data sales order ini dimasukkan ke dalam system Ax melalui sinkronisasi antar Database dimana record-record yang dimasukkan sudah barang tentu tidak ada RecId-nya, namun Ax masih tetap bisa membacanya (selama yang membaca record tersebut bukan form-form transaksi standar Ax) tapi merupakan table-table temporary, lalu kemudian saya masukkan data sales order tersebut dengan menggunakan method-method standar Ax untuk pembuatan Sales Order.

Demikian secuil knowledge yang bisa saya sharing. Semoga bermanfaat.

 

Share this post: | | | |
How to access other data in other company accounts in Axapta / Cross Company

First of all we have to understand the concept of Axapta, that one AOS (Application Object Service) of Axapta can have many company accounts, one AOS can be described as one Group of company, and each company accounts in Axapta can be described as sub ordinary of the company group. Just say one group company who implemented Axapta wants to put all their sub ordinary company to one AOS, that mean we have to setup the parameter so that can have more than one company accounts, each company accounts can have their own setup parameters.

There is one feature in Dynamics Ax 2009 which is can access other data in other company accounts through the code or through Data Source object, we called it cross company.

For example cross company in DataSource. Each Form or Report object have DataSource to pull the data into it. We can add Table/Query object as DataSource or we can call them at runtime.

This is the example how to setup the DataSource to enable the cross company feature below :


This is the example how to setup the DataSource through the code. What you see is that we setup the cross company through query variable that pull the data from DataSource :

There is one DataSource "InventTable".

public boolean fetch()
{
    Query                   qry = new Query();
    QueryRun                qr;
    QueryBuildDataSource    queryBuildDataSource;
    ;
 
    queryBuildDataSource = qry.addDataSource(tableNum(InventTable));
    qr = new queryrun(qry);
    qr.allowCrossCompany(true);//true means that the object allowed cross company, false means didn't allowed cross company
    while (qr.next())
    {
        ........
    }
}

This is the example how to pull the data through syntax query :

"Select crosscompany : companyList InventTable;"

InventTable is one of the table in Axapta
companyList is container variable that kept the list of company accounts that allowed to be access.

I hope it can help...

Share this post: | | | |
Add user from different forest of domain in Microsoft Dynamics Ax
Q : Can we add user from more than 1 forest of domain ?
A : Yes Microsoft Dynamics Ax can add user from more than 1 forest of domain, please following the step below

1.   Enter to Administration Module

2.   Click Users Form on Forms, wait until it open

 

3.   Click button Import on the right of the Users form, wait until the Active Directory Import Wizard form open. Click Next…

 

 

4.   Wait until Select Domain form open


Click combo box Domain Name and pick the domain that the user belongs to and then you can enter user’s name by her/his First Name or Last Name or Display Name or Title or Company or Business Unit or Alias and then click Next until the process is done...

 

You can do the same process for other user on different forest of domain. 

 

I hope it can help….

    Share this post: | | | |
    Fungsi-fungsi baru di Micorosft Dynamics Axapta 2009 Part I
    Ada beberapa penambahan maupun perubahan di Axapta 2009, antara lain :
    1. User Interface yang berbeda dengan Ax 3.0 dan 4.0
    2. Penambahan Role Center functionality. Role Center menyuguhkan data, reports, alerts, dan tugas-tugas yang umum disesuaikan dengan role seorang user dalam sebuah organisasi. User dapat mengakses Role Center ini melalui Ax CLient ataupun Enterprise Portal Web Site
    3. Workflow.

    Dalam axapta workflow mempunyai 2 definisi, yaitu :
    i.  Workflow sebagai System. Workflow system menyediakan beberapa functionality yang dapat di gunakan untuk membuat alur kerja secara individu atapun membuat bisnis proses sendiri.
    ii. Workflow sebagai bisnis proses. Workflow merepresentasikan sebuah bisnis proses yang menggambarkan bagaimana alur dokumen melalui system dengan  melalui proses approval.

    Keuntungan menggunakan Workflow :
    1. Proses yang konsisten. Workflow system membolehkan para manager untuk menentukan proses approval terhadap dokumen tertentu.
    2. Proses yang transparan. Workflow system membolehkan para manager menelusuri status dan history alur kerja dari sebuah organisasi. Hal ini untuk membantu para manager dalam menganalisa dan menentukan perubahan-perubahan alur kerja untuk efisiensi kerja para pekerjanya.
    3. Daftar kerja yang terpusat. User dapat melihat daftar kerja yang harus dilakukan.

     

    Share this post: | | | |
    Cara penggunaan Microsoft.Dynamics.BusinessConnectorNet di .NET

    Untuk dapat menggunakan library ini kita cukup menginstall client axaptanya, namun apabila kita ingin menggunakan resource axapta maka kita harus meng-install Axapta servernya atau yang sering di sebut sebagai AOS (AXapta Object Server). AOS merupakan tier ke dua dalam three tier Microsoft Dynamics Axapta design arsitektur.

    Ketiga tier tersebut antara lain :
    1. Intelligent Client
    2. AOS (Axapta Object Server)
    3. Database Server (SQL Server or Oracle)

    Setelah kita install client maka kita dapat langsung meng-add reference melalui Axapta COM object atau yg sering kita sebut sebagai Microsoft.Dynamics.BusinessConnectorNet, baik melalui Tab Com ataupun seandainya kita mengetahui langsung letak DLL tersebut disimpan maka kita bisa browse secara langsung.

    Apabila DLL sudah kita add dalam sebuah project (Win or Web or WPF) maka kita bisa langsung menggunakannya.
    Contoh di bawah adalah contoh penggunaan BusinessConnector di Win project.

    1. Add Microsoft.Dynamics.BusinessConnectorNet.dll ke dalam project.



    2. masukkan Microsoft.Dynamics.BusinessConnectorNet namespace.



    3. Dibawah ini contoh code penggunaannya.

        Axapta ax = new Axapta();
        ax.LogonAs("Soltius", "SOLTIUS-IDW", null, "DAT", null, "SOLTIUS-IDW", null);
        MessageBox.Show(ax.CallStaticClassMethod("Global", "numeralsToTxt", 1200).ToString());
        ax.Dispose();

    Contoh ini adalah penggunaan Class Global yang memanggil method numeralsToTxt, fungsi numeralsToTxt adalah untuk menyebut sebuah numeric ke dalam kata-kata, sebagai contoh saya masukkan nilai 1200 maka yang muncul adalah "*** One Thousand Two Hundred and 00/100".

    Untuk dapat memanggil object-object yang ada di axapta maka kita harus melakukan logon terlebih dahulu yaitu dengan memanggil method LogonAs yang terdapat dalam Axapta Class. Sedangkan untuk memanggil object yang ada dalam axapta, kita akan gunakan function CallStaticClassMethod.

    Saya sertakan juga contoh simple project (WinForm, WPF dan Web) yg bisa di download di attachment. Project ini saya buat dengan menggunakan VS2008.

    Semoga bermanfaat....

     

    Share this post: | | | |
    Bagaimana menambahkan sorting at runtime di X++

    Ada beberapa cara untuk menambahkan sorting field di axapta, salah satunya adalah menambahkan pada saat runtime.

    Berikut adalah contohnya :

    this.query().dataSourceName("InventLocation").addSortField(fieldnum(InventLocation, InventLocationId), SortOrder::Ascending);

    Penjelasan :
    - InventLocation adalah nama sebuah table.
    - fieldnum adalah sebuah fungsi untuk men-cast dari object sebuah table ke integer, dengan kata lain untuk mendapatkan idnumber dari sebuah field kita gunakan fieldnum function. Pada saat kita memanggil function fieldnum terdapat 2 parameter yang harus kita masukkan yaitu, nama table dan nama field. Cara memanggilnya adalah fieldnum(NamaTable, NamaField).
    - dataSourceName adalah sebuah fungsi untuk memanggil sebuah datasource table/query yang kita attach di dalam sebuah report atau form.
    - SortOrder::Ascending adalah sebuah enumeration object. Ada 2 value yaitu Ascending yang bernilai 0 dan Descending yang bernilai 1

    Share this post: | | | |
    Penggunaan fungsi row_number() untuk paging data di SQL Server

    Fungsi row_number() adalah untuk mengembalikan sequential number untuk setiap record.

    Contoh penggunaan row_number() untuk keperluan paging data :

    Terdapat sebuah table CustTable yang menampung data customer yang terdiri dari 2 field yaitu, CustID dan CustName. Dan kasus yang akan di tampilkan adalah bagaimana menampilkan data di page ke-1 dan setiap page hanya akan menampilkan 10 record.
    Jadi querynya adalah :

    Declare @CountRow int, @PageRow int, @PageNum int, @PageSize int
    Select @PageNum = 1, @PageSize = 10
    SELECT @CountRow = COUNT(1) FROM CustTable
    IF  @CountRow > @PageSize
     SET @PageRow = (@CountRow / @PageSize) + 1
    ELSE SET @PageRow = 1

    SELECT * FROM
    (
     SELECT row_number() over (ORDER BY CustID desc) as ROWNUM, *
     FROM CustTable
    ) TMPCUSTTABLE
    WHERE ROWNUM BETWEEN ((@PageNum * @PageSize) - @PageSize) + 1 AND (@PageNum * @PageSize)

    Semoga bermanfaat...

     

    Share this post: | | | |
    Module-Module Dynamics Ax
    Modul-modul standar Dynamics Ax seperti terlihat di bawah ini :

    Share this post: | | | |
    Number Sequence di Dynamics Ax

    Fungsi dari Number Sequence adalah untuk men-generate auto number ID berdasarkan format yang telah di tentukan di setup Number Sequence yang berada di module Basic -> Setup -> Number Sequences -> Number Sequences

     

    Di dalam setup sequence number terdapat field yang harus kita isi antara lain :
    - Number Sequence Code, adalah kode unik bagi masing-masing number sequence.
    - Name, adalah deskripsi mengenai kegunaan dari masing-masing number sequence.
    - Smallest, adalah angka awal number sequence akan ter-generate
    - Largest, adalah angka maksimal untuk menentukan batas number sequence akan ter-generate
    - Format, adalah untuk menentukan format number sequence, contoh : #####_test, maka setiap kali number sequence ini dipakai dalam sebuah proses maka format yang akan muncul adalah 00001_test, 00002_test, 00003_test, dst.


    Cara penggunaan Number Sequence :
    Buatlah sebuah job dan beri nama SampleNumberSequence.

    static void SampleNumberSequence(Args _args)
    {
        NumberSequenceTable         _numberSequenceTable;
        NumberSeq                            _numberSeq;
        ;
       
        _numberSequenceTable = NumberSequenceTable::find("Acco_21");
        _numberSeq = NumberSeq::newGetNumFromCode(_numberSequenceTable.NumberSequence, true);
        info(strfmt("%1", _numberSeq.num()));
    }

    Setelah tulis sample code di atas, cobalah untuk membuka jobs tersebut (bukalah berulang-ulang maka akan terlihat hasilnya).

    Share this post: | | | |
    More Posts Next page »