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°isken2=mentese";
window.open(url,'','');
}
23 Temmuz 2013 Salı
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);
}
{
// 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);
}
{
// 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);
}
{
// 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);
}
{
// 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);
}
{
// 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);
}
{
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.
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.
Server ın durumuna göre y veya n tusuna basalım.Enter ı tıklayalım.
Domain ve kullanıcı adımızı girelim.
agcyazilim\gokhanm
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]:
- Enter domain\username:
Domain ve kullanıcı adımızı girelim.
agcyazilim\gokhanm
- Password
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
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;
}
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.
Kaydol:
Kayıtlar (Atom)