Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

Cari Blog Ini

13 Oktober 2016

Problem koneksi eksternal database (SQL Server 2012) melaului AX 2012.

Saya ada kebutuhan untuk melakukan query terhadap data di luar database AX yang kemudian dimasukkan ke dalam data AX. Membaca dari Google, ada dua contoh. Yaitu melalui Odbc dan NET.Framework (SQLClient). Namun saya hanya berhasil mencoba yang ODBC. Dan memang contoh yang diberikan oleh Microsoft sendiri melalui ODBC karena sudah bawaan AX sendiri. Gambaran proses yang akan saya buat: AX melakukan proses query terhadap database ekseternal yang dilakukan terjadwal (via batch process). Hasil query disimpan di database AX. 

Maka saya perlu membuat class dan mendaftarkan batch nya seperti yang ada di tutorial: https://msdn.microsoft.com/en-us/library/cc636647.aspx. Di dalam class tersebut saya isikan proses query terhadap database eksternal yang tutorialnya ada di: https://msdn.microsoft.com/en-us/library/ee677510.aspx

Namun ternyata tidak semudah yang dibayangkan. Job menghasilkan pesan error: "Data source not found and no default driver specified"

Dari searching di google, disebutan karena tidak ditemukannya DSN di system. Karena kita menggunakan ODBC maka kita harus membuat DSN sebagai settingan koneksi. Setelah saya tambah terjadi error yang berbeda: "The specified DSN contains an architecture mismatch between the Driver and Application"

Kali ini error tersebut karena masalah ODBC 32 bit yang digunakan untuk 64 bit. Jika kita menjalankan class itu di sisi client (via job manual) maka kita harus setting DSN di ODBC 32 bit. Namun karena kita jalankan melalui batch maka yang dipakai adalah ODBC 64 bit. Penjelasannya di: http://dynamics-ax-live.blogspot.co.id/2009/09/error-data-source-name-not-found-and-no.html

Selanjutnya ternyata masih error sebagai berikut:[Microsoft][ODBC SQL Server Driver][SQL Server]Cannot open database "DB_finger" requested by the login. The login failed.

Error ini cukup lama saya cari solusinya. Karena saya tidak berhasil mencari informasi jelas di google atas problem ini. Dari pesan errornya masalahnya adalah masalah login yang gagal. Di DNS saya sudah setting user/password dengan benar. (Saya check koneksinya juga ok). Saya juga sempat mengosongkan password untuk user tersebut, namun tetap tidak berhasil dengan pesan yang sama.

Akhirnya titik terang muncul setelah saya mencoba mengganti driver ODBC menjadi SQL Server Native Client 11.0 (SQL Server 2012) karena kemudian muncul pesan yang berbeda. "Login failed for ...."


Dari error ini menjadi jelas, karena ternyata batch server AX tidak menggunakan user & password yang di setting di DSN. Namun menggunakan user yang sama dengan user dimana AOS service digunakan. Dan ketika saya tambahkan hak akses user tersebut terhadap database yang saya tuju ternyata hasilnya berjalan dengan sempurna.


Tidak ada komentar: