İçeriğe geç

SharePoint Online “Custom scripts” Özelliğinin Devamlı Aktif Olmasını Sağlamak

Merhaba arkadaşlar bugün bana eziyet olmuş olan ve aynı zaman da sharepoint online tarafında devamlı geliştirme ve güncelleme yapan herkes içinde eziyet olduğunu düşündüğüm bir konu olan bir web sitenin “Custom scripts” özelliğinin 24 saatten uzun süre açık kalmaması ve otomatik olarak kapanması sorununu nasıl çözeceğinizden bahsedeceğim.

Bu durum özellikle aktif olarak bir proje geliştirildiği zaman sorun yaratabilmektedir ve masterpage, script editör, sistem css ve js dosyaları gibi bir çok yerde düzenleme yapmanızı engellemektedir. Bu özelliği de sadece global admin yetkisi olan kullanıcılar değiştirebildiğinden dolayı iş yapmayı ciddi anlamda zorlaştırıyor.

Kullanılan bu özellik eskiden tüm sharepoint siteleri için tek bir yerden yönetildiği gibi tek seferlik bir ayarlama ile kalıcı olarak güncellenebiliyordu ama bu yeni yapı da her bir web application için ayrı ayrı yapılması gerekmektedir.

Şimdi size bu durumu en azından geliştirme süresi boyunca nasıl çözeceğinizi anlatacağım. İlk olarak bu özelliğin yeni yerini size gösterelim.

Global admin kullanıcınız ile “sharepoint admin center” adresine gidiyorsunuz. Burada sol tarafta yer alan menü de “Sites” başlığı altında yer alan “Active sites” ekranına gidiyoruz. Bu sayfa da karşınıza sharepoint adresiniz de yer alan aktif siteler gelecektir.

İşlem yapmak istediğiniz siteyi seçtiğiniz zaman sağ tarafta açılan popup ekranında bu site ile ilgili detayları görebilirsiniz. Üst kısımda yer alan menüden “Settings” sekmesine geldiğiniz zaman orada “Custom scripts” kısmını görebilirsiniz ve default olarak “Blocked” geldiğini göreceksiniz. Manuel olarak ayarı açmak için “Edit” tıklayarak ayar ekranına gidebilirsiniz.

Açılan ekran da “Allowed” ve “Blocked” olarak iki seçenek gelecektir ve buradan “Allowed” olarak seçim yapıp “Save” butonu ile kaydederseniz “Custom scripts” özelliğiniz aktif olacaktır. Ama üstte de göreceğiniz gibi en geç 24 saatte bu özellik tekrardan “Blocked” durumuna otomatik olarak gelecektir.

Bu durum için ya global adminin 24 saat süreyle bu özelliği tekrar aktif etmesi ya da ihtiyaç olduğunda işe başlamadan önce bu özelliği sizin aktif etmeniz gerekmektedir.

Şimdi bu durum uzun süreli projelerde ciddi bir zaman kaybı ve sorun yaratabilir. Bu özelliği kalıcı olarak aktif edecek bir otomasyon yapısı kurarak düzenli olarak aktif hale gelmesini sağlayabiliriz.

Bunun için yine “Microsoft 365” ürünü olan “Power Automate” ürününü kullanacağız ama burada yine oluşturacağımız flow global admin hesabı ile işlemi yapması gerekmektedir.

Power Automate sitesine geldiğiniz zaman sol menü de yer alan “My flows” kısmına tıklayarak flowlara geliyoruz. Bu kısımda üst menüdeki “New flow” butonu alında yer alan “Scheduled cloud flow” seçeneği yani zamanlanmış akış özelliğini seçerek onu oluşturmamız gerekiyor.

Açılan ayar popup kısmında flow adını eğer bu ayarı site bazlı ayıracaksanız ona göre diğerlerinden ayırt edebilmek adına isimlendirebilirsiniz. Diğer bir ayar kısmı ise bu flow ne zaman çalışması gerektiği ve ne kadar süre de bir tekrar çalışacağı ayarlanma kısmıdır. Bu kısım tamamen size kalmış bir durum ama ben her gece oniki de olacak şekilde 24 saatte çalışacak özelliğin aktif hale gelmesini istediğim için bu şekilde ayarlıyorum. Sizde kendinize göre ayarlamayı yaptıktan sonra “Create” butonu ile flowu oluşturabilirsiniz.

