cub-e.net

just coding...

Organik Yazılım Günü

Uzun süredir bu anı bekliyordum :) Açık kaynak kodu üreten ve tüketen bir yazılımcı olarak bu konuda bilgi ve birikimlerimizi birbirimiz ile paylaşmanın zamanı geldi. Bu sefer çok daha farklı bir etkinlik beraber olacağız.

Açık kaynak destekçisi herkesi bekliyoruz!

Gördüğünüz üzere bu sefer oturumlarımız yarım saatlik ve konuşmacılarımız da sizin aranızdan kişiler. Eğer siz de benim gibi açık kaynak kodu destekliyor, açık kaynak kodu üretiyor veya tüketiyorsanız hiç fark etmez, hepinizi 27 Haziran'da bu Organik etkinliğe bekliyoruz!

Kayıt olmayı unutmayın : www.inetatr.org

Satışlarınız Neden Düşüyor?

Sektörünün öncü firmalarından Contoso, satışlarını artıramamaktan yakınıyor, Firma sahibi Ahmet Bey, sorunun nereden kaynaklandığını tam teşhis edemiyordu. Satış ekipleri mi yeterince potansiyel yaratamıyordu yoksa çoğu potansiyelden haberdar olmalarına rağmen işleri rakiplerine mi kaptırıyorlardı? Sorunu çözmek için daha ayrıntılı bilgiye sahip olmaları gerekiyordu. Ancak satış ekiplerinden daha fazla bilgi toplamak için girişimde bulunduğunda, çok tepki çekiyordu. Dışa dönük ve satışa odaklanmış bu ekipler, sistemle uğraşmaya ve bilgi girişi yapmaya direniyorlar, tüm zamanlarını satışa ayırmak istiyorlardı. Satış ekiplerinden her görüşmelerini, her teklifi, her teklif sonrası takip adımlarını sisteme girmelerini istemek kolay değildi.

Ahmet Bey'e bir arkadaşı, aradığı çözümün Microsoft Dynamics CRM olabileceğinden bahsetti. Pek çok firmanın bu yazılım ile satış ekiplerini hiç yormadan, Outlook içinden kendi ajandalarını takip ederken bilgi topladıklarını ve satış etkinliğini %25'den fazla artırdıklarından bahsetti.

Bu etkin çözümün genel özellikleri anlatmak ve satış etkinliğini artırıp, ihtiyaç duyulan tüm analizlere ulaşmayı sağlayan fonksiyonlarını aktarmak üzere Ahmet Bey ile bir tanıtım yapılacak. 18 Haziran Perşembe günü saat 9:30 ile 11:00 arasında yapılacak bu tanıtımı siz de internet üzerinden izleyebilir, Microsoft Dynamics CRM hakkında ayrıntılı bilgi edinebilirsiniz. Bunun için yapmanız gereken tek şey web seminerimize kaydolmak!

Tarih: 18 Haziran 2009, 09:30 - 11:00 | Konuşmacı: Barış Kanl��ca, OMERD Business Solutions

Katılmak için bu linkten kayıt olmanız gerekmektedir : http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032418278&EventCategory=4&culture=tr-TR&CountryCode=TR

Microsoft Dynamics CRM içerisinde İstemci Taraflı Kod Geliştirme

Microsoft Dynamics CRM içerisinde İstemci Taraflı Kod Geliştirme

Web uygulamalarının istemci (client) tarafında birtakım işlemleri gerçekleştirmesi sunucunun (server) daha rahat çalışmasını sağlayacaktır. Dynamics CRM'de bir web tabanlı bir mimariye sahip olduğu için bu durum onda da geçerli. DOM nesne modelinde her HTML elemanı bir nesne olduğu için DHTML programlama teknikleri ile CRM'in formlarına ve nesnelerine erişip işlemler gerçekleştirebilirsiniz.

