Showing posts with label Axapta. Show all posts
Showing posts with label Axapta. Show all posts

Thursday, May 20, 2010

Microsoft Dynamic Navision VS Axapta

Jika anda sedang dalam proses memilih antara Navision dengan Axapta, berikut komparasi penilaian pribadi saya yang bisa jadi pertimbangan.
Navision
good
  • Murah.
  • Instalasi gampang.
  • Memiliki modul Accounting-Finance yang bagus.
jelek
  • Manajemen usernya parah.
  • Bahasa pemrogramannya seperti pascal. Tidak object oriented alias tidak high class.
  • Kalau koneksi jaringan putus, programnya langsung eror.
  • Tidak bisa dijalankan di database kelas tinggi. Hanya bisa di database kelas menengah yaitu SQL Server.
  • Production Order-nya payah. Tidak ada BOM Designer seperti di Axapta. Untuk Manufacturing, Navision kurang bisa dihandalkan.
Axapta
good
  • Manajemen usernya bagus, gampang dan variatif.
  • Bahasa pemrogramannya seperti C++/C#/JAVA. Sangat berkelas.
  • Bisa jalan di Database Oracle. Di SQL Server pun bisa dijalankan dengan sql server clustering.
jelek
  • Mahal.
  • Instalasi susah. Harus menggunakan active directory. Sedangkan implementasi Active directory pun juga tidak murah, karena perangkat kerasnya tidak bisa support dibawah Windows ME lagi, harus support Windows XP dan diatasnya.
  • Ribet karena terlalu banyak modul yang tidak bermanfaat.
  • Kalau buat report, sangat menyakitkan. Bagi yang terbiasa dengan Crystal Report, membuat Report dengan Axapta sangatlah menyebalkan.
--
That's it. Semoga berguna.

Tuesday, September 23, 2008

Limited Access Per Group via xSessions

Tulisan saya tentang membuat limited access per group ternyata mengandung kesalahan. Tips ini bisa dipakai jika semua user-nya memiliki permission sebagai developer yang bisa diketahui dari User > Permission > Tools > Development Tools = Tercentang. Jika tidak, maka tips ini tidak bisa alias error. Hal ini disebabkan Table SysClientSessions adalah table admin yang ternyata tidak bisa disentuh oleh user yang TIDAK memiliki hak sebagai admin. Karena itu, solusinya adalah bukan membaca langsung Table SysClientSessions, tapi ubah jadi membaca pembungkusnya yaitu class xSessions.

Untuk memperbaikinya, butuh sedikit perubahan. Penambahan script di SysStartupCmd bisa diremark, lalu tambahkan kode berikut ini di class Info > startupPost :

