Pages

Wednesday, June 12, 2013

DAVETLİSİNİZ - 18 Haziran - İnşaat Proje Yönetim Semineri

Merhaba,

Üzerinde 1 yildan fazla calistigimiz XPM - Insaat Proje Yonetimi Modulu bir seminer ile duyurulacaktir.

Asagidaki linkten katilim kaydi olusturabilirsiniz.

http://lnkd.in/ztwv5H

18Haziran_insaat_xpm.jpg

Saturday, June 8, 2013

Excel Add-in “XppBridgeException was thrown” error

Merhaba,

Bir önceki makalemde custom bir tabloyu nasıl dimension olarak tanımlayabileceğimizden bahsetmiştim.
http://blog.etg-it.com/2013/03/25/custom-bir-tabloyu-ax-2012-de-bir-boyut-olarak-tanimlamak/
Bu makaledeki gibi bir tabloyu dimension yaparsanız ve bu dimension ile ilgili kayıtlar girerseniz, deftere nakiller, siparişler açarsanız işlerin çok güzel gittiğini göreceksiniz.

Ama bir gün gelip o tablo için oluşturduğunuz viewi silerseniz(Aot ye gelip, delete ile silmek:)) ve excel add-in ile bir tablodan kayıt atmaya çalışırsanız, aşağıdaki hatayı alacaksınız. Çok anlamasız bir hata ve Aos server de event viewer da bir log oluşturmuyor. Bulmak ve incelemek çok zor. Ama Ax dünyasındaki her hata gibi, sizi yine utandıracak bir sebebi var:)



Bu aslında çok tehlikeli bir işlem. Yapılmaması gerekiyor. Ama yapılmaması için bir engel yok. Bu hatanın çözümü için şuana kadar benim bulduğum çözüm ilgili dimension tablolarında ilgili dimension kayıtları silmek. bunun yapmadan önce account structure yi değiştirmek gerekecek.

View ile ilgili recid bağlantılı bir yapı olduğu için bu hata çıkıyor diye düşünüyorum. Dikkat ediniz lütfen.

Umarım yararlı olur.

Custom bir tabloyu Ax 2012 de bir boyut olarak tanımlamak…

Merhaba,

Ax 2012 de biliyorsunuz artık dimension diye bir yapınız yok. Artık belli kurulumlara bir structure oluşturup kullanabiliyorsunuz. Bu yapının en güzel özelliği, raporlamak için kırılım yapacağınız bir datayı(Tüzel kişilik, müşteri, maliyet merkezi, satıcı gibi) siz tanımlar tanımlamaz dimension olarak yapınızda kullanabiliyorsunuz. Bu bir datanın iki kez tanımlanmasından tutun, veri tutarlığına kadar bir çok noktayı çok verimli kılıyor.
Bu konuda aşağıdaki makaleyi çok verimli gördüm ve paylaşmak istedim.

http://msdax.wordpress.com/2012/02/05/financial-dimension-dynamics-ax-2012-great-enhancement/
Bu makalede okuyacağınız gibi istediğiniz bir tabloyu artık bir dimension olarak kullanmak mümkün. Devam etmekte olan bir projemizde bunun ne kadar faydalı olduğunu anlatmak için bu makaleyi yazma gereksinimi duydum.

Bu projemizin 2009 versiyonunda Gayrimenkul tanımlarını yapmak için bir dimensionu rezerve ediyorduk. 10 tane olan dimensionun birini gasp ediyorduk da denilebilir. Çünkü her bir dimension bir lisans, her lisans bir maliyet demekti:) Bunu parametrik yapmak için bir parametre tablomuz vardı. Her gayrimenkul tanımı yapıldığında bu dimension da bir kayıt yaratıyorduk. Bu gerçekten anlatımı ve danışmanlığı zor bir konu idi.
Ax 2012 versiyonu ile beraber bu tablomuz için makalede geçtiği gibi DimAttribute[GayrimenkulTablosuAdı] olarak bir view oluşturduk. diğer tanımları da benzer olan diğer tanımlarla karşılaştırarak 2 dk da yaptık. Ve kullanıma hazır. Yapılması gereken tüm geliştirme bu özellik sayesinde hemen yapılmış oldu. Lisans ücreti olmadan hemde…