Gelen flow ekranın da “+” butonuna tıklayarak gelen sol menüden “SharePoint” başlığı altında yer alan “Send an HTTP request to SharePoint” aksiyonunu seçiyoruz.

Eklediğimiz aksiyon kısmı için sol tarafta açılan popup kısmında menüde yer alan ilk ayar kısmı olan “Parameters” başlığı altındaki alanları doldurmamız gerekmektedir. Bu alanlar sırası ile aşağıdaki açıklamalara uygun dikkatli şekilde doldurulması gerekmektedir.

  • Site Address: Bu kısıma sharepoint online admin adresiniz gelmesi gerekmektedir. Genellikle online adresinizin sonuna “-admin” eklenmiş halidir. Ben kendi admin adresim olan “https://yunusemrearac-admin.sharepoint.com” adresini yazdım sizde kendi admin adresinizi yazabilirsiniz. Eğer bilmiyorsanız sol üst hamburger menüden ya da üstte özelliği manuel olarak açmayı gönderdiğim ekrandaki url adresinden görebilirsiniz.
  • Method: Bu kısımda “PATCH” seçilmesi gerekmektedir.
  • Uri: Bu alana istek atacağımız api adresimizi yazmamız gerekmektedir. Özelliği açacak api isteğimiz “_api/SPO.Tenant/sites(‘SiteId’)” olarak yazılması gerekmektedir. son kısımda yer alan “SiteId” yazan yere işlemi gerçekleştirmek istediğiniz sitenin id bilgisini yazmanız gerekmektedir. Bu ayarı da yine üstte göstermiş olduğumuz site seçimi yapıldığında site ile ilgili açılan popup esnasında urlde yer almaktadır.
  • Advanced parameters: Burada zaten toplamda iki ayar var ve bu iki ayar olan “Headers” ve “Body” parametrelerini seçerek onları da girmemiz gerekmektedir.
  • Headers: Burada tek bir parametre girmemiz gerekiyor. “content-type” başlığında “application/json” değerini giriyoruz.
  • Body: Bu kısımda da sabit olarak ‘{“DenyAddAndCustomizePages”:1}’ olarak giriyoruz. Eğer 1 olarak bırakırsak özelliği açacaktır ama 2 olarak değiştirirsek bu da kapatacaktır.

Tüm bunları doğru bir şekilde girdikten sonra sağ üst tarafta “Save” butonu ile kayıt edebiliriz. Bunu test etmek istediğiniz zaman da yine bu butonun yanında yer alan “Test” butonuna tıklayarak açılan sağ popupta “Manually” seçerek alt kısımda yer alan “Test” butonu ile testi başlatabilirsiniz.

Bu aşamada flow çalışmaya başlamadan önce özet bir ekran gelecektir aslında bu manuel giriş gerektiği durumlarda özet bir çalıştırma öncesi ekran olacaktır.

Özet inceledikten sonra herhangi bir sorun görünmüyorsa alt kısımda yer alan “Run flow” butonu ile akışımızın çalışmasını tetikleyebiliriz.

Akışımız çalıştığında ve sorunsuz bir şekilde tamamlandığında sonuç sayfasında bunu göreceğiz ve “Done” butonu ile testimizi tamamlayabiliriz.

Bu test sonrası yine üst kısımda yer alan manuel ayar kısmında özelliğin aktif olup olmadığını kontrol edebilirsiniz. Tekrar emin olmak adına özelliği manuel olarak kapatarak akışınızı yine test olarak tetikleyip kontrol sağlayabilirsiniz.

Bu akış ile herhangi bir efora gerek kalmadan günlük olarak custom scripts özelliğiniz aktif hale gelecektir. Sizde bu akışları site bazlı oluşturursanız ihtiyaç durumuna göre akışı kapatıp ya da açarak yönetebilirsiniz.

Kategori:SharePoint

İlk Yorumu Siz Yapın

Bir yanıt yazın

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