/*
No SYS code must exist in this method
*/
void startupPost()
{


int counter;
int num = 0;
int maxSessions = Info::licensedUsersTotal();
xSession _xSession;
UserInfo userInfo;
UserInfo userInfo2;
UserId currentUserId;

SysClientSessions _SysClientSessions;
ABCUserGroupList _ABCUserGroupList;
ABCUserGroupList _ABCUserGroupList2;
ABCUserGroupInfo _ABCUserGroupInfo;
xSession session;
int x, y;
int maxSession ;

;
currentUserId = curuserid();

session = new xSession();
x = 0;
y = 0;
while select * from _ABCUserGroupList
where _ABCUserGroupList.userid == session.userId()
{
x++;
}
if ( x > 0 )
{
select ABCgroupid from _ABCUserGroupList
where _ABCUserGroupList.userid == session.userId() ;

select total from _ABCUserGroupInfo
where _ABCUserGroupInfo.id == _ABCUserGroupList.ABCgroupid;

maxSession = _ABCUserGroupInfo.total;

/* alur logika
1. dapatkan ABCgroupid nya apa
2. cek ke ABCusergrouplist dengan ABCgroupid tersebut
3. cek ke sessionid
*/

counter = 0;

while select * from _ABCUserGroupList2
where _ABCUserGroupList2.ABCgroupid == _ABCUserGroupList.ABCgroupid
{
for(counter = 1; counter <>
{
session = new xSession(counter, true);
if(session.userId() == _ABCUserGroupList2.userid )
{
y++;
}
}

}

if ( y > maxSession )
{
Box::info( 'Sorry, your group is full.', 'Administrator' );
{
this.shutDown(true);
}
}
}

}

Wednesday, September 10, 2008

Membuat Limited Access Per Group di Axapta 4.0

Sebetulnya, saya tidak tertarik untuk menulis yang berbau teknikal. Apalagi kerjaan. Tapi, berhubung kerjaan saya kali ini sedikit merangsang alias menantang, ada sedikit unsur-unsur nge-hack Axapta, maka hasil dari kerjaan ini kepingin saya share ke umum melalui blog ini.

Saya ditugaskan untuk memberi batasan bagi user yang masuk ke axapta per group. Misal, kalau group sales, punya jumlah user = 10, tapi ingin dibatesin yang boleh login cuma 5, jadi kalau orang ke 6 login untuk group tersebut, langsung di tendang oleh Axapta. nah, pembatasan seperti ini, di aplikasi Standar axapta tidak ada. Wajib membuat modifikasinya.

Pertama, rancang dulu table untuk menampung group yang dikhususkan bagi modifikasi limited user per group ini. Contohnya bisa dilihat di table sysUserGroupList dan SysUserGroupInfo.

Table: ABCUserGroupList
userid - string
ABCgroupid - string

Table: ABCUserGroupInfo
id - string
name - string
total - int (maximum user login)

Kedua, Buat form untuk user interface table ABCUserGroupInfo. Contohnya:



Buat form untuk user interface table ABCUserGroupList. Untuk membuat form ini, bisa mencontek dari Form tutorial_ListPanel. Hasilnya:



Selanjutnya, mulai buat code di class SysStartupCmd untuk proses menjalankan perintah kala startup Axapta.

case 'limitABCuser':
sysStartupCmd = new SysStartupCmdLimitABCUser(s,parm);
break;



Buat class baru SysStartupCmdLimitABCUser :

class SysStartupCmdLimitABCUser extends SysStartupCmd

{
}


void applInit()
{
Args args;
FormRun formRun;

SysClientSessions _SysClientSessions;
ABCUserGroupList _ABCUserGroupList;
ABCUserGroupList _ABCUserGroupList2;
ABCUserGroupInfo _ABCUserGroupInfo;
xSession session;
int x, y;
int maxSession ;
;


session = new xSession();
x = 0;
y = 0;
while select * from _ABCUserGroupList
where _ABCUserGroupList.userid == session.userId()
{
x++;
}

if ( x > 0 )
{
select ABCgroupid from _ABCUserGroupList
where _ABCUserGroupList.userid == session.userId() ;

select total from _ABCUserGroupInfo
where _ABCUserGroupInfo.id == _ABCUserGroupList.ABCgroupid;

maxSession = _ABCUserGroupInfo.total;

// cek di syssession

while select * from _SysClientSessions
join _ABCUserGroupList2
where _SysClientSessions.userId == _ABCUserGroupList2.userid
&& _SysClientSessions.Status == 1
&& _ABCUserGroupList2.ABCgroupid == _ABCUserGroupList.ABCgroupid
{
y++;
}

if ( y > maxSession )
{
this.shutdown();
}
}
}


---
Jika sudah menambahkan code diatas, sekarang masuk ke Axapta configuration utility, lalu tambahkan perintah "limitABCuser" di Command to run at application startup.

Setelah itu, tinggal ditutup Axapta clientnya lalu dibuka kembali untuk melihat hasilnya.

***

Note: Kode ABC adalah kode untuk kode projek anda. Bisa diganti sesuai kode projek.

Kategori

info (205) foto (133) komentar ga penting (128) fotografi (123) Technology (104) Kantor (95) website (88) blog (84) Jakarta (78) comic strip (75) bisnis (71) karir (51) suara hati (51) senda-gurau (50) wisata (38) Bekasi (37) Internet (34) manajemen (31) kuliner (22) selebritis (21) soccer (21) Navision (20) iklan (14) kasus (14) sql server 2005 (13) buku (11) Greeting (10) movie (10) komik strip (9) novel (9) programming (9) televisi (9) Banjir (8) VCD/DVD (8) kopi (8) Vanessa (7) billiard (7) hypermarket (7) bogor (6) kesehatan (6) rumah (6) old document (5) Terios (4) basket (4) guru (4) Axapta (3) bioinformatika (3) azure (1)

My Instagram