Sizde bu işlemi yaparak dikey çözümleriniz de dimensionu kullanabilirsiniz.
Bir sonraki makalemde bununla ilgili bir problemden bahsedeceğim.

Insan Kaynakları – Personnel Action Types kuralları

Merhaba,

Bu makalemde Ax 2012 R2 ile gelen bir özellikten bahsedeceğim. (Personnel actions configuration key) Ax standart yapısına göre çok farklı geldiği için paylaşmak istedim. Normal koşullarda IK pozisyon tanımları yaparken yeni butonuna basıp bir pozisyon oluşturabiliyorduk. Bu pozisyonun herhangi bir alanını değiştirebiliyorduk.

Bu gelen özellik ile artık bu değişiklikler bir onaydan geçtikten sonra aktif olabiliyor. Hatta bunu ilgili tablosunda bir iş akışı konfigürasyonu ile de bağlayabiliyorsunuz. Bu özellik kurumsal firmalar için çok güzel bir özellik.

Ama bu olay, benim gibi sadece amacı iş akışı pozisyon seviyelerini oluşturmak olan birisi için çok uzun bir süreç:) Bunu araştırdığımda technet teki şu linkte görüleceği gibi bir lisans adımına(Ax dilinde: konfigürasyon, eng: License configuration) bağlandığını gördüm.
http://technet.microsoft.com/en-us/library/jj729778.aspx
—-



Bu yapı bana ilginç geldi. Normal şartlarda bunu bir parametre ile yapabilirdiniz. Ama çözümünün olması güzel. Sizde benim gibi bu onay adımları ile uğraşmak istemiyorsanız bu key i kaldırabilirsiniz.

Ax 2012 Data import, export, and migration

Merhaba,

Ax 2012 ile veri aktarımının ne kadar değiştiğini işin içine biraz giren herkes biliyor. İlk başta ne kadar güzel bir fonksiyon olduğunu, sonradan bu fonksiyonun ne kadar karmaşık olduğunu:) Bazen ilk aktardığınız veri dosyasından ertesi gün aktarmada çok büyük problem yaşadığımızı tecrübe ettik. Sinir bozucu bir kaç gece yaşanmış olabilir.

İlk bakışta bu sorunlar sistem ile ilgili bir problem gibi görünse de işin içine daha çok girdiğinizde bunların aslında daha sağlıklı veri aktarımı yapabilmek için gelen özellikler olduğunu anlıyoruz. O yüzden herkese tavsiyem biraz sabır.

Bu makalemde bu konuda edindiğim bazı tecrübeleri sizinle paylaşmak istiyorum:
1. Öncelikle technet teki şu makaleyi kesinlikle dikkatli bir biçimde linkleri ile beraber okumalısınız. Size bir yol haritası çizecektir.

http://technet.microsoft.com/EN-US/library/aa548629.aspx

2. Bu makalede Data Migration Framework diye bir yapının hayatımıza girdiğini(hatta ilk sıradan) göreceksiniz. Bu yapı benim araştırdığım kadarı ile belli bir ekibin 1 yılı aşkın çalışarak oluşturdugu bir yapı. MS danışmanlarına göre de çokça kullanılması gereken bir yapı. Bunun şu an beta olarak 2. sürümü çıkmış durumda. Dokümanlarını incelediğinizde çok iyi olduğunu anlayacaksınız. Yok artık diyebilirsiniz.
Kısacası 2009 ve öncesi versiyonlarındaki csv ve diğer aktarımlarının, biraz daha parametrik ve bir kere yapıldıktan sonra kullanıcının yapabileceği bir duruma gelmiş halidir. Ama csv gibi kontrolsüz değil, ultra kontrollü bir yapı var:)
Bu toolu kesinlikle projenin başındaki müşteri, satıcı, hesap planı, stok kartı, çalışan aktarımlarında kullanmak gerekir.
Basit ama teknik bir danışman ile yapılabilecek bir kurulumu var. Model aktarımı yapmanız gerekli. Buradan anlaşıldığı gibi artık ax menü yapısında artık bir veri aktarım modülü geliyor. Mutlu olabilirsiniz.