CRM'in SDK'sı içerisinde "Client Extensions and Scripting" bölümü altında detaylı bilgilerini bulabileceğiniz metot, olay ve nesneleri bir arada bulabileceğiniz bir yazı hazırladım size.

1 Genel Değişkenler
  Değişken Açıklama
SERVER_URL CRM Web Server'ın URL'sini döndürür
USER_LANGUAGE_CODE Kullanıcının dil kodunu döndürür
ORG_LANGUAGE_CODE Organizasyonun dil kodunu döndürür
ORG_UNIQUE_NAME Organizasyonun adını döndürür
2 Genel Metotlar
  Metot Açıklama
IsOnline Eğer kullanıcı online olarak sistemi kullanıyorsa true döndürür (Outlook client ile ofline kullanma özelliği mevcuttur)
IsOutlookClient Kullanıcı Microsoft Dynamics CRM for Outlook ile sisteme ulaşıyorsa true döndürür
IsOutlookLaptopClient Kullanıcı Microsoft Dynamics CRM for Outlook with Offline Access ile sisteme ulaşıyorsa true döndürür
3 Genel Olaylar
  Olay Açıklama
OnLoad Form Browser'a yüklendiğinde icra edilir. Bu olayı kullanrak form üzerinde kullanıcının karşısına gelmeden istediğiniz değişikliği yapabilrsiniz
OnSave Kullanıcı Save, Save and Close ya da  Save and New düğmelerine tıkladığında çalışan olaydır. Bu olay form servera gönderilmeden çalışır ve eğer istemediğiniz bir değer varsa form üzerinde, servera gidişi iptal edebilirsiniz. Eğer kaydetme işlemini iptal etmek istiyorsanız event.returnValue = false; kodunu çalıştırmalısınız.

Genel değişkenler ve metotları gördükten sonra şimdi nesnelerimizi içinde barındıran crmForm isimli formumuza ait neler varmış bir bakalım.

1 crmForm Özellikler
  Özellik Açıklama
All Form nesneleri kolleksiyonu
IsDirty Formda değişiklik yapılıp yapılmadığını kontrol etmenizi sağlar. Değer atanabilir.
FormType Formun açılış biçimi. Alabileceği değerler:
0 = Tanımlanmamış Form Tipi
1 = Yeni Kayıt
2 = Kayıt Güncelleme
3 = Sadece Okunabilir Form
4 = DevreDışı Bırakılmış Form
5 = Hızlı Yeni Kayıt
6 = Toplu Güncelleme
ObjectId Açılmış olan kaydın GUID cinsinden ID'sini döndürür. Yeni Kayıt olarak açılmış formda null döner.
ObjectTypeName Görüntülenen nesnenin adı döner
2 crmForm Metotlar
  Metot Açıklama
Save() Formu kaydeder
SaveAndClose() Formu kaydeder ve kapatır
SetFieldReqLevel(sField, bRequired) Bir alanı gerekli ya da gereksiz olarak işaretler

Aşağıdaki tabloda crmForm.all.<alanadi> ile erişilebilir alanların ortak özellik ve metotlarını bulabilirsiniz.Burada unutulmamsı gereken nokta lookup ve picklist alanların aslında birer dizi olduklarıdır. İçlerinden birden fazla veri tutabildikleri gibi kullanıcının gördüğü ile veritabanına yazılanların farklı olmasıdır. (lookup için GUID, picklist için ise seçilenin integer değeri yazılır).

1 crmForm.all Özellikler
  Özellik Açıklama
Precision currency veri float veri tiplerinde virgülden sonraki digit sayıını verir.
DataValue Veri okunan ve yazılan özellik. picklist ve lookup için ek parametreler almaktadır.
Disabled Kullanıcı girişini açmanızı veya kapamanızı sağlar.
ForceSubmit Bu özellik disabled edilmiş olan alanların veritabanına kaydedilmesini sağlar. Standartta disabled alanları CRM kaydetmez.
IsDirty Alan üzerinde değişiklik yapılıp yapılmadığını kontrol etmenizi sağlar.
Min currency, float ve integer değer türlerinde erişilebilir en küçük değeri verir.
Max currency, float ve integer değer türlerinde erişilebilir en büyük değeri verir.
MaxLength string ya da memo alanlarının en büyük değerini verir.
RequiredLevel Gereksinim seviyesini verir
0 = Gereksinim düzeyi yok
1 = Business Recommended (Önerilen)
2 = Business Required (Gereken)
2 crmForm.all Metotlar
  Metot Açıklama
