23 Temmuz 2013 Salı

CRM 2011 - Cutom Ribbon Butona Tıklanıldığında Sayfa Açma ( Custom Page Open with Ribbon Button)

Customizations.xml dosyasında Actions tagının altında asagıdakı degısıklıklerı yapabilirsiniz.

 <RibbonDiffXml>  < /RibbonDiffXml> tagları arasında  <CommandDefinitions> tagı altında bulunan butonunnuza ait <CommandDefinition> ında <Actions> tagı içerisinde butonunuza tıklanıldıgında ne yapması gerekecegini belirleyebilirsiniz.

Ya bir javascript dosyası cagırırsınız bunun içersinde birseyler yaparsınız yada direkt url yazarak url deki sayfayı açarsınız.

Eğer sayfa açmak ve açılan sayfaya da query string ile veri göndermek istiyorsanız javascript dosyasını kullanabilirsiniz.

Aşagıda Close as Lost butonuna tıklanıldıgında javascript calıstırmasının ornegını bulabılırsınız.

<CommandDefinition Id="ISKO.SubGrid.opportunityproduct.MainTab.Actions.CloseAsLost.Command">
            <EnableRules/>
            <DisplayRules/>
              <Actions>
              <JavaScriptFunction FunctionName="CustomPageOpen"
                                                    Library=" $webresource: new_RibbonButton "/>
            </Actions>
          </CommandDefinition>

Eğer direkt olarak url verip o url adresini görüntülemek istiyorsak;
<CommandDefinitions>
    <CommandDefinition Id="Gokhan.account.Form.Star.Command">   
       <EnableRules />   
      <DisplayRules />  
       <Actions>    
             <Url Address="http://gkhnmnts.blogspot.com/" />    
        </Actions>   
     </CommandDefinition>
 </CommandDefinitions>

Javascript

Library nın adı :new_RibbonButton olsun.(Bu library i crm içerisinde customizations altında webresource bolumunden acabılırsınız.)

function CustomPageOpen(){
   var url="http://deneme:12/CustomPageOpen.aspx?degisken1=gokhan&degisken2=mentese";
 
   window.open(url,'','');
}



CRM 2011 - Not Varlığına Word Dosyası Ekleme (Attach Word Document to Annotation)

public static void AttachWordDocToNote(EntityReference account, IOrganizationService service)
        {
            // Open a file and read the contents into a byte array
            FileStream stream = File.OpenRead(@"C:\Lakshman\TDD.docx");
            byte[] byteData = new byte[stream.Length];
            stream.Read(byteData, 0, byteData.Length);
            stream.Close();

            // Encode the data using base64.
            string encodedData = System.Convert.ToBase64String(byteData);

            // Add the Note
            Annotation note = new Annotation();

            // Im going to add Note to Account entity
            note.ObjectId = account;
            note.Subject = "Note Added with attachment";

            // Set EncodedData to Document Body
            note.DocumentBody = encodedData;

            // Set the type of attachment
            note.MimeType = @"application\ms-word";
            note.NoteText = "Note Added with Document attached.";

            // Set the File Name
            note.FileName = "TDD.doc";
            service.Create(note);
        }

CRM 2011 - Not Varlığına Text Dosya Ekleme(Attach Text to Annotation)

public static void AttachTextToNote(EntityReference account, IOrganizationService service)
        {
            // Open a file and read the contents into a byte array
            FileStream stream = File.OpenRead(@"C:\Lakshman\sample.txt");
            byte[] byteData = new byte[stream.Length];
            stream.Read(byteData, 0, byteData.Length);
            stream.Close();

            // Encode the data using base64.
            string encodedData = System.Convert.ToBase64String(byteData);

            // Add the Note
            Annotation note = new Annotation();

            // Im going to add Note to Account entity
            note.ObjectId = account;
            note.Subject = "Note Added with attachment";

            // Set EncodedData to Document Body
            note.DocumentBody = encodedData;

            // Set the type of attachment
            note.MimeType = @"text/plain";
            note.NoteText = "Note Added with Text attached.";

            // Set the File Name
            note.FileName = "Sample.txt";
            service.Create(note);
        }