3. Excel Add-in ile yapılabilir bir veri aktarımı yöntemi var. Ama bu yöntem atılacak kayıt sayısının <10 .000="" aktarmak="" al="" asl="" at="" belerim="" benim="" bir="" bu="" civar="" d="" daki="" dikkat="" diye="" durumlarda="" edilmi="" eri="" etmenizde="" fayda="" harika="" i="" id="" in="" k="" ki.="" kullan="" l="" lmal="" m="" ma.="" metodlar="" name="" nbsp="" nda="" ne="" nedenle="" olan="" oldu="" p="" r="" rken="" say="" t="" tablo="" tablolar="" tavsiye="" tecr="" u="" update="" validate="" var.="" ve="" veri="" yaz="" yor.="">





4. Veri aktarımında yaşayacağınız en büyük sorunlardan birisi ax 2012 ile gelen CIL derleme işlemi. (Common Intermediate Language). Bu işlem ax ta yapılan kod dizilerini formatlayan bir işlem. Bunun veri aktarımı ile ne ilgisi var diyebilirsiniz. ama bilmelisiniz ki CIL in herşeyle ilgili var:) Standart tablolara bir veri aktarımı yapıyorsanız ve bir geliştirme yapmadıysanız excel add-in in her zaman doğru çalıştığını göreceksiniz. Ama Custom tablolar ve geliştirme yapılmış tablolara veri atıyorsanız mutlaka bu derleme işlemini yapmanız gerekli. Bu derleme işleminin sadece seçimli olan nesnelerde çalışanı var. Hata alırsanız ilk olarak bu derlemeyi yapmanız yeterli. Ama sorun devam ediyorsa Full CIL yapmanız gerekiyor. Bu işlem yaklaşık 1 saat sürebilir. Bu derleme işlemi sırasında excel add-in i kullanamazsınız, çünkü işlemin devam ettiği ile ilgili uyarı alırsınız.

5. Tablo yapıları konusuna da değinmek isterim. 2012 de artık tablo yapmak çok basit değil. Her türlü özelliğini doldurmanız gerekiyor. Yoksa patlayan bir nokta her zaman kapınızda artık. Bunlardan birisi Excel Add-in. Tablonuzda index yoksa , bir EDT kullanıp relation yapmadıysanız veri aktarmanız zor. Index in de recid dışında bişey olması gerekiyor. Bu cümle bir çok kişiyi üzecektir ne yazık ki:)

Veri aktarımlarında hepinize başarı diliyorum. Umarım faydalı olur.

Daha sonraki makalelerimde bu aktarım yöntemlerini daha geniş olarak yazacağım.

Ax 2012 Workflow “An unexpected error has occurred while opening the workflow. See the event log on the AOS and contact your system administrator to resolve the issue.” Error

Ax 2012′ de yine 2009 versiyonundaki gibi herhangi bir formu iş akışına açabiliyorsunuz.
Bu işlem sırasındaki bir bir hatadan bahsetmek istiyorum.
İş akışı oluşturmak için ilgili Wizard ları çalıştırdıktan sonra iş akışı kurmak için ilgili menüsünden yeni iş akışı oluşturduğunuzda aşağıdaki hatayı alacaksınız.
“An unexpected error has occurred while opening the workflow. See the event log on the AOS and contact your system administrator to resolve the issue.”



 

Bu hataya göre AOS Event viewer da şu log görünüyor. “Class MyWorkflowTypeDocument cannot be instantiated.“
Bu hatadan yola çıkarak bunun nedeninin bir derleme hatası olduğu tahmin ediliyordu.
Bu hatanın çözülebilmesi için Full CIL işlemini çalışmanız gerekiyor.

