Dynamics 365 Yeni Javascript Modeli – Model Değişiklikleri 1
  1. Anasayfa
  2. Dynamics 365

Dynamics 365 Yeni Javascript Modeli – Model Değişiklikleri 1

0

Bildiğiniz gibi Dynamics 365 v9.x ile birlikte kullanılan javascript modelinde değişiklikler ve ilaveler oldu. Bir çoğumuz yeni projelerimizde kullandığımız hazır kütüphanelerimizi tekrar elden geçirmek durumunda kaldık.

Tabi birde bunun var olan 2016 ve daha eski versiyondaki projelerimizin Dynamics 365 v9.x sürümüne geçişi var. Bu geçiş esnasında yazılan javascript kodlarımızın neredeyse tamamını elden geçirmemiz gerekecek.

Eski kodların birçoğu deprecated durumda on-premise versiyonda çalışmaya devam ediyor olsa bile, Unified Interface üzerinde bunların neredeyse hiç birisi artık çalışmıyor.

İşte tam bu yüzden bu makaleyi hazırladım. Ben çektim, araştırdım bir araya topladım. Siz bari uğraşmayın

Bu arada, sorun yaşamanız durumunda yorumlarınızla ya da sosyal medya üzerinden bana ulaşarak çekinmeden destek isteyebilirsiniz.

İsterseniz çok sık kullanmadığımız hatta bir çoğumuzun ihtiyacı dahi olmamış olan Xrm.Page.context modeli ile yavaştan başlayalım.

İlgili model içerisinde, eskiden var olan Kullanıcı verileri ile organizasyona ait veriler aynı model içerisinde barınmaktaydı. Değiştirilen API ile birlikte bunlarda model içerisinde değişikliğe uğradılar.
Aşağıdaki tabloda eski – yeni karşılaştırmasını görebilirsiniz.

Deprecated API

Replacement API

Xrm.Page.context.getTimeZoneOffsetMinutesglobalContext.userSettings.getTimeZoneOffsetMinutes
Xrm.Page.context.getUserIdglobalContext.userSettings.userId
Xrm.Page.context.getUserLcidglobalContext.userSettings.languageId
Xrm.Page.context.getUserNameglobalContext.userSettings.userName
Xrm.Page.context.getUserRolesglobalContext.userSettings.securityRoles
Xrm.Page.context.getIsAutoSaveEnabledglobalContext.organizationSettings.isAutoSaveEnabled
Xrm.Page.context.getOrgLcidglobalContext.organizationSettings.languageId
Xrm.Page.context.getOrgUniqueNameglobalContext.organizationSettings.uniqueName

Tablo-1

Tablo1 de görüldüğü üzere, Önceden Page.context modelinde bulunan fonksiyonların tamamı, kendi içerisinde gruplanarak yeni isimler ile birlikte globalContext altına taşındı. İsimlerdeki değişikliklerle de aslında benim fikrime göre kullanım kolaylığı sağlandığını ve hatırlamakta zorluk çekilmeyecek isimlendirmeler kullanıldığını düşünüyorum.

Örneğin, getUserLcid fonksiyonu userSettings.languageId şeklinde değiştirildi. Eskiden context altında usera ait localization id bilgisi istenirken şimdi, kullanıcı ayarları modeline girdiğinizde direkt userId, languageId şeklinde datalarınıza erişebiliyorsunuz.

İkinci modelimiz ise, Grid fonksiyonları.
Grid fonksiyonlarında çok büyük bir değişiklik olmamasına rağmen yine de isimlerde değişiklikler oldu.
Hadi bunlara da bakalım.

Deprecated API

Replacement API

GridRow.getDataGridRow.data
GridRowData.getEntityGridRowData.entity

Tablo-2

Gördüğünüz gibi Grid fonksiyonlarında büyük değişikliklerimiz yok. Ancak yine de revizyon mevcut.

En büyük değişikliklerin olduğu Xrm.Utility modelimize bakacak olursak buradaki fonksiyonların neredeyse tamamının hem kullanım şekilleri hem de isimlendirmeleri değişmiş durumda. Ayrıca kullanım esnasında da büyük değişiklikler, Dialoglarda görsel revizyonlarda mevcut.

Sonraki makalelerimizde ilgili fonksiyonların kullanımlarında ne gibi değişiklikler olduğuna da değiniyor olacağım.

Şimdi Xrm.Utility Modelimizdeki revizyonları inceleyelim.

Deprecated API

Replacement API

alertDialogXrm.Navigation.openAlertDialog
confirmDialogXrm.Navigation.openConfirmDialog
getbarcodeValueXrm.Device.getBarcodeValue
getCurrentPositionXrm.Device.getCurrentPosition
openEntityFormXrm.Navigation.openForm
openQuickCreateXrm.Navigation.openForm
openWebResourceXrm.Navigation.openWebResource

Tablo-3

Buradaki en büyük değişiklik openEntityForm ve openQuickCreate fonksiyonlarında gerçekleşti. İki fonksiyon tek fonksiyon altında toplandı.
Eskiden openEntityForm fonksiyonunda string olarak açılacak entity adını verirken şimdi, açılacak entity bilgilerini (daha fazla özellikle açabiliyoruz.) obje halinde iletmemiz gerekiyor. Aynı zamanda, fonksiyon tetiklendiğinde success ve error callback fonksiyonları da var

Aslında detaylı incelendiğinde, Yeni API güzellikleri yanında bazı zorlukları da beraberinde getirmiyor değil.
Misal eskiden HTML Web Resource’lar içerisinde, parent.Xrm.Page şeklinde ilgili modele ve XRM Contextine erişim sağlanabilirken, artık erişim sağlayabilmek için ilgili HTML web resource’un formun içerisine eklenmiş olması zorunluluğu geldi. Bunun dışında sitemap içerisinden ya da farklı şekilde açılan HTML Web resource’larda artık ilgili context erişilemez durumda.

GlobalContext’e erişim ise, eskiden Xrm.Page.context şeklinde sağlanırken, artık Xrm.Utility.getGlobalContext şeklinde değiştirildi.

Şimdilik 1. Partımız burada sonlansın isterseniz. Sizleri de yormayalım gözlerinizi de yormayalım

Umarım faydalı olabilmişimdir sizlere.
Bir sonraki makalede daha çok örnekle karşınızda olmak üzere şimdilik hoşça kalın, MSHOWTO ile kalın.

 

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

TAGs: Dynamics 365 Yeni Javascript Modeli – Model Değişiklikleri 1,dynamics 365 deprecated api, dynamics 365 new javascript api, dynamics crm javascript, Xrm.Page.context

Bu İçeriğe Tepkin Ne Oldu?
  • 1
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

11 yılı aşkın bir süredir Yazılım sektörünün içerisindeyim. Yazılım ile alakalı farklı eğitimleri ve sertifikasyonlarını alarak bu sektör içerisinde son 9 yıldır profesyonel olarak çalışmaktayım. Yazılım sektöründe kurumsal firmalarda, pek çok farklı pozisyonda görev aldım. Şu an Vakıf Emeklilik şirketinde DBAdmin - CRM Danışmanı olarak çalışmaktayım. MCP, MCPD, MCSE, MCITP ve MCT sertifikalarına sahibim. Halen aktif olarak bireysel yazılım eğitimleri vermeye devam etmekteyim.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir