Dynamics 365 UCI - NavigateTo Client API


Xrm.Navigation.navigateTo(pageInput,navigationOptions).then(successCallback,errorCallback);

Dynamics 365 için 2020 Release Wave 1 Güncellemesi ile artık dialog penceresinde dynamics 365 formlarını açabiliyoruz.

Dynamics 365 kaydını açmak için Xrm.Navigation.openForm yöntemini kullandık ve bu yöntem kayıtları yeni pencerede veya aynı tarayıcı penceresinde açıyordu.

NavigateTo Client API kullanarak, geçerli formumuzu veya web kaynağımızı terk etmeden CRM kaydını özel web kaynağımızdan veya herhangi bir CRM formundan iletişim kutusunda açabiliriz.

Not:
Bu yöntem sadece Birleşik Arabirim  (Unified Interface)' de desteklenir. Eski arayüz içerisinde kullanılmaz.


Örnek script kullanımları

1- Varlık Listeleme

var pageInput = {
    pageType: "entitylist",
    entityName: "lead",
};

Xrm.Navigation.navigateTo(pageInput).then(
  function success() {
    // Run code on success
  },
  function error() {
    // Handle errors
  }
);

Görünüm kimliğini (viewId) belirtmezsek, aşağıdaki ekran görüntüsünde gösterildiği gibi varlığın varsayılan ana görünümüne gider. Bizim örneğimizde varsayılan olarak Açık Müşteri Adaylarım seçili durumdadır.



Tüm müşteri adaylarının görüneceği görünümüm kimliğini verelim.


var pageInput = {
    pageType: "entitylist",
    entityName: "lead",
    viewId: "5A926B99-3A5F-DF11-AE90-00155D2E3002",
    viewType: "savedquery"
};

Xrm.Navigation.navigateTo(pageInput).then(
  function success() {
    // Run code on success
  },
  function error() {
    // Handle errors
  }
);



2- Varlık Formu Açma

var pageInput = {
    pageType: "entityrecord",
    entityName: "contact",
    formType:2,
   // entityId: "3f189b2b-788a-ea11-99e5-0003ff7e9ecb" //replace with actual ID
};

var navigationOptions = {
    target: 2,
    height: {value: 80, unit:"%"},
    width: {value: 70, unit:"%"},
    position: 1
};

Xrm.Navigation.navigateTo(pageInput, navigationOptions).then(
  function success() {
    // Run code on success
  },
  function error() {
    // Handle errors
  }
);

Aşağıdaki ekran görüntüsünde yeni kayıt girişi için ilgili kişi yeni formu açılmıştır.


entityId değeri olarak var olan bir kaydın guid değeri verilirse kayıtlı form açılacaktır.


3- Bir iletişim kutusunda oluşturma modunda bir form açma

Aşağıdaki script kullanılarak yeni bir müşteri adayı girişi yapılan form açılır. success metoduna formu kaydettiğiniz an düşecektir. Burada oluşan kaydımızın dynamics 365 üzerinde tutulan id değerine ulaşabiliriz.

var pageInput = {
  pageType: "entityrecord",
  entityName: "lead",
};

var navigationOptions = {
  target: 2,
  height: { value: 80, unit: "%" },
  width: { value: 70, unit: "%" },
  position: 1,
};

Xrm.Navigation.navigateTo(pageInput, navigationOptions).then(
  function success(result) {
    console.log(
      "Record created with ID: " +result.savedEntityReference[0].id +
      " Name: " +result.savedEntityReference[0].name
    );
    // Handle dialog closed
  },
  function error() {
    // Handle errors
  }
);


4- Html sayfaları görüntüleme

Daha önceden Xrm.Internal yöntemi ile aynı form üzerinde html sayfalarımızı dialog şeklinde açabiliyorduk. Bu yöntem Microsoft tarafından dökümente edilmese de bir problem çıkarmıyordu.

 Xrm.Internal.openDialog(url, dialogOptions, winArguments, null, callBackFunc);

Birleşik arabirime geçişte bu yöntem desteklenmedi. Xrm.Navigation.openForm ile html sayfalarımızı açabiliyorduk ama aynı form üzeirnde açamıyorduk. Sayfalar pop-up şeklinde görüntülenebiliyordu.

navigateTo ile artık Dynamics 365 üzerinde sayfalarımızı aynı form üzerinde görüntüleyebileceğiz.