CRM 2011 - Not Varlığına PDF Dosyası Ekleme(Attach PDF To Annotation)

public static void AttachPDFToNote(EntityReference account, IOrganizationService service)
        {
            // Open a file and read the contents into a byte array
            FileStream stream = File.OpenRead(@"C:\Lakshman\TDD1.pdf");
            byte[] byteData = new byte[stream.Length];
            stream.Read(byteData, 0, byteData.Length);
            stream.Close();

            // Encode the data using base64.
            string encodedData = System.Convert.ToBase64String(byteData);

            // Add the Note
            Annotation note = new Annotation();

            // Im going to add Note to Account entity
            note.ObjectId = account;
            note.Subject = "Note Added with attachment";

            // Set EncodedData to Document Body
            note.DocumentBody = encodedData;

            // Set the type of attachment
            note.MimeType = @"application\pdf";
            note.NoteText = "Note Added with pdf attached.";

            // Set the File Name
            note.FileName = "TDD1.pdf";
            service.Create(note);
        }

CRM 2011 - Not Varlığına Excel Dosyası Ekleme (Attach Excel to Annotation)

public static void AttachExcelToNote(EntityReference account, IOrganizationService service)
        {
            // Open a file and read the contents into a byte array
            FileStream stream = File.OpenRead(@"C:\Lakshman\ActiveRecords.xls");
            byte[] byteData = new byte[stream.Length];
            stream.Read(byteData, 0, byteData.Length);
            stream.Close();

            // Encode the data using base64.
            string encodedData = System.Convert.ToBase64String(byteData);

            // Add the Note
            Annotation note = new Annotation();

            // Im going to add Note to Account entity
            note.ObjectId = account;
            note.Subject = "Note Added with attachment";

            // Set EncodedData to Document Body
            note.DocumentBody = encodedData;

            // Set the type of attachment
            note.MimeType = @"application\ms-excel";
            note.NoteText = "Note Added with Excel attached.";

            // Set the File Name
            note.FileName = "ActiveRecords.xls";
            service.Create(note);
        }

CRM 2011-Emaile Dosya Ekleme (Add Attachment To Email )

public static void AddAttachmentToEmail(EntityReference email, IOrganizationService service)
        {
            // Open a file and read the contents into a byte array
            FileStream stream = File.OpenRead(@"C:\Lakshman\sample.txt");
            byte[] byteData = new byte[stream.Length];
            stream.Read(byteData, 0, byteData.Length);
            stream.Close();

            // Encode the data using base64.
            string encodedData = System.Convert.ToBase64String(byteData);
         
            // Add attachment
            ActivityMimeAttachment attachment = new ActivityMimeAttachment();

            // Set the body
            attachment.Body = encodedData;

            // Set the attachment Type
            attachment.MimeType = @"text/plain";
            attachment.FileName = "Sample.txt";

            // Set the regarding object. In my case it is Email entity
            attachment.ObjectId = email;
            attachment.ObjectTypeCode = email.LogicalName;

            // Create the attachment
            service.Create(attachment);
        }

CRM 2011-Not Varlığına Önceden Eklenmiş Dosyayı Silme (Delete Attachment From Annotation)

public static void DeleteAttachmentFromNote(Guid noteId, IOrganizationService service)
        {
            Annotation note = new Annotation();
            note.Id = noteId;

            // Set the Documentbody and other fields to null to remove the attachment
            note.DocumentBody = null;

            note.FileName = null;
            note.IsDocument = false;
            service.Update(note);
        }

19 Temmuz 2013 Cuma

CRM 2011 - EXPORT RIBBON XML

\\sdk\samplecode\cs\client\ribbon\exportribbonxml\exportedribbonxml\

Sdk içerisnde  exportribbonxml dosyası altında ExportRibbonXml.exe dosyasını calıstırın.
  Eğer exe dosyası olusmamıssa exportribbonxml solution ını visual studio da açıp ,projeyi Build etmemiz yeterli olacaktır.

