cub-e.net

just coding...

User’s Guide now available in PDF and Word for CRM 4.0 - CRM 4.0 için kullanıcı kitapçığı Word ve PDF biçiminde hazır

CRM 4.0 için kullanıcı kitapçığı son kullanıcı için basit anlatımlı yardımlar ve kısayolladan oluşmakta. Döküman satış,pazarlama ve şikayet yönetimi modülleri için anlatımlar ve adım adım tanımlardan oluşmakta.

----

The Microsoft Dynamics CRM 4.0 User’s Guide includes all of the basic end-user information available in Help, including documentation on sales, marketing, and customer service features, as well as step-by-step instructions on working with Advanced Find and workflow. And it’s in an easily printable format.

 

http://www.microsoft.com/downloads/details.aspx?FamilyId=0DB4D487-1BAA-4619-9BC5-074D73C3997D&displaylang=en

Developer Ramp up Kit for Microsoft Dynamics CRM 4.0

Microsoft yazılım geliştiricilerin CRM Platformu üzerinde nasıl yazılım geliştireceklerini anlatan Developer Ramp up Kit for Dynamics CRM 4.0 isimli eğitim materyallerini yayınladı. Bu materyaller Web Servisleri, Workflow Mimarisi, SSRS ile raporlama gibi birçok konuda bilgi veriyor.

-----

This kit is for .NET based developers who want to ramp up and build on top of the Microsoft Dynamics CRM platform. Microsoft Dynamics CRM 4.0 uses familiar components such as Web Service endpoints, Windows Workflow Foundation, SSRS reporting, and more; making it a general purpose platform for any line-of-business applications. Developers can use their existing .NET skills to take advantage of various features of the Microsoft Dynamics CRM platform. This kit drills into the details of such development and explains how developers can connect, extend, and embed with the Microsoft Dynamics CRM platform. It includes presentations, hands-on labs, and a VPC environment for practicing. This content was delivered earlier as part of the Metro Early Adopter initiative and the video recordings of the ramp-up presentations are included as well.

Familiarity with the .NET Framework, Microsoft Visual C#, Jscript, Microsoft SQL Server and general Web development is recommended.

 http://msdn.microsoft.com/en-us/library/cc720132.aspx

CRM 4.0 Sample Data Available in 25 Languages - CRM 4.0 için 25 dilde örnek veritabanı hazır.

Microsoft CRM 4.0 için örnek veritabanı çıkmıştır. Bu veritabanı içerisinde gerçek iş dünyasından ölçeklenmiş örnek veriler içermektedir. Bu örnek veritabanını kurduğunuz zaman CRM 4.0'ın tüm fonksiyonlarını kullanabileceğiniz örnek bir veritabanınız olmuş olacak.