Alttaki script kodları , html bir sayfaya querystring yoluyla parametre göndererek ilgili sayfanın açılmasını sağlar. Parametre almayan bir sayfayı açacaksanız pageInput  içerindeki data özelliğini vermemeniz gerekir.

function AgcQueryParameter(_key, _value) {
  this.key = _key;
  this.value = _value;
}

function LoadHtmlPage() {
  var userId = Xrm.Utility.getGlobalContext().userSettings.userId.replace("{", "").replace("}", "").toUpperCase();
  var langId = Xrm.Utility.getGlobalContext().userSettings.languageId;

  var param1 = new AgcQueryParameter("userid", userId);
  var param2 = new AgcQueryParameter("langid", langId);

  var qParams = new Array();
  qParams.push(param1);
  qParams.push(param2);

  var customParameters = null;
  if (qParams !== null && qParams.length > 0) {
    var paramPart = "";
    for (var i = 0; i < qParams.length; i++) {
      var item = qParams[i];
      if (i === 0) paramPart += item.key + "=" + item.value;
      else paramPart += "&" + item.key + "=" + item.value;
    }
    paramPart += "&dParam=1";
    customParameters = paramPart;
  }

  var pageInput = {
    pageType: "webresource",
    webresourceName: "new_/mutabakat/html/loadfromerp.html",
    data: customParameters,
  };

  var navigationOptions = {
    target: 2,
    width: 575,  // value specified in pixel
    height: 400, // value specified in pixel
    position: 1,
  };

  Xrm.Navigation.navigateTo(pageInput, navigationOptions).then(
    function success() {
      // Handle dialog closed
      selectedControl.refresh();
    },
    function error(e) {
      Xrm.Navigation.openAlertDialog({ text: e.message });
    }
  );
}

Açılan sayfa görünümü



 Detaylı bilgi için aşağıdaki linki kullanabilirsiniz.

https://docs.microsoft.com/en-us/powerapps/developer/model-driven-apps/clientapi/reference/xrm-navigation/navigateto

Microsoft PowerApps Office Add-in Kurulumu


Eklentiyi kurabilmek için Microsoft AppSource'a gidin ve "Microsoft PowerApps Office Eklentisi" ni arayın ve yükleyin.

https://appsource.microsoft.com/en-us/product/office/WA104380330?src=Office


Açılan sayfa üzerindeki Şimdi Al butonuna tıklayalım.


Gelen pencere üzerinde Devam butonuna tıklayalım.
Daha sonra office 365 hesabınızla giriş isteyecektir.

Giriş yaptıktan sonra  eğer excel online kullanmıyorsanız farklı bir sayfaya yönlendirileceksiniz. Açılan sayfa üzerinde Exceli Aç butonuna tıklayalım.

Makineniz üzerindeki kurulu olan excelin açılması için izin isteyecektir.


İzin verildikten sonra excel sayfası açılır ve gelen sayfada Eklentiye Güven butonu tıklanır.


Daha sonra bu eklentiye kullanıcımızla login olabiliriz.



Eğer bu şekilde işlemleri yapamazsanız aşağıdaki yöntemi deneyebilirsiniz.

Bilgisayarınızda bir excel sayfası açın ve Insert tabı altından Get Add-ins butonuna tıklayalım.


Açılan ekran üzerinde arama kutusuna powerapps yazalım ve arama sonuçlarında gelen Microsoft PowerApps Office Eklentisi ni ekle diyelim.


Ekleme işleminden sonra Insert tabı altından My Add-ins kısmını kontrol edelim . Eklentimiz buraya gelmiş olacaktır.


Dynamics 365 - Kayıt oluşturmanın ve güncellemenin yeni yolu

New way for creating and updating records in Dynamics 365 CRM


Dynamics 365 CRM'de genellikle kayıtları toplu olarak oluşturmamız veya güncellememiz gerekir.
Bunu yapmak için çeşitli yöntemler vardır. Veri Al (Import Data) yoluyla belli formatlardaki dosyaları kullanarak , Dynamics 365 CRM 'de kayıtları oluşturabilir veya güncelleyebiliriz. 
Ayrıca, Dynamics 365 CRM içindeki Toplu Düzenleme (Bulk Edit) butonu ve Excel Online butonu, varolan kayıtları toplu olarak güncellememize yardımcı olur.