ExportRibbonxml Solution ı calıstır.



ExportRibbonXml solution ına sag tıklayıp Build diyelim.


Daha sonra ExportedRibbonXml.exe dosyasını calıstıralım.

Ekrana asagıdakı ekran gelecektir.


  • Enter a CRM server name and port [crm.dynamics.com]:

  CRM server name i girip entere basalım.(80 portu dısında kurulu ise port numarasınıda girmemiz gerekir.)

 Eger  <0>Add New Server Configuration <Maximum number up to 9>
           <1>Server 10.30.1.82,Org:ISKO,USer:iskodokuma\crmsetup
yukarıdakı gibi bir satır gelirse 0(sıfır) girelim ve enter a basalım.
  • Is this server configured for Secure Socket Layer<https> <y/n> [n]:
  Server ın durumuna göre y veya n tusuna basalım.Enter ı tıklayalım.

  • Enter domain\username:

  Domain ve kullanıcı adımızı girelim.
  agcyazilim\gokhanm
  • Password 
  Kullanıcı şifremizi girelim .Enter a bastıktan sonra entity xml dosyaları debug klasoru altında ExportRibbonXml dosyası altına olusacaktır.



CRM 2011 Javascript -Var Olan Formu Açma

Crm 2011'de javascript ile var olan bir kaydı yeni bir pencede görüntülemek için karmaşık Url adresleri arasında açmak istenilen kayıtın Guid bilgisi yerleştirilerek window.Open();  js function'ı ile açabiliyoruz fakat crm içindeki javascript kütüphanesini kullanarak aşağıdaki gibi istediğiniz kayıtları parametrik olarak açabilirsiniz .

// Açıklama : Parametre gelen varlık Id'sine , Parametre gelen Logical Adına göre yeni crm formu açar
function FormAc(EntityId, LogicalName) {
    try {

        if (EntityId != null && LogicalName != null) {
            Xrm.Utility.openEntityForm(LogicalName, EntityId);
        }

    } catch (e) {
        alert('Form Aç İşleminde Hata Oluştu');
    }
}

Gerekli sistemler -CRM 2011 Roll up 8

18 Temmuz 2013 Perşembe

CRM 2011 - Unable to cast object of type Microsoft.Xrm.Sdk.Entity

 Plug-in
Servise baglantımızı yukarıdakı koddaki gibi yapıyorsak kodumuzu asagıdkı gibi güncellememiz gerekmektedir.

 serviceFactory.GetType().GetProperty("ProxyTypesAssembly").SetValue(serviceFactory, typeof(XrmServiceContext).Assembly, null);





IOrganizaton service kullanarak baglantımızı gerceklestırıyorsak ;

 _serviceProxy.EnableProxyTypes(); bolumunu koda eklememız yeterlı olacaktır.

 public static IOrganizationService GetCrmService()
        {
            try
            {
                IOrganizationService _crmService = null;
                OrganizationServiceProxy _serviceProxy = null;
                ClientCredentials _objCredentials = null;
                string _strCrmURL = string.Empty;
                _objCredentials = new ClientCredentials();
                _objCredentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;

                _strCrmURL ="http://deneme:port/organizationname/XRMServices/2011/Organization.svc"

                    Uri organizationUri = new Uri(_strCrmURL);
                    Uri homeRealmUri = null;
                    _serviceProxy = new OrganizationServiceProxy(organizationUri, homeRealmUri, _objCredentials, null);

                    _serviceProxy.EnableProxyTypes();
                    _crmService = (IOrganizationService)_serviceProxy;

                return _crmService;
        }

17 Temmuz 2013 Çarşamba

CRM 2011 - Plugin Kod Yazımı


  • Asagıda kod sayfasının gorunumu vardır.Kapalı kısımlara sayfanın devamında ulasabılırsınız.

  • Plugin Tanımlamaları

  • Parameters and GetTargetEntityId

  • MainCode