SetFocus() Mouse işaretçisini formda o alana gönderir.
FireOnChange() Alanın OnChange() olayını çalıştırır.
3 crmForm.all Olaylar
  Olay Açıklama
OnChange Kullanıcı bir alan içerisindeki değeri değiştirdiğinde çalışan olaydır.

Ek olarak bilinmesi gereken PartyList ve email aktivitesi To alanı birden fazla değer almaktadır. Diğer Lookupların yapıları da bir dizi olmasına karşın tek değer alırlar.Yani sadece 0. indis doludur.

Lookup alanları daha derinlemesine inceleyelim. Lookup alanların yukarıdaki özelliklere ek olarak aşağıdaki üç özelliği bulunmaktadır.

crmForm.all.<lookupfiled> Özellikler
Özellik Açıklama
Id GUID değeri taşır. Okunabilir ve yazılabilir.
TypeName Referans edilmiş entity'nin adı. Okunabilir ve yazılabilir.
Name GUID'in değerinin Form'da gösterilecek olan ismi. Okunabilir ve yazılabilir.

Örneklerle konuyu pekiştirelim. Lookup veri alanından değer okumak ile ilgili örnek;
Bu örnekte bir primarycontactid isimli alandaki değeri öğreniyoruz.

var lookupItem = new Array;
//primarycontactid alanndaki veriyi okuyoruz.
lookupItem = crmForm.all.primarycontactid.DataValue;
//eğer veri var ise gösteriyoruz.
if (lookupItem[0] != null) {     
// metin
    
alert(lookupItem[0].name);
// GUID     
alert(lookupItem[0].id);
    
// entity ad.
   
alert(lookupItem[0].typename);
}

Lookup veri alanına veri yazmakla ilgili örnek;
Bu örnekte parentaccountid isimli alana değer atıyoruz.

//bir Array oluturuyoruz.
var lookupData = new Array();
//Object nesnesi ekliyoruz.
var
lookupItem = new Object();
//Object nesnemizde id, typename ve name zelliklerini dolduruyoruz.

lookupItem.id =
'{1AAC1363-01A1-DB11-8432-0003FF9CE217}';
lookupItem.typename =
'account';
lookupItem.name =
'A Bike Store';
// Object nesnemizi Array'a veriyoruz.

lookupData[0] = lookupItem;

// Array' parentaccountid alanna veriyoruz.

crmForm.all.parentaccountid.DataValue = lookupData;

1 crmForm.all.<picklistfiled> Özellikler
  Özellik Açıklama
DataValue Seçilmiş olan alanın integer değeri. Okunabilir ve yazılabilir.
SelectedText Seçilmiş olan alanın text değeri.
GetSelectedOption Seçilmiş olan değerin option cinsinden değeri.
Options Picklist içerisindeki öğelerin Array cinsinden değerini verir, ayrıca array içerisinde yeni bir değer var ise bu da gösterilmiş olacaktır. Okunabilir ve yazılabilir.
2 crmForm.all.<picklistfiled> Metotlar
  Metot Açıklama
AddOption(Name, DataValue) Picklist Array'ına yeni öğeler ekler. Name ve DataValue geçerli değişkenler olmalıdır.
DeleteOption(value) Integer değeri verileren öğeyi picklistten kaldırır

Picklist alanlar ile örneğimize geçelim;
Bu örnekte categorytype isimli alan içerisindeki değerlerle oynuyoruz.

var oField = crmForm.all.categorytype;