Son zamanlarda PowerApps üzerinde çalışırken, Excel'de çalışmaya alışkın ve Excel sayfalarında çalışmayı seven kullanıcılar için kullanımı çok kolay ve çok yararlı olan başka bir yöntemle karşılaştım.

Şimdi, toplu kayıtları oluşturmak ve güncellemek için PowerApps ortamında kullanabileceğimiz bu yeni özelliği inceleyelim.

Bu yeni özelliğe Verileri Excel'de düzenle (Edit data in Excel) adı verilir. Bu sadece Dynamics 365 CRM ile sınırlı değildir. PowerApps Platformunun bir parçası olduğundan, diğer PowerApps ortamlarınız için  kullanılabilir.

https://make.powerapps.com adresinde oturum açın. Veri sekmesinin altındaki Varlıklar'ı seçin ve verileriyle çalışmak istediğiniz varlığı tıklatın. Daha sonra açılan varlık içerisinde Veriler sekmesine tıklayalım ve formun üstünde Verileri Excel'de düzenle adlı bir buton göreceksiniz.



Not: Burada hangi ortam için çalışacağınızı en başta seçmeniz gerekecektir. Bunu da sayfanın sağ üst köşesinde bulunan Ortamlar (Environments) altından yapıyoruz.

Bu yöntemin diğer data düzenleme yöntemlerinden (Veri Alma Sihirbazı, Toplu Düzenleme ve Excel Online) farkları 

Bu yeni özellik ve mevcut diğer özellikler arasındaki temel fark, sadece kayıtları toplu olarak güncellememize izin vermekle kalmaz, aynı zamanda başka bir yere gitmeden Excel'de hareket halindeyken kayıtlar oluşturmamıza izin verir. Excel sayfasını Dynamics 365 CRM'de içe aktarmaya gerek yoktur. Çok az tıklama ile güncellenen verileri Dynamics 365 CRM'de alacaksınız.

Excel'de verileri düzenle'yi ne zaman kullanabiliriz?
  • Dynamics 365 kullanılan kuruluş içerisinde excel ile daha rahat çalışan personeller olabilir veya işleri yalnızca belirli ihtiyaçlara yönelik CRM 'de kayıt oluşturmak ve güncellemek olabilir. Bu tip kullanıcılara yönetici olarak üzerinde çalışacakları bir excel sayfası sağlayabilirsiniz. Örneğin, Dynamics 365 CRM'de güncelleme yapmak için satış personeline bir excel Müşteri sayfası (Dynamics 365 CRM ortamına bağlanacak) sağlayabilirsiniz.
  • Dynamics 365 Yöneticisi olarak, birçoğunuz ortamda farklı kayıt kümeleri oluşturarak iş süreçlerinizi test etmek istiyorsunuz. Bu özelliği, test amacıyla Dynamics 365'te kayıt oluşturmak ve güncellemek için de kullanabilirsiniz.

Gereklilikler

Bu yöntemi kullanabilmek için excel içerisinde ‘Microsoft PowerApps Office Eklentisi’ kurulu olmalıdır. Microsoft AppSource'a gidin ve "Microsoft PowerApps Office Eklentisi" ni arayın ve yükleyin.



Eklentiyi yüklemek için ilgili makaleyi inceleyebilirsiniz.

Verileri Excel'de düzenleme nasıl çalışır?

Buradaki örneğimizde firmalar üzerinde bu yöntemi uygulayacagız.

Yukarıda anlattığım gibi https://make.powerapps.com adresinde oturum açın. Veri sekmesinin altındaki Varlıklar'ı seçin ve Firmalar varlığını tıklatın. Daha sonra açılan firma varlığı içerisinde Veriler sekmesine tıklayalım ve formun üstünde Verileri Excel'de düzenle butonuna tıklayalım.


Bu ekranda hangi veri setinde çalışacaksak ekranın sağ üst köşesinde bulunan görünümler kısmından görünüm belirleyebiliriz.


Verileri Excel'de düzenle butonuna tıkladıktan sonra bilgisayarımıza dataların bulunduğu bir excel inecektir.

İndirilen excel sayfasını açın. Microsoft PowerApps Office Eklentisi'nde Ortak Veri Hizmeti kullanıcı hesabını kullanarak Dynamics 365 CRM'de oturum açın.


Eğer daha önce giriş yapıldıysa tekrar giriş yapmamıza gerek kalmayacaktır.


Başarılı bir şekilde oturum açtığınızda, eklenti panelinde aşağıdaki seçenekleri görürsünüz.