Yalnız Türkçe için örnek veri İngilizce hazırlanmış :(

Bu adresten indirebilirsiniz : http://www.microsoft.com/downloads/details.aspx?FamilyId=D5F77EE7-3D01-4944-B5DC-C8CDC8123DF4 
Kurulum hakkında bilgiye buradan ulaşabilirsiniz : http://www.microsoft.com/downloads/details.aspx?FamilyId=F44E89ED-6983-4A03-9BC0-A0B5B823FE37

----

The Microsoft Dynamics CRM 4.0 Sample Database is provided for Microsoft Dynamics CRM 4.0.   Sample Data gives a Microsoft Dynamics CRM 4.0 application convincing, real life business data with the necessary breadth and depth to allow end users to explore the most important Microsoft Dynamics CRM 4.0 functionalities.  When you import Sample Data into Microsoft Dynamics CRM 4.0 you will have a live, fully working CRM implementation with rich, real-life business data that provides the appropriate amount of interactivity and flexibility for both training and sales/marketing demo needs to illustrate the features and benefits of the Microsoft Dynamics CRM 4.0 application.

The Microsoft Dynamics CRM 4.0 Sample Database will available for download for the following 25 languages: English, German, Dutch, French, Spanish, Chinese PRC, Danish, Italian, Japanese, Brazilian Portuguese, Chinese Taiwan, Korean, Chinese Hong Kong, *Finnish, *Hebrew, *Norwegian, *Swedish, *Iberian Portuguese, *Russian, *Turkish, *Czech, *Hungarian, *Polish, *Arabic and *Greek.

You can find the download on http://www.microsoft.com/downloads/details.aspx?FamilyId=D5F77EE7-3D01-4944-B5DC-C8CDC8123DF4 and you can find the Readme with installation instructions on http://www.microsoft.com/downloads/details.aspx?FamilyId=F44E89ED-6983-4A03-9BC0-A0B5B823FE37

*Sample Data content contains English content for these languages.

Dynamics CRM 4.0 SDK ver. 4.0.4 (CRM SDK Versiyon 4.0.4 hazır)

Microsoft Dynamics CRM 4.0 SDK Versiyon 4.0.4 indirilmeye hazır. Bu versiyon çok fazla yenilik ve güncelleştirme içermekte. Detayları aşağıda bulabilirsiniz.

---

Version 4.0.4 of the Microsoft Dynamics CRM 4.0 SDK is now available for download! This version contains lots of great new and updated information:

· Offline Plug-in Security  - New information about the additional security restriction for an offline plug-in, which requires that a registry key named after the public key token of the plug-in assembly be added to the system registry. The online/offline plug-in sample code and walkthrough was updated too.

· Plug-in Constructor - Added a topic explaining how to write a constructor for a plug-in that accepts parameters. These strings can be used to pass information to the plug-in at run time.

· Privileges by Message – The appendix showing the required privileges for each message has been updated. There are a few outstanding messages that will be completed in the next SDK release.

· Outlook Sample Code and Programming Reference – The reference topics for the Microsoft.Crm.Outlook.Sdk assembly have been completed. Added new sample code that interacts with Microsoft Dynamics CRM for Microsoft Office Outlook using this assembly.

· Using the Discovery Service in Microsoft Dynamics CRM Live - Added a topic to show how to get the Web reference for Microsoft Dynamics CRM Live.

· SiteMap Sample Code - Added step-by-step instructions for how to change the label text in the navigation pane.

· Scripting Sample Code - Added a new scripting sample that allows you to control which users can update data in a field.

· Report Writers Guide - Added a new topics on linking reports, managing reports offline and new information about publishing reports.

· Other Sample Code 

    • How to Send a Bulk E-mail and Monitor the System Job
    • How to Start an Asynchronous Bulk Delete Job and Review Results
    • Using the BackgroundSendEmail Message
    • Using the QualifyMembersList Message

The online version of the SDK will be available within a few days, so check back to the Microsoft Dynamics CRM Developer Center later this week.

Advance Data Migration Map Editor for CRM 4.0 - CRM 4.0 için Veri Aktarımı

Advance Data Migration Map Editor for CRM 4.0

Microsoft Dynamics CRM 4.0 için Microsoft CRM Hindistan takımı Advanced Data Migration Map Editor isimli bir ürün geliştirdiğini duyurdu. Ürün Microsoft Public License altında kaynak kodları ile birlikte şu adreste yayınlanmaktadır:  http://www.codeplex.com/mscrmmapeditor

Map Editor kullanıcılara Data Migration Manager'da ihtiyaç duyacakları ileri seviyede XML formatlı veri haritaları oluşturmaktadır. 

Ürünün Kullanıcı kitapçığını bu adreste bulabilirsiniz. http://www.codeplex.com/mscrmmapeditor/Release/ProjectReleases.aspx?ReleaseId=11777

----------

Microsoft Dynamics CRM 4.0 provides ‘Data Migration Wizard’ to migrate data from their existing solutions to ‘Microsoft Dynamics CRM 4.0’. They need to have the data migration map which maps source data to target data along with the source data files . This project ‘Map Editor’ helps in creating data migration map (including complex transformation maps, creating lookup maps with lookups in source data which are currently not provided by MSCRM 4.0 Data Migration Wizard) and thus helps in the process of migration. This enables user to create new maps, edit existing maps in MSCRM 4.0, and edit the map xml files that have been saved earlier. The tool aims at providing the users a solution to make their life easier by providing an UI interface to create xml base data maps involving complex transformation maps to be consumed by MSCRM 4.0 Data Migration Wizard.

Note: This release works with On-Premise release of MSCRM 4.0. The Live support will be added in next revision. 

CRM Live Re-Named to CRM Online - CRM Live adı CRM Online olarak değiştirildi

Microsoft host edilen CRM Servislerinin adında bir değişikliğe gitti. Artık adı Dynamics CRM Live değil Dynamics CRM Online olacak.

---

Microsoft has announced a name change to their hosted CRM service. The service, now known as Microsoft Dynamics CRM Online is still targeted for a Q2 release.

Bill Patterson, Microsoft's Director of Product Management for the hosted service said in a communique:

"In recent months, Microsoft has launched the new Online brand, with tremendous investment in and focus around on-demand technology for business users. Whereas the Live brand is focused on consumers and small businesses, the Online brand is fully aligned with our existing Microsoft Dynamics CRM strategy of delivering outstanding solutions for small businesses, midsized companies, and large enterprises. As a result, we will be launching the new service as Microsoft Dynamics CRM Online."

 

Microsoft Dynamics CRM Hatalarını Yakalamak

CRM web servisi bir web servisinin doğası gereği soap ile iletişim kurmakta ve işlenen hataları da soap içinde xml ile döndürmektedir.


Microsoft Dynamics CRM Web Servisi'nde Request parametresi kullanılarak bir çağrı yaptığınızda hata olarak System.Web.Services.Protocols.SoapException sınıfından ortak bir hata mesaj yapısı döner.

SoapException'ın Message property'si her zaman için "Server was unable to process request." hatasını döndürür.

SoapException içerisinde Detail property'si oluşmuş olan hata hakkında daha fazla bilgi verecektir. Detail property bir XmlNode türündendir ve InnerXml property aşağıdaki formatta hatayı sunmaktadır.

<error>
<description>Error description goes here.</description>
<code>0xABCD1234</code>
<type>Platform</type>
</error>
 

ErrorCode yani xml içerisindeki Number hexadecimal türündedir. Örnek verecek olursak; eğer veritabanında olmayan bir fax'ı çağırmaya kalkalsanır hata aşağıdaki şekilde olacaktır:

<error>
<code>0x80041103</code>
<description>'Lead' entity doesn't contain attribute with Name = 'name'.</description>
<type>Platform</type>
</error>

Standart bir kodlama mantığında catch bloğunda bu hatayı aşağıdaki şekilde yakalabiliriz.

catch (System.Web.Services.Protocols.SoapException ex)
{
   
Message = ex.Message;
   
Detail = ex.Detail.InnerText;
}

Bu şekilde hatayı öğrenebiliriz ama detaylı ve güzel bir hata mesajı olmaz son kullanıcı için. Tabii burada bu hataları loglayacak bir yapı oluşturabiliriz bu tercihinize kalmış ama her durumda detaya ihtiyacımız var.

CRM'in detaylı hata kod listesine buraya tıklayarak ulaşabilirsiniz.

Hata yapısı ve içeriği hakkında bu bilgileri verdikten sonra bu hataları yakalayacak kodu vermek güzel olacak sanırım :) Aşağıda kodu ve açıklamasını bulabilirsiniz.

 

