.::Eralp Erat's Solutions Diary::..

{#Every way that I Can share!}-MS Dynamics CRM

MS Dynamics Crm Tips And Tricks - 28 (Microsoft CRM ,plug'in içerisinde parametre pas geçme)

clock Haziran 11, 2010 02:18 by author NetZero2

Selamlar ;

Yüksek lisans final sınavları, müşteri tarafındaki yoğunluk ve kızım Zeynep'le uğraşırken ancak yazabilmeye fırsatım oluyor.Lütfen mazur görün.

Geçenlerde müşteri tarafında ki bir plug'in de geliştirilen iş mantığından ötürü ihtiyaç duyduğum bir olayın çözümünü araştırırken context'ler arasında parametre pas geçebilme özelliğinin olduğunu gördüm.Aşağıda bir örnekle gösterdim.Aynı entity'e regist ettiğim pre ve post eventlerinde değerler birbirine pass geçiliyor.

   12     public class AccountSetStatePreHandler : IPlugin

   13     {

   14         public void Execute(IPluginExecutionContext context)

   15         {

   16             // Post eventinde ihtiyacımız olan datayı alıyoruz.

   17             // Bu örnek

   18             // içerisinde bir guid bilgisini 

   19             // parametre geçiyor olacağız.

   20             Guid contact = new Guid("{74422D5C-381A-4863-A5B9-B8604615C2D0}");

   21 

   22             // Bu işi gerçekleştirecek olan SharedVaraiables container'ini kullanıyor

   23             // olacağız ve buna bir key vermemeiz gerekiyor.PrinCon veriyoruz

   24             context.SharedVariables.Properties.Add(

   25                 new PropertyBagEntry("PriCon", (Object)contact.ToString()));

   26             // Bu şekildede set edebilirsiniz : context.SharedVariables["PrimaryContact"] = contact.ToString();

   27         }

   28     }

   29 

   30     public class AccountSetStatePostHandler : IPlugin

   31     {

   32         public void Execute(IPluginExecutionContext context)

   33         {

   34             // İlgili key shared variables'da varmı kontrol ediyoruz!

   35             if (context.SharedVariables.Contains("PriCon"))

   36             {

   37                 Guid contact =

   38                     new Guid((string)context.SharedVariables["PrimaryContact"]);

   39                 // Artık ilgili key'i elde ettiğimize göre ilgili diğer işlemleri yapabiliriz..

   40             }

   41         }

   42     }

   43 

Önemli bir not , bu özellik CRM 3.0 in arhitect'inde yer alan callout yapısında malesef bulunmuyor.Bunun için custom attribute olusturup (entity bazında ilgili değerleri retrieve edebilirsiniz.)bunları kullanmanız mümkündür(3.0 ve 4.0 için).PropertyBag'ler ile context üzeirinden read/write olan yapılar 4.0'a has bir özelliktir.

Sevgiler.

E2 

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Datareader Column Exists..

clock Nisan 28, 2010 03:29 by author NetZero2

Selamlar ;

.NET'de kod yazarken çoğu zaman farklı entity mappingleri içerisinde yer alan fieldları bir şekilde presentation layer'a taşımak isteyebilirsiniz.Collection'ları fill ettiğiniz filler metodunuzun içerisinde IDataReader objenizin içerisinde ilgili column'un olup olmadığını anlamak için aşağıdaki gibi bir fonksiyon kullanmak bizi rahatlatacak ve overload olmuş requestlerden doğabilecek olan crashlerin bir şekilde önüne geçmiş olabileceğiz.

 

19 private bool DataReaderHasColumn(IDataReader reader, string columnName)

20 {

21     reader.GetSchemaTable().DefaultView.RowFilter = "ColumnName= '" + columnName + "'";

22     return (reader.GetSchemaTable().DefaultView.Count > 0);

23 }

Kullanımı : 

 

18 ...

19 if (DataReaderHasColumn(dr, "BoruNo"))

20 {

21     entity.BoruNo = Convert.ToString(dr["BoruNo"]);

22 }

23 ...

Sevgiler.

E2

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


MS Dynamics Crm Tips And Tricks - 4 ( Crm üzerinde bir alanı Null hale getitirken daha pratik olmak gerekirse..)

clock Nisan 4, 2010 05:01 by author NetZero2

Selamlar ;

Bir alanı null hale getirmek istediğimizde aşağıdaki yöntemi kullanmak durumundayız.(Unsupported bir yöntem olan db'den bu işi halletme işini söylemeyin bana! :))

   18 account acc = new account();

   19 acc.accountid = new Key(new Guid("0AECA2BF-787A-48A2-A8DA-1369F0104EFF"));

   20 Lookup lookup = new Lookup();

   21 lookup.IsNull = true;

   22 lookup.IsNullSpecified = true;

   23 acc.primarycontactid = lookup;

   24 crmservice.Update(acc);



Yukarıdaki blogun yerine aşağıdaki gibi bir yapı kullanabilirsiniz.Cok daha pratik.

   18 account acc = new account();

   19 acc.accountid = new Key(new Guid("0AECA2BF-787A-48A2-A8DA-1369F0104EFF"));

   20 acc.primarycontactid = Lookup.Null;

   21 crmservice.Update(acc);

Thanks : 

8 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Yazar Hakkında

Eralp

Uludağ Üniversitesi bilgisayar programcılığı sonrasında işletme fakültesini bitiren Erat ; 1999 yılından bu yana yazılım sektörünün içerisinde yer almış ve ilgili olduğu projelerin çözüm üretilmesin de aktif olarak rol oynamıştır.Yaklaşık 6 yılını Türkiye’nin dört bir tarafında yer alan devlet hastanelerin bilgi yönetim sistemlerini tasarlamak ve geliştirmekle geçirmiş ; LIS , IVR ve Linux sistemlerinin entegrasyonu konusunda uzmanlaşmıştır.Bu konuda halen danışmanlık hizmeti vermektedir..Uzun yıllar “Object Pascal” ile uygulama geliştirmiştir.MCP , MCAD.NET ve MCSD.NET,MCTS (MS CRM 4 Customization) unvanlarına sahiptir..Aynı zamanda Mobile Cihazlar konusunda 2007 yılında Microsoft tarafından MVP unvanına layık görülmüştür.
Çeşitli kurumsal projelerin mimari tasarım ve yazılımlarını gerçekleştirmiştir.Son zamanlarda ağırlıklı olarak Microsoft Dynamics CRM ,Sharepoint ve entegrasyon bazlı olarak Axapta(Microsoft ERP) & Project Server projelerinde yer almaktadır.CRM ve Sharepoint konusunda başta finans sektörü olmak üzere Türkiye'nin alanında en büyük firmalarına kurumsal eğitimler vermektedir.Yazılım konusunda en büyük hayali, Türkiye’mizin bir yazılım üssü haline gelebilmesinde ön ayak olmaktır. Yazılımın belli bir forma sıkıştırılmasından hiç haz etmeyen ve fanatikliği değil sadece kaliteyi ön plana çıkarabilmek adına deneyimlerini ve yeni teknolojiler hakkında oluşan bilgi ve birikimlerini üniversitelerde genç dimağlarla paylaşmaktan büyük mutluluk duymaktadır. Halen orta ve büyük ölçekli kurumsal çözümler üreten bir yazılım evinde geliştirici takım lideri olarak çalışmalarını sürdürmekte ve aynı zamanda Macintosh/Objective C programlama konusunda kendini geliştirmektedir:).2007 yılında Boğaziçi Üniversitesi Makine Mühendisliği bölümünde C# eğitimleri vermiştir.Sakarya Üniversitesi e-Bilişim dalında MBA yapmaktadır.

Yazılım geliştirme konusunda birebir özel ders verilmektedir.Konuyla ilgili lütfen eralp.erat@gmail.com adresine iletişim bilgilerini mail atınız.

 

Calendar

<<  Ağustos 2010  >>
PaSaÇaPeCuCuPa
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

View posts in large calendar

Sign in