Kaynak: Verilerin kaynağını tanımlar. Bu örnekte, kaynak Firma (account) dır.

Alan: Bulunduğum sütunu tanımlar. Bu örnekte, ‘Firma Adı’ sütununun satır hücresindeyken ‘Firma Adı’nı gösteren alan.

Yeni: Tabloya yeni kayıt girişi yapmak ve bu girişi Dynamics 365 CRM'de yeni bir kayıt olarak kaydetmek için kullanabileceğiniz bölümdür.Excele yeni satır ekler.

Yenile: Excel sayfasındaki verileri yeniler. Dynamics 365 CRM'den yeni değişiklikleri alır ve excel sayfasını güncellenmiş verilerle yeniden yükler.

Yayınla: Excel sayfasında yapılan değişiklikleri Dynamics 365 CRM 'ye aktarın. Verilerinizde excel sayfasında değişiklik yapabilirsiniz ve değişiklikleri yaptıktan ve verileri onayladıktan sonra, Dynamics 365 CRM 'deki tüm değişiklikleri uygulamak için bu butonu kullanın.

Filtre: Excel sayfasında bulunan verilere filtre uygulayın. Varsayılan olarak, "VE" koşulu uygulanır. Verileri Filtre penceresinde eklenen koşula göre yeniden yüklemek için ‘Yenile’ düğmesini kullanın.



Yeni kayıt oluşturun ve mevcut kayıtları güncelleyin

Verileri düzenlemek istediğiniz excel sayfasındaki hücreye gidin. Metin, çok satırlı, para, datetime, Lookup, owner, optionset vb. Her türlü alanı ayarlayabiliriz.


Seçenek kümesi için eklenti panelinde seçebileceğiniz seçenekler elde edersiniz. Sahip ve arama alanı için eklenti panelinde kullanıcı kayıtlarının ve ilgili varlığın kayıtlarının listesini alırsınız.

Seçenek kümesi

Seçenek kümesi alan türü için yeni değeri seçmek için listeden seçeneği seçin. Aynı şey Boole türü alan için de geçerlidir.


Arama (Lookup)

Yeni arama değerini seçmek için kayıt listesinden kaydı seçin.

Örneğimizde ,Sahibi alanını tıkladıktan sonra Microsoft PowerApps Office penceresinde bu alana gelebilecek değerler listelenir. Bu listeden bir kayıt seçebilirsiniz.

Yeni kayıt oluştur

Bir tabloya yeni bir satır eklemek için "Yeni" düğmesini tıklayın.Excelinizde yeni kayıt girişi için bir satır belirecektir. Gerekli tüm alanlar için veri girin. Excel sayfasındaki değişiklikleri yaptıktan sonra değişiklikleri Dynamics 365 CRM'ye kaydetmek için Yayınla'yı tıklayın.


Başarılı bir yayımlama işleminden sonra , 'Yayım Başarılı' mesajı alırsınız.


Sonrasında excel üzerinde yaptığınız değişiklikleri Dynamics 365 CRM üzerinde görebilirsiniz. 


Salt okunur alan 

İndirilen excel sayfası, varlığın tüm alanlarını gösterir. Ancak salt okunur alanı değil, yalnızca düzenlenebilir alanın verilerini güncelleyebiliriz. Eğer salt okunur bir alan üzerinde güncelleme işlemi yaparsanız yayımlama sırasında hata çıkacaktır.

Güvenlik

Excel üzerinde eklentiye hangi kullanıcı ile bağlanırsanız o kullanıcının yetkilerine göre excelde işlem yapabilirsiniz.

Örneğin,bir yönetici olarak olası satış varlık excel sayfasını indirir ve diğer olası satışları okuma erişimi olmayan bir kullanıcıyla paylaşırsanız, o kullanıcı yalnızca kendisine ait olan olası satışları görebilir. Bu özelliği Excel sayfasında kullanırken Dynamics CRM güvenliği uygulandığından güvenlik konusunda endişelenmemize gerek kalmaz.

Sonuç

Sonuç olarak verileri doğrudan Dynamics 365 CRM ortamında düzenlemenin bu yeni yolu çok kullanışlı ve daha hızlıdır. Excel sayfasındaki değişiklikleri yapmaya devam edebilir ve tüm veri değişikliklerini tek bir tıklamayla Dynamics 365 CRM'de yayınlayabiliriz.