Üyeler: 0 member(s)

Shares ?

0

Tıklanma ?

0

Viral Lift ?

0%

Categories

Other Blogs

  • 25 Jan 2016
    Plug-in'ler hakkinda yazdigim e-kitaptan sonra diger makalelerimi de biraraya getirerek bir e-kitap olusturdum. Asagidaki linke tiklayarak indirebilirsiniz. umarim faydali olur.kitabi buradan indirebilirsiniz.
    454 Posted by admin
  • 25 Jan 2016
    Dynamics CRM icerisinde ozel amacla kullanilan bircok alan bulunmaktadir ve bu alanlarin ozel tipleri vardir. Yani bu alanlara standart .Net tipleri degil de CRM siniflarini parameter olarak atamaktayiz. Bu duruma verebilecegimiz en unlu ornek ise statecode ve statuscode alanlarinin OptionSet deger almasi ve bunlarin kendilerine ozgu ozel message yapisi ile guncellenebilmesidir. Hatta bu islem oncesi kaydet guncellenemiz gerekiyorsa bu degerleri iceren bir SetStateRequest gondermeniz daha sonra da Update etmemiz gerekmektedir. Kod uzerinde bu durumu  incelersek; Assign yani birisine kayit atama ve SetStateRequest yani kaydin durumunu guncellemek icin ayri islemler yaptigimizi ve kodun ne kadar uzadigini gorebilirsiniz.             using (var service = new OrganizationService(crmConnection))             {                 Entity account = new Entity("account");                 account["accountid"] = new Guid("0C2D5AC7-B7E4-E411-80E9-C4346BAC7DA8");                 account["name"] = "Adventure Works Inc.";                 account["creditlimit"] = new Money(100000);                   // Service call 1 – standart alanlari guncellestir                 var updateRequest = new UpdateRequest() { Target = account };                 var updateResponse = (UpdateResponse)service.Execute(updateRequest);                   // Service call 2 – sahipligi degistir                 var assignRequest = new AssignRequest()                 {                     Assignee = new EntityReference                     {                         LogicalName = "team",                         Id = new Guid("042d5707-6fe5-e411-80e5-fc15b428fa14")                     },                       Target = new EntityReference                     {                         LogicalName = "account",                         Id = new Guid("0C2D5AC7-B7E4-E411-80E9-C4346BAC7DA8")                     },                 };                 var assignResponse = (AssignResponse)service.Execute(assignRequest);                   // Service call 3 – kaydin durumunu degistir                 var setStateRequest = new SetStateRequest()                 {                     EntityMoniker = new EntityReference                     {                         LogicalName = "account",                         Id = new Guid("0C2D5AC7-B7E4-E411-80E9-C4346BAC7DA8")                     },                     State = new OptionSetValue(1), //inactive                     Status = new OptionSetValue(2) //inactive                 };                 var setStateResponse = (SetStateResponse)service.Execute(setStateRequest);             } CRM 2015 update 1’den itibaren ise artik bu durumu daha iyi yonetebilmekteyiz. Cok basit bir update kodu icerisinde bu durumu cok rahat yonetebilmekteyiz. Bu ozellik sayesinde cok daha rahat ve hizli kod yazabilmekteyiz artik. Bu durum entegrasyon calismalarimizda da bize hiz ve daha guvenli calisan bir kod yapisi sunmaktadir.             using (var service = new OrganizationService(crmConnection))             {                 Entity account = new Entity("account");                 account["accountid"] = new Guid("0C2D5AC7-B7E4-E411-80E9-C4346BAC7DA8");                 account["name"] = "Adventure Works Inc.";                 account["creditlimit"] = new Money(100000);                 account["statecode"] = new OptionSetValue(1); //inactive                 account["statuscode"] = new OptionSetValue(2); //inactive                 account["ownerid"] = new EntityReference { LogicalName = "team", Id = new Guid("042d5707-6fe5-e411-80e5-fc15b428fa14") };                   var request = new UpdateRequest() { Target = account };                 var response = (UpdateResponse)service.Execute(request);             } Daha fazla detayi bu adreste bulabilirsiniz: CRM online documentation page
    410 Posted by admin
405 izlenme Jan 25, 2016
Dynamics CRM 2016 - Upsert

CRM yazilimcilari cok asina olmasa da bu terim DBA’ler icin yabanci bir terim degil. Upsert aslinda bizim bildigimiz Update ve Insert islemlerinin bir metodda birlestirilmis hali. Isin ozu ise siz sisteme bir nesne gonderdiginizde ilk once bu var mi diye kontrol ediyor eger varsa update ediyor yoksa yenisini olusturuyor.

            using (var service = new OrganizationService(crmConnection))

            {

                // Use alternate key (accountnumber) field to identify an account record

                var account = new Entity("account")

                {

                    KeyAttributes = new KeyAttributeCollection

                    {

                        {"accountnumber", "MWNS-123" }

                    }

                };

 

                account["name"] = "Microsoft Turkey";

                account["creditlimit"] = new Money(200000);

 

                var request = new UpsertRequest() { Target = account };

                var response = (UpsertResponse)service.Execute(request);

            }

Kod calistiginda MWNS-123 kodlu kaydi arayacak varsa update yoksa insert edecek, iste bu kadar basit.

Bu arada sunu belirtmekte fayda var Upsert islemi icin ozel bir mesaj bulunmamakta yani islem Update olursa Update mesaji, Create olursa create mesaji calismakta. Plugin yazarken lutfen bunu goz onunde bulundurun.

Daha detayli bilgiyi asagidaki adreslerde bulabilrsiniz.