/// <summary>
///
Hatalari yakaliyoruz.
/// </summary>
/// <param name="ex">System Exception</param>
/// <returns>hatanin detayli aciklamasi</returns>
private string HandleException(Exception ex)
{
   
string Error = "Uygulama bir hata ile karsilasti." + System.Environment.NewLine;
    Error +=
"Message : " + ex.Message + System.Environment.NewLine;
   
if (ex.InnerException != null)
        Error += ex.InnerException.Message + System.
Environment.NewLine;
   

    SoapException
se = ex as SoapException;
   
if (se != null)
    {
        Error +=
"Code : " + GetError(se.Detail, "//code") + System.Environment.NewLine;
        Error +=
"Desription : " + GetError(se.Detail, "//description") + System.Environment.NewLine;
        Error +=
"Type : " + GetError(se.Detail, "//type") + System.Environment.NewLine;
    }
   
return Error;
}

/// <summary>
/// SoapException.Detail icerisindeki hatayi dondurur
/// </summary>
/// <param name="errorInfo">hatayi iceren XmlNode'u.</param>
/// <param name="item">geri dondurulecek hata.</param>
/// <returns>hata detayi ya da bos icerik.</returns>
private string GetError(XmlNode errorInfo,string item)
{
   
XmlNode code = errorInfo.SelectSingleNode(item);
   
if (code != null)
   
    return code.InnerText;
   
else
        return
"";
}
  1. Burada dikkat edilmesi gereken şey hatanın SoapException sınıfı türünden olup olmadığını kontrol ettiğimiz kısım;

        SoapException se = ex as SoapException;

    eğer içerik SoapException türünden ise detayını öğrenmek isityoruz. ( "as" ifadesi hakkında daha fazla bilgi almak için buraya tıklayınız.)
  2. Yukarıda hata durumunda dönecek Xml içeriğini verdim. Bu bir Xml olduğu için XmlNode'larına erişerek istediğimiz bilgiyi alalım. İşte GetError bu işe yarıyor. Soap Exception'ın Detail'ını ve istediğimiz node'u söylüyoruz bize geri dönüyor.

        GetError(se.Detail, "//code")

