31 Aralık 2009 Perşembe

Dynamics Ax Servisi atama

MS Dynamics Ax kurulumlarında geliştirme veya test ortamları kurulumu yapılıyorsa AOS servisini çalıştırmak için NT AUTHORITY\NETWORK SERVICE hesabının kullanılması tavsiye edilir.
Eğer müşteri kurulumu yapılıyorsa yapılandırma ve güvenlik gerekçeleriyle yeni bir hesap açılıp bu hesap üzerinden kurulum yapılmalıdır.
Bu durumda açılan hesabın SQL'de Ax veritabanı üzerinde db_ddladmin, db_datawriter, db_datareader rollerinin üyesi olması yeterlidir.

Eğer Ax kurulumu yapılan kullanıcı daha sonra değiştirilirse
DB üzerinde SQL-> AXDB -> Security-> Users bölümünde kullanıcı eklenmeli , yukardaki roller atanmalıdır.
Ayrıca SQL -> AXDB -> Security -> Users -> Securable bölümünde CREATESERVERSESSIONS , CREATEUSERSESSIONS prosedürleri eklenmeli Exec yetkisi verilmedir.
Aksi taktirde sistem servisi başlatmayacak
"Object Server 01: Internal Error occurred executing stored procedure when creating session for the AOS. "
hatası verecektir.

Ax2009 da kullanılan Office Web Components tarih olacak

Microsoft Office 2003 sürümünden sonra OWC11 setini kaldırmış.
http://blogs.msdn.com/excel/archive/2006/07/17/668544.aspx
adresinden açıklama okunabilir.
Bu Axv4 veya Ax2009 da yapılan geliştirmelere son vermek gerektiğini söyler açıkça.
Microsoft Office Pivot Table
Microsoft Office SpreadSheet
Microsoft Office Chart activexleri ile yapılan geliştirmeler için alternatifleri öğrenmeli.
"Yaşasın SharePoint" demeli ;)
Yinede mevcut geliştirmeler için veya elimahkum geliştirmeler için bağımsız olarak kullanılabilir.

http://www.microsoft.com/downloads/details.aspx?familyid=7287252C-402E-4F72-97A5-E0FD290D4B76&displaylang=en

adresinden dosyalar indirilebilir.

23 Eylül 2009 Çarşamba

Axapta Excel import text formatted numeric values

While importing string values from MS Excel we use

SysExcelWorksheet.cells().item(8,j).value().bstr();

But, if cell value is numeric, Excel returns blank value.
So you have to control the value by a function below :

str valuestr(SysExcelCell _cell)
{
if (_cell.value().bStr())
return _cell.value().bStr();
else
{
if (_cell.value().double())
return strltrim(num2str(_cell.value().double(),20,0,0,0));
return "";

}

}