DMF Dil Problemi ve Çözümü

Merhaba,
AX 2012 de sabit verileri aktarmak için önerilen yöntem olan DMF ta yaşadığımız bir problemden bahsetmek istiyorum.
Eğer DMF kurulumunda kurulumun yaptığınız user id nin dili En-us dışında bir dil ise, aktarım sırasında problem yaşıyorsunuz.
Bunu çözmek için kurulumunu tekrarlamak gerekmiyor. Aşağıdaki adımları izlerseniz hata almadan işlem yapabilirsiniz.

1.Ax dilinizi ve yardım dilinizi en-us ye çekin.
2.Ax ı kapatıp açın.
3.Aşağıdaki jobu çalıştırın. Bu job var olan entitiyname lerinizi en-us olarak tekrar oluşturacaktır. Farklı joblarda yazılabilir. Ben bunu tercih ettim.
4.DMF menüdeki Target entities menüsünü açıyoruz.
5.Entity name alanı HSN ile bitmeyenleri siliyoruz.
6.Dili tekrar kendi dilinize çekebilirsiniz.


Ayrıca hatırlatmak isterim. DMF te veri aktarımı yaparken mutlaka dil seçiminizin mutlaka En-us olması gerekiyor. Yoksa hatalar alabilirsiniz.

static void recreatDMFEntity(Args _args)
{
DMFEntity entityfrom;
DMFEntity entityto;


ttsBegin;
while select entityfrom
where entityfrom.recid <= (DMFEntity tablosundaki kayıtların recid si en büyük olanı)
{
Entityto.clear();
buf2Buf(entityfrom,entityto)
entityto.EntityName = enum2str(entityfrom.Type) + "HSN";
entityto.insert();
}
info(“bitti”);
ttsCommit;
}

Ax 2012 – Excel Add-in Error – The data in the workbook and the behavior of any add-ins may not be correct

Merhaba,
Excel aktarımlarında bir çok kişinin karşılaştığı bir hatadan bahsetmek istiyorum. Hata aşağıdaki resimde gördüğünüz gibi veriyi hazırlayıp Publish ettiğinizde geliyor. “The data in the workbook and the behavior of any add-ins may not be correct” cümlesinden de anlaşılacağı üzere sizin aktarmaya çalıştığınız excel dosyası verilerinde bir sorun olduğu anlaşılıyor. 

Hatayı bir çok blogta aradım, ama net bir cevap bulamadığım için bu yazıyı yazma gereksinimi duydum. Başka sebepleri de olabilir ama benim bulduğum sebepten size bahsedeceğim. Artık biliyorsunuz Excel den veri aktarmak işi, sizin ax üzerindeki geliştirmelerinizi test eden ve size yanlış işler yaptığınızı bilgilendiren bir araç oldu. 

Bu hatanın sebebi yine malesef sizin excel satırlarına atmış olduğunuz verinin ax ile uyumsuz bir veri olmasından kaynaklanıyor. Bu veri uyumsuzlarından bu hataya sebep konu enumlardır. Biliyorsunuz enum alanlar, DB de belli değerler tutulabilen(0,1,2 .. gibi) ve bu değerlerin dışına çıkılamadığı alanlardır. Ama bu integer değerler arayüzde size “açık sipariş, alındı, faturalandı” gibi string değerler ile gösteriliyor. Siz excelden veri atarken bu değerleri yazıyorsunuz. Bu hata çıkıyor ise siz bu değeri bir yerden direkt olarak yapıştıyorsunuz demektir:) Hata sizde kısacası yine:) Bu hatayı geçmek istiyorsanız veri aktarırken tablonuzdaki enum alanları mutlaka seçerek aktarmalısınız. Tek tek mi:) Hızlı yöntemleri siz bulabilirsiniz artık. Benim yöntemim ilgili veriyi son sutuna alıp, seçimleri kullanarak her seçimi kopyalamaktır.