Bu kod sonucunda elde ettiğimiz hata mesajı;

 

Uygulama bir hata ile karsilasti.
Message : Server was unable to process request.
Code : 0x80041103
Desription : 'Lead' entity doesn't contain attribute with Name = 'name'.
Type : Platform

 

Bir makalemizin daha sonuna geldik umarım faydalı olmuştur.


Barış KANLICA

Yazılım Uzmanı – Software Specialist
brsk@e-kolay.net
www.cub-e.net
forum.cub-e.net

Microsoft Dynamics CRM Web Servisi ve Performans

Benim yazılarımı takip edenler hatırlayacaklardır. Daha önce CRM üzerinde veri sorgulama yöntemleri isimli yazı dizimin 1. bölümü web servislerini kullanarak veri sorgulama yöntemleriydi. O makalede web servisleri hakkında bilgi vermiştim ama şimdi CRM 4.0 çıkınca, CRM 4.0'ın web servisinin ek özelliklerini anlatmak ve performans konularına değinmek istedim.

CRM Web Servisi performans düşüklüğü nedeniyle programcılar tarafından pek sevilmemektedir. Bu makalede sizlere web servisin yapısını ve performans attırıcı bir yöntemlerden bahsedeceğim. Ayrıca CRM 3.0 ve 4.0 arasındaki servis yapısındaki değişikliklere göz atacağız.

WebServis’leri ise bize özellikle veri yazarken büyük kolaylıklar sağlasa da veri okurken bazen karışık olabiliyor. Web Servisleri class(sınıf) mimarisinde olduğundan nesne paylaşımına dayalı bir altyapı sunuyor. Bu doğru kullanıldığında, bize, program yazarken uzun uzun attribute ve property hazırlamak derdinden kurtarıyor.

Microsoft CRM’in 2 adet temel Web Servisi bulunmakta;

  1. CRM Service : istediğiniz entity üzerinde Create(Oluşturma),Update(Güncelleme) , Delete(Silme) gibi işlemleri yapmanızı sağlıyor. Adresi;
    CRM 3.0 : http://<yourservername(:port)>/mscrmservices/2006/crmservice.asmx
    CRM 4.0 : http://<yourservername(:port)>/mscrmservices/2007/crmservice.asmx
    alternatif olarak http://<yourservername(:port)>/MSCRMServices/2007/CrmServiceWsdl.aspx
  2. Metadata Service : CRM’in entity ve picklist mimarisi gibi metadata veritabanında bulunan veriler üzerinde yine Create(Oluşturma),Update(Güncelleme) ,Delete(Silme) gibi işlemleri yapmanızı sağlıyor. Metadata verisi içerisinde bir picklist(yani combobox-dropdownbox)’in içeriği, bir alanın türü gibi sistem üzerinde kullandığımız nesnelere yönelik bilgileri tutmaktadır. Adresi;
    CRM 3.0 : http://<yourservername(:port)>/mscrmservices/2006/metadataservice.asmx
    CRM 4.0 : http://<yourservername(:port)>/mscrmservices/2007/metadataservice.asmx