// 4. öğeyi alyoruz.
var
oOption = oField.Options[4];

// kaç tane öğe olduğunu öğreniyoruz.
alert(
"Original length :" + oField.Options.length);

// birinci öğeye değer atıyoruz.
oField.DataValue = 1;

// birinci öğenin adını alıyoruz.
alert(oField.SelectedText);

// 4. öğeyi siliyoruz.
oField.DeleteOption(4);

// kaç tane öğe olduğunu öğreniyoruz.
alert(
"New length :" + oField.Options.length);

// 4. öğeyi yeniden ekliyoruz.
oField.AddOption(oOption.Text, oOption.DataValue);

// kaç tane öğe olduğunu öğreniyoruz.
alert(
"Restored length :" + oField.Options.length);

Form üzerinde JavaScript kodu ile yukarıdaki anlattıklarımı birleştirerek her şeyi yazmanız mümkün.
Daha önceki JavaScript ile ilgili makalelerimden başka örnekler de bulabilirsiniz:
http://www.cub-e.net/post/CRM-icerisinden-Java-Script-kullanarak-web-sayfasc4b1-cagc4b1rmak.aspx
http://www.cub-e.net/post/Microsoft-CRM-30-Navigation-Bar-Ogelerini-Form-Icinde-IFrame-Ile-Gostermek.aspx
http://www.cub-e.net/post/OnSave()-Events-on-Dynamics-CRM-javascipt.aspx
http://www.cub-e.net/post/OnSave()-Events-on-Dynamics-CRM---Part-II.aspx
http://www.cub-e.net/post/Ascentium-CrmService-JavaScript-Library.aspx
http://www.cub-e.net/post/Use-JavaScript-executecalllaunch-Dynamics-CRM-40-Workflow.aspx
http://www.cub-e.net/post/CRM-workflow-date-update-includes-saturdays-sundays.aspx
http://www.cub-e.net/post/Microsoft-Dynamics-CRM-JScript-Export-Tool-JavaScript.aspx

Bir makalemizin daha sonuna geldik. Umarım anlattıklarım faydalı olmuştur. Hepinize iyi çalışmalar.

Barış KANLICA | Dynamics CRM MVP
Microsoft Certified Business Management Solution Specialist

brsk@e-kolay.net | www.cub-e.net | forum.cub-e.net

Omerd & Sure Step

Bir firma hangi sektörde olursa olsun satış, pazarlama veya teknik servis aktivitelerinden en az bir tanesi ile müşterileriyle temas halindedir. Her firmanın içinde bulunduğu sektörde farklı müşteri deneyimlerini ve müşterileri ile ilişkilerini yönettiği bir kurumsal kimliği ve iş yapış modeli bulunmaktadır. Günümüzün herşeyin hızlı yaşandığı dünyamızda bir firma aile bireyleri tarafından yönetilen bir aile şirketi yada profesyonel yöneticiler tarafından yönetilen kurumsal bir şirket olsa da şirket içi (CRM), şirket dışı (B2B,B2C) iş akışlarını yöneten iş zekası ve karar destek sistemleri ile entegre edilmiş iş yazılımına/iş yazılımlarına ihtiyacı vardır.

Omerd Business Solutions olarak amacımız sizin iş hedeflerinizi anlayarak bunları bilgisayar yazılımları ile entegre hale getirmektir. Bizim uzmanlığımız açıkça müşterilerimizin iş hedefleri doğrultusunda en uygun teknoloji seçimini, verimli tasarımı ve ihtiyaçlarını tespit etmek için iş çözümlerini Microsoft Dynamics CRM üzerinde geliştirmektir. Yazılım uyarlama ve geliştirme aşaması başlamadan önce aşağıdaki adımların tespit çalışmaları yapılır;

a)      Projenin teknik altyapı kapsamını tanımlamak.

                                 i.            Projenin teknik altyapı hedeflerini ve başarı faktörlerini tespit etmek.

                                ii.            Müşterinin IT altyapısı, iş süreci analizi, arabirimler ve veri aktarım analizi çalışmalarının sonuçlarını kullanarak teknik altyapı gereksinimlerini tanımlamak.

b)      Kapsam değişiklik kontrol süreçleri tanımlamak. Bir değişiklik yönetim süreci tanımlayarak ve periyodik kontrolleri takvime alarak proje kapsamının nasıl kontrol altında tutulacağını tanımlamak.

Proje boyunca ortaya çıkabilecek riskleri yönetmek, daha kaliteli projeler ortaya çıkabilmek için Microsoft Dynamics projelerinde kullanılmak üzere Microsoft tarafınfan Sure Step isimli bir proje takip ve yönetim sistemi geliştirmiştir. Bu sistem sayesinde proje içerisindeki işler ve kişiler belli iş adımlarıyla planlanmakta ve sonuca ulaşılması sağlanmaktadır. Yukarıda belirtilen a ve b adımları tamamlandıktan sonra  proje yönetim adımları başlamaktadır.

Genel safhalarıyla belirtmek gerekirse bir proje yönetimi aşağıdaki adımlardan oluşmaktadır.

  • Ele alınan firmanın yaptığı işlerin doğru bir şekilde analiz edilmesi
  • Doğru ekibin oluşturulmasını sağlamak
  • Ekibinin doğru kullanılmasını ve iş yükünün daha iyi yönetilmesini sağlamak
  • Herkesin doğru işi planlanan zaman çerçevesinde doğru yaptığından emin olmak
  • İş servislerinin sağlık koşullarının gerçek zamanlı gözlenmesi için bu servislerin takibini garanti altına almak
  • Ekip üyelerinin herhangi bir sorunu etkin ve hızlı bir şekilde ele alabilmelerini garanti altına almak
  • Kesinti durumunda iş servislerinin hızlı ve efektif bir şekilde yeniden hizmete alınabilmesini garanti altına almak

Bu adımlar içerisinde ilerlerken metodolojinin uygulama arayüzü sizi ve bizi her adımda yönlendirmekte ve proje ekibinin hata yapma olasılığından kurtarmaktadır. Bu sayede proje daha verimli ve daha az geri dönüş maliyetiyle istediğiniz gibi ilerlemekte ve işinize konsantre olmanızı sağlamaktadır.

Proje yönetimi becerisiyle tam entegre edilmiş ve düzenlenmiş bu metodoloji, proje yönetimi işinin kalitesini arttırmakta ve proje ekibini başarıya bir adım daha yaklaştırmaktadır.

İşte Omerd Business Solutions olarak biz projelerimizde bu metodoloji üzerinde projelerimizi yönetmekteyiz. Çünkü biz işimize çok profesyonel yaklaşmakta her zaman müşterinin tam ihtiyacı olan çözümleri ne eksik ne fazla sunmaktayız. Bu sayede projelerimiz başarıyla sonuçlanmakta ve müşterilerimiz bizim iş yapış modelimiz ve sunduğumuz çözümlerden çok memnun kalmaktadırlar.

Update Rollup 3 for Microsoft Dynamics CRM 3.0 (KB 935364) - Türkçe

Microsoft CRM 3.0 Server ve Microsoft Dynamics CRM 3.0 Client for Microsoft Office Outlook için Update Rollup 3'ü (Güncelleme Paketi 3) çıkardığını duyurdu.

Daha detaylı bilgi için aşağıdaki adrese bakabilirsiniz:

http://www.microsoft.com/downloads/details.aspx?displaylang=tr&FamilyID=d5b1fbbe-dfc2-4a33-b5fd-cae99e8e9dab

---

Microsoft has released Update Rollup 3 for Microsoft Dynamics CRM 3.0 Server and Microsoft Dynamics CRM 3.0 client for Microsoft Office Outlook.

For more information about this release, see Microsoft Knowledge Base article 935364:

Update Rollup 3 is available for Microsoft Dynamics CRM 3.0