Web Servisini Projemize Eklemek :



Visual Studio’da açtığımız uygulamamızın adı üzerinde sağ tuşa tıklayarak getirdiğimiz menüde aşağıdaki gibi “Add Web Reference”’a tıklıyoruz.


Açılan pencereye eklemek istediğimiz servisin url’ini yazıyoruz ve “go” düğmesine tıklıyoruz.

Servis credential yani kimlik doğrulamak için bizden kullanıcı adı ve şifre isteyecek. Bunu geçtikten sonra “Web reference name”’e servise verecegimiz ismi yazıyoruz. Burada ben “MyService” ismini veriyorum. “Add Reference” düğmesine tıklıyoruz.Artık servisimizi projemize eklemiş durumdayız.

  1. CRM servisimizin oluşturuyoruz.

            CrmService MyService = new CrmService();

  2. Servise network'te kim olduğumuzu söyleyelim eğer CRM serverın bulunduğu domainde oturum açmadıysak bunu yapmak zorundayız.

            System.Net.
    NetworkCredential MyCredential = new System.Net.NetworkCredential();
            MyCredential.UserName =
    ""
            MyCredential.Password = "";
            MyCredential.Domain =
    "";
            MyService.Url =
    "http:// i p : port/MSCrmServices/2007/CrmService.asmx";
            MyService.Credentials = MyCredential;

    Bu kod ile servise bağlandığımız zaman sistem üzerinde yaptığımız bütün hareketlerde yani güncelleme ve kayıt işlemlerinde burada vereceğiniz kullanıcı adı ve şifrenin ait olduğu kullanıcı created ve modified user olarak gözükecektir. Yani sistemde bizim uygulamamzı kullanan bütün kullanıcıları teke indirmiş olacağız.
    Bunun olmasını istemiyorsak aşağıdaki kodu kullanmamız gerekir;

        MyService.Credentials = System.Net.CredentialCache.DefaultCredentials;

    Bu kod sayesinde IIS üzerinde Integrated Windows Authentication ile oturum açmış olan kullanıcıyı yani CRM'e girmiş olan kullanıcının yetkileri ile işlem yapmış oluruz. Burada hatırlanması gereken en önemli şey uygulamamızın işlem yaptığı entityler üzerinde kullanıcının yetkilerine göre web servisin bize cevap vereceğidir.
  3. işte burası servisi hızlandırdığımız nokta. Nasıl mı oluyor adı üzerinde aslında güvensiz bağlantı paylaşımı yani yukarıda bahsettiğimiz güvenlik yöntemlerinden biri ile IIS üzerinde oturum açan bir kullanıcı olduğu zaman IIS talepte bulunan diğer kullanıcılar için doğrulama yapmıyor yani Kerberos devreye girmiyor Active Directory'e gidilmiyor. Bunlar sonucunda performansta gözle görülür bir artış oluyor.

            MyService.UnsafeAuthenticatedConnectionSharing = true;

    Ama işte burası önemli aması var :) sisteme ilk kim giriş yaparsa IIS o kullanıcı ile devam ettiğinden her işi sanki birinci kullanıcı yapmış gibi görünüyor. CRM'in performansını arttırmakla ilgili daha detaylı makalelere bu linkten ulaşabilirsiniz : Performans Arttırmak
  4. CRM 4.0 bildiğiniz gibi farklı hosting modelleri ile birlikte geliyor. Tabii bu hosting modellerini programatik olarak da kontrol etmek gerek. Artık crm serverine bağlanırken bir AuthenticationToken'a ihtiyacımız var bu olmadan servis bağlantı yapmanıza izin vermeyecektir.
    Token nesnesi içerisinde bulunan AuthenticationType isimli Property 0,1,2 değerlerinden birini almaktadır. Bunların anlamları ise;

    Alan Değer Tanım
    AD 0 Standart Active Directory authentication.
    Passport 1 Passport authentication. Şu an için Amerika ve Kanada'da kullanılacak olan windows live id ile Microsoft tarafından yapılacak olan hostinglerde geçerli olacak.
    Spla 2 Specifies Internet Facing Deployment authentication (formerly known as SPLA). Firmanızının CRM hosting yapacağı zaman kullanacağınız doğrulama biçimi.

    Bütün bunların yanında hosting yapsanız da yapmasanız da kullanmanız gereken bir property var adı OrganizationName. Hangi CRM organization için sisteme giriş yaptığınızın bilgisidir.

            CrmAuthenticationToken token = new CrmAuthenticationToken();
            token.AuthenticationType = 0;
            token.OrganizationName = "CRMVPC";
            MyService.CrmAuthenticationTokenValue = token;

private
CrmService service(bool isUnsafe)
{
   
try
    {
       
CrmService MyService = new CrmService();
       
// servise network'te kim oldugumuzu soyluyoruz. (Eger CRM Server'i ile ayni domainde degilseniz
        // bunu yapmak zorundasiniz yoksa "The request failed with HTTP status 401: Unauthorized." hatasini alirsiniz)
        System.Net.NetworkCredential MyCredential = new System.Net.NetworkCredential();
        MyCredential.UserName =
""
        MyCredential.Password =
"";
        MyCredential.Domain =
"";
        MyService.Url =
"http:// i p : port/MSCrmServices/2007/CrmService.asmx";
        MyService.Credentials = MyCredential;
       
// Eger crm server ile ayni domainde iseniz ve sizin crm'de bir rolunuz varsa asagida parantezler icerisinde
        // belirttigim komutu yukaridaki 5 satir yerine kullanabilirsiniz
        // ( MyService.Credentials = System.Net.CredentialCache.DefaultCredentials; )
       
        // servisi hizlandirmak icin true degerini atiyabiliriz.
        MyService.UnsafeAuthenticatedConnectionSharing = isUnsafe;
       
        ///
CRM 4.0 ile gelenler

        CrmAuthenticationToken token = new CrmAuthenticationToken();
        token.AuthenticationType = 0;

        token.OrganizationName = "CRMVPC";
        MyService.CrmAuthenticationTokenValue = token;

        return
MyService;
    }
    catch (Exception ex)
    {
        HandleException(ex);
        return null;
    }
}

Bir makalemizin daha sonuna geldik.


Barış KANLICA
Yazılım Uzmanı – Software Specialist
brsk@e-kolay.net
www.cub-e.net
forum.cub-e.net   

Microsoft Dynamics CRM 4.0 Software Development Kit - Yazılım Geliştirme Aracı

Rapor oluşturucular, yazılım ve içerik geliştiriciler için olan Microsoft Dynamics CRM 4.0 Software Development Kit (SDK) güncellenmiştir.
Plug-in oluşturmanın yeni yöntemleri, workflow aktiviteleri ile çalıştırma, yeni web servislerini kullanma, veri yönetimi ve daha birçok konuda yeni yazılar ve örnekler içermektedir.

Adres : http://www.microsoft.com/downloads/details.aspx?FamilyID=82E632A7-FAF9-41E0-8EC1-A2662AAE9DFB&displaylang=en

----

The Microsoft Dynamics CRM 4.0 Software Development Kit (SDK) is for developers, system customizers, and report writers.
It contains all new information about creating plug-ins, working with custom workflow activities, using the new Web services, using new data management features, and much more.

This SDK contains information for developers writing server side code, custom business logic, integration modules, workflow assemblies, and more. It provides an architectural overview of Microsoft Dynamics CRM, the entity model, security model, and Web services. Sample code and walkthroughs guide you through the new features.

The SDK also contains information for developers customizing the Web client or Microsoft Dynamics CRM for Microsoft Office Outlook, including scripting, integration of custom Web pages, sample code, and a detailed user interface style guide.

Look for regular updates to this SDK. Future releases will include the ISV Guide and Report Writers Guide.

link: http://www.microsoft.com/downloads/details.aspx?FamilyID=82E632A7-FAF9-41E0-8EC1-A2662AAE9DFB&displaylang=en