Değişken Türleri

[vc_row][vc_column][vc_column_text]Power Apps içerisinde kullandığımız her bir nesne ya da özellik değişken olarak kullanılabilir. Örneğin bir TextBox içindeki değeri TextBox1.Text olarak çağırabiliriz, böylece bu nesne, içerisinde metinsel ifade taşıyan bir değişkenmiş gibi kullanılmış olur. Bir nesnenin rengini, içindeki yazıyı, kenarlık bilgisi gibi tüm değerler bu mantıkla çağrılarak kullanılabilmektedir. Bu açıdan bakıldığında tüm nesnelere ve özelliklere değişken gözüyle bakabiliriz. Bu konuda yazılmış diğer makalemizi okumak için linke göz atabilirsiniz.

Temel manada her nesne değişken gibi kullanılabiliyor olsada, esasında değişken olmak üzere tasarlanmış gerçek fonksiyonlar da mevcut. Değişken atama ve kullanma konusunda alanında uzman bu fonksiyonlar Power Apps için 3 kategori altında incelenmiştir diyebiliriz. Bu değişkenler, statik bir Label’ın sayfalar arası veri taşımasından ziyade, bir değeri artan ya da azalan şekilde hesaplamak gibi daha dinamik işlemlerde kullanılmaktadır.

Power Apps Değişken Türleri

1-Genel Değişkenler:

Set

  • Global/genel bir değişkendir, uygulamanın tüm ekranlarından başvurulabilir.
  • Uygulamanın herhangi bir yerinden oluşturulabilir ve başvurulabilir değişken türüdür.
  • Sayı, Metin dizesi, Boole, Kayıt ve Tablo gibi veri türlerinde değer alabilir.
  • Set(değişken_adı; değer)

2-Bağlam Değişkenleri:

UpdateContext

  • yalnızca bir ekrandan başvurulabilir değişkenlerdir.
  • tek bir değer, bir kayıt, bir tablo, bir nesne başvurusu, bir formüldeki herhangi bir sonuç
  • UpdateContext({değişken_adı : değer })

3-Koleksiyon:

Collect & ClearCollect

  • Uygulamanın herhangi bir yerinden oluşturulabilen ve başvurulabilen tablo tutar.
  • Daha sonra kullanılmak üzere yerel cihaza kaydedilebilir.
  • Bir tablo içinde kolon bazında ya da satır bazında farklı veriler girilebilir.
  • Collect her oluşturulduğunda veriyi tekrar tekrar üstüste yazar
  • ClearCollect var olan tabloyu her defasında temizleyerek sıfırdan oluşturur.
  • Collect( tablo adı ;{kolon1: “değer1” ; kolon2: “değer2”; kolon3: “değer3” ;…})
  • Collect( tablo adı ;{kolon1: “değer1” ; kolon2: “değer2”}; { kolon1: “değer1” ; kolon3: “değer3”} ; {…})

Koleksiyon kullanımı hakkında yazılan diğer makaleye link üzerinden ulaşabilirsiniz.[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][mk_image src=”https://peakup.org/wp-content/uploads/2023/12/powerapps_imza_son.gif” image_size=”full”][/vc_column][/vc_row]

Galeride Nesneleri Koşullu Kullanmak

[vc_row][vc_column][vc_column_text]Galeride Eğer(If) formüllü yazarak koşula bağlı listeler tasarlanabilir. Bu koşullar ile nesnelerin renk, görünüm, boyut, konum gibi bir çok özelliğini kontrol etmek mümkün. Koşullar ile sayesinde kişi/departman bazlı yetkilendirmeler yapılabilir, ekranlardaki butonlar gösterilip/gizlenebilir, takipsel süreçlerde durum bilgisi renklerle ifade edilebilir.

Galeride Nesnelerini Koşula Bağlı Kullanmak

Bu örnekte galeri içindeki farklı soru tipleri için farklı nesneler gösterme konusunu işleyeceğiz. Böylece aynı grubun içindeki bir soru radio buton ile yanıtlanırken diğer soru derecelendirme ile yanıt alabilecek.

Koleksiyon Oluşturma

Yukarıdaki veriler ile örneği deneyimlemek için örnek bir koleksiyon oluşturacağız. Ekrana ekleyeceğimiz bir butonun OnSelect özelliğine aşağıdaki kodu yazarak koleksiyon yaratılmalıdır.

ClearCollect( Sorular;
{
Soru:    “Soru”;
Soru_no:   “1”;
Soru_tur:    “Radio”   }
;
{
Soru:    “Soru”;
Soru_no:   “2”;
Soru_tur:  “Rating”  }
;
{
Soru:    “Soru”;
Soru_no:   “3”;
Soru_tur:    “Slider”   }
)

Nesneleri Galeride Göstermek

Örnekteki işlemleri yapmak için ekrana Galeri(Gallery)nesnesi eklenmelidir. Bu galeri nesnesinin Items özelliğine Sorular koleksiyonu bağlanmalıdır.

Koleksiyondaki her bir sorunun yanıtlanma türü mevcut Soru_tur kolonunda belirtilmiştir. Soruların yanıtlanma türüne göre galeri içerisine Radio Button, Rating ve Slider eklenmiştir. Bu nesnelerin her birinin Visible özelliğine IF formülleri yazılacak ve böylece soru tüne göre ilgili nesne gösterilirken diğerleri gizlenecek.

 

Radio Button Visible Kodu: If(ThisItem.Soru_tur=”Radio”;true;false)

Rating Visible Kodu: If(ThisItem.Soru_tur=”Rating”;true;false)

Slider Visible Kodu: If(ThisItem.Soru_tur=”Slider”;true;false)

 

Diğer Power Apps yazılarına link üzerinden erişebilirsiniz.

Eğer fonksiyonunun kullanımı için linke göz atabilirsiniz.[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][mk_image src=”https://peakup.org/wp-content/uploads/2023/12/powerapps_imza_son.gif” image_size=”full”][/vc_column][/vc_row]

Power Apps Uygulamalarında Departman Kontrolü ile Yetkilendirme

Uygulama ekranlarında kurallar oluşturarak interaktif akış sağlayabilir ya da görsel anlamda işlem yapabilirsiniz. Uygulama senaryosundaki duruma göre departman , kullanıcı maili, lokasyon, unvan, medeni durum, ya da çoktan seçmeli işlemlerde kullanıcı seçimlerine göre nesneleri ya da işlemleri koşullara bağlayabilirsiniz.

Genellikle belirlenen nesneler için gizleme, gösterme, dondurma, düzenlemeye açma ya da renk, konum, boyut değişikliği yapılmakta. Bu kontrolleri tüm uygulama senaryolarında rahatlıkla ve çok esnek şekilde uygulayabilirsiniz.

Departman bilgisi İnsan Kaynakları olan kullanıcılar IK’ya ait  yönetim ve onay ekranını açabilecekleri IK butonunu görebilmeliler.

Bu kontrolleri yaparken işlemleri adım adım ve parçalı yapmakta fayda var. Daha önceki yazımda bahsettiğim gibi formül değerlendirmeleri ayrı Label’lar içerisinde kontrol edilmeli ve ürettiği sonuca göre isimlendirilmelidir.

Aşağıdaki örnekte ilk olarak kullanıcı departmanını tespit edeceğiz.

Mevcut Kullanıcı için Departman Tespiti

Bu işlem için uygulamayı açan kullanıcının mevcut oturum bilgilerini almamızı sağlayan Office365Users.MyProfile() formülünden faydalanacağız.

lbl_kullanici_departman adını verdiğimiz bir label içerisine aşağıdaki formül yazılarak Departman bilgisi edinilmiş olur.

Office365Users.MyProfile().Department 

 

Tespit Edilen Departman İK mı?

lbl_kullanici_departmani_ik_mi

adını verdiğimiz bir label içerisine aşağıdaki formül yazılarak mevcut kullanıcı İnsan Kaynakları departmanından biri mi diye kontrol edilir. Kullanıcı İnsan Kaynaklarından ise 1 sonucunu, değilse 0 sonucunu alacağız.

If(lbl_kullanici_departman.Text=”İnsan Kaynakları”;1;0)

 

Mevcut Kullanıcı İK ise Ekranda Hangi Aksiyonlar Olacak?

lbl_kullanici_departmani_ik_mi 

adlı labeldan gelecek olan 1/0 değerlerine göre İK Giriş butonunun Visible özelliği değiştirilecek.

Böylece buton, departman koşuluna göre gösterilip gizlenecek.

If(lbl_kullanici_departmani_ik_mi.Text=Value(1);true;false) 

 

Kontrol Formülleri

lbl_kullanici_departman 

ve lbl_kullanici_departmani_ik_mi labelları daha sonra revize etmesi kolay olması adına formüller ekranına taşınmalıdır. Formül ekranı oluşturma ve önemi hakkındaki makaleye göz atmak için linke tıklayın.

Kullanıcı bilgilerini Office365 üzerinden getirmek için kullanılan fonksiyonların detayına link üzerinden ulaşabilirsiniz.

Benzer Örnekler

Personeller için hazırlanmış Ad, Soyad, TC, Cinsiyet, Doğum tarihi, Medeni durum, Askerlik gibi bilgileri içeren kişisel bilgiler formu doldurulurken de aynı süreçlerden geçilerek benzer kontroller yapılabilir.

Cinsiyet alanı Kadın olarak işaretlendiğinde Askerlik ile ilgili alanlar doldurulmayacağı için gösterilmez (Visible) ya da dondurulabilir (DisplayMode).

Medeni durum bilgisi Bekar olarak işaretlendiğinde Eş ve Çocuk bilgileri ile ilgili alanlar doldurulmayacağı için gösterilmez (Visible) ya da dondurulabilir (DisplayMode).

Diğer Power Apps yazılarına link üzerinden erişebilirsiniz.

Global Set Değişkeni

Power Apps içerisinde kullandığımız her bir nesne ya da özellik değişken olarak kullanılabilir. Örneğin bir TextBox içindeki değeri TextBox1.Text olarak çağırabiliriz, böylece bu nesne, içerisinde metinsel ifade taşıyan ve kullanıcı müdahalesine açık bir değişken olarak kullanılmış olur.  Temel manada her nesne değişken gibi kullanılabiliyor olsada, esasında değişken olmak üzere tasarlanmış gerçek fonksiyonlar da mevcut. Değişken atama ve kullanma konusunda alanında uzman bu fonksiyonlar, statik bir Label’ın sayfalar arası veri taşımasından ziyade, bir değeri artan ya da azalan şekilde hesaplamak gibi daha dinamik işlemlerde kullanılmaktadır. Set değişkeni bunlardan biridir.

Özellikleri

  • Global/genel bir değişkendir, uygulamanın tüm ekranlarından başvurulabilir.
  • Uygulamanın herhangi bir yerinden oluşturulabilir ve başvurulabilir değişken türüdür.
  • Sayı, Metin dizesi, Boole, Kayıt ve Tablo gibi veri türlerinde değer alabilir.
  • Set(değişken_adı; değer)

Set Değişkeni

Set Değişkeni kullanımı oldukça kolay bir fonksiyondur. Değişken adı belirlenir ve içine yazılacak değer belirtilir. Daha sonra bu değişken adı istenilen yerde yazılarak içerdiği veri kullanıma açılmış olur.

Bir sayaç örneği ile değişken oluşturarak kullanacağımız bir çalışma yapalım.

Ekrana bir TextBox ve iki tane Buton Eklenerek görseldeki gibi konumlandırılabilir.

Butonların üzerine + ve – yazılabilir. Butonların OnSelect özelliğine Set() fonksiyonları yazılacak.

+ butonu: Set( Sayac; Sayac+1)

Bu formül ile sayacın son değeri üzerinden 1 artırma yaparak tekrar sayaca veri aktarılmakta.

– butonu: Set( Sayac; Sayac -1)

Bu formül ile sayacın son değeri üzerinden 1 azaltma yaparak tekrar sayaca veri aktarılmakta.

Label: Sayac

Label’ın Text özelliğine değişkenin adı yazılarak değişkenin tuttuğu değer ekrana yansıtılmaktadır.

Fonksiyonun genel kullanımı için linke tıklayınız.

Diğer Power Apps yazılarına link üzerinden erişebilirsiniz.[

Sayaç Tımer Kullanımı ile Otomatik Sayfa Yönlendirmeleri

[vc_row][vc_column][vc_column_text]

Ekran Geçişleri

PowerApps mobil uygulamalarında ekran geçişleri için Navigate fonksiyonu kullanılmaktadır. Ekran geçişleri, ekrandaki nesnelere dokunulduğunda/tıklandığında (kullanıcı tetiklemesi ile) ya da belirli süreler çerçevesinde (sayaç ile) otomatik gerçekleşmesi sağlanabilir. Bir önceki yazımızda, bir butonun OnSelect özelliğine formül yazarak geçiş işlemini yapmıştık. Bu yazıda belirli bir süre sonra otomatik sayfa geçiş işlemini yapacağız.

Sayaç / Timer

Süreye bağlı olarak gerçekleşecek her işlem için Sayaç (Timer) nesnesi kullanılabilir. Böylece süre başladığında ya da tamamlandığında belirlediğiniz işlemler uygulanmak üzere çalıştırılacaktır. Sayaç burada bir tetikleyici (Power Automate yazılarımızda sıkça kullandığımız bir kelime) görevi görmektedir. Sürenin dolmasını bekler ve akışı başlatır.

Timer nesnesinin OnTimerStart, OnTimerEnd, Duration, Repeat, Reset gibi özellikleri vardır ve bu özellikler kullanılarak işlemler gerçekleştirilir. Timer Nesnesinin genel özelliklerine link üzerinden ulaşabilirsiniz.

Örneğin OnTimerStart ile ekrana yükleniyor/kaydediliyor/bekleyiniz gibi bir yazı ve görsel gösterebilir, OnTimerEnd olduğunda sayfa yönlendirmesini başlatabilirsiniz.

OnTimerStart ya da OnTimerEnd olduğunda bir koleksiyonu oluşturabilirsiniz. Koşullar oluşturabilir ya da karşılaştırabilirsiniz.

Navigate

Bu örnekte, kayıt işleminden sonra “Kaydınız başarı ile gerçekleşti” yazısını içeren bir ekran görmeyi ve süre tamamlandığında ana sayfaya dönmeyi sağlayan çalışmayı gerçekleştirelim.

Bu işlem için uygulama içerisine iki ekran eklenmeli. Ekranlardan birine SCR_AnaSayfa, diğerine SCR_Islem_Basarili adını verelim.

Timer nesnesi SCR_Islm_Basarili sayfasına eklenecek.

Timer nesnesinin Duration özelliği milisaniye cinsinden yazılmaktadır, zamanlayıcının çalışma süresini ifade eder. Bir Timer eklediğinizde standart Duration 60 000 olarak gelir ve bu da 60 saniye anlamına gelen bir değerdir. Yani Sayaç 1’den başlayarak 60′ a kadar sayacak bittiğinde işlemlere başlayacak 

 

İşlemlerin sonuçlarını hızlıca görmek ve çok beklememek için Duration değerini 3000 olarak belirleyerek 3 saniyelik bir çalışma gerçekleşmesini sağlayalım.

Duration: 3000

Belirlenen 3 saniyelik süre dolduğunda AnaSayfa yönlendirmesi yapılacak.

OnTimerEnd: Navigate(SCR_AnaSayfa)

Sayacın otomatik olarak başlaması için true yapılmıştır.

AutoStart: true

Bu işlemlerin ardından sayaç aktif şekilde çalışmaktadır. Dilerseniz Visible özelliğini false yaparak sayacı gizleyebilirsiniz.[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][mk_image src=”https://peakup.org/wp-content/uploads/2023/12/powerapps_imza_son.gif” image_size=”full”][/vc_column][/vc_row]

GUID Fonksiyonu

GUID Fonksiyonu Nedir?

GUID fonksiyonu ile tüm ekranlarda anlık olarak random id üretilmektedir. ID değerleri, Common Data Service ve SQL Server gibi veritabanı sistemleri tarafından anahtar olarak kullanılır.

Fonksiyon tek başına kullanıldığında, sayı,büyük veya küçük harf, tire içerebilir. Göründüğü gibi bu fonksiyon gayet uzun sonuçlar döndürmekte ancak bazı fonksiyonlar kullanılarak bu fonksiyon da yönetilebilir.

guid

GUID fonksiyon her hesaplandığında farklı bir değer döndürür. Formülde başka hiçbir değişiklik olmazsa uygulamanız yürütüldüğü sürece aynı değere sahip olur.

Bağımsız değişken olmadan kullanıldığında geçici bir fonksiyondur. Fonksiyonun sonucunu görüntüleyebilmek ya da kaydedebilmek için Label içine yazılabilir. Sonucun aktif değişmesi için değişkene aktarılabilir. 

Sayfa geçişinde, uygulama açılısı esnasında, verileri kaydederken ya da timer ile random id oluşturulabilir.

GUID Fonksiyonu ve Örnek Kullanımlar

Collect

Örneğin bir koleksiyon oluşturarak belirli bir kolona bu fonksiyon aktarılabilir.

Collect(Table1; {   Guid_Columns: GUID()  } )

Mid

GUID fonksiyonu sayı,büyük veya küçük harf, tire içeren uzun bir sonuç üretir. Örneğin yalnızda 5 karakterlik bir sonuç üretmek istediğinizde Mid fonksiyonu kullanılabilir.

Ekrana bir Label ekleyerek Text özelliğine Mid(GUID(); 1 ;5) yazıldığında 5 haneli bir GUID oluşmaktadır.

Set

Öte yandan sürekli olarak yeni bir değişken id oluşturulması gerektiğinde SET değişkeni kullanılabilir.

Ekrana ekleyeceğiniz bir butonun OnSelect Özelliğine Set(Guid_olustur ; Mid(GUID(); 1 ;5)) ve az önce eklenen Label’ın Text özelliğine ise Guid_olustur  değişkeni yazılır. Artık butona her tıklandığında yeni bir değer oluşacaktır ve bu değer Label içerisinde görünecektir.

GUID() Fonksiyonun genel kullanımı için linke tıklayınız.

Diğer Power Apps yazılarına link üzerinden erişebilirsiniz.

Formül Ekranı Oluşturarak Formülleri Yönetmek

Uygulama ekranlarında formül ile kurallar oluşturarak interaktif akış sağlayabilir ya da görsel anlamda işlem yapabilirsiniz.

Genellikle, belirlenen nesneler için gizleme, gösterme, dondurma, düzenlemeye açma ya da renk, konum, boyut değişiklikleri yapılmakta.

Uygulama senaryosundaki duruma göre departman, kullanıcı maili, lokasyon, unvan, medeni durum, ya da kullanıcı seçimlerine göre nesneleri veya işlemleri, belirli koşullara bağlayabilirsiniz. Bu kontrolleri tüm uygulama senaryolarında rahatlıkla ve çok esnek şekilde uygulayabilirsiniz.

Bu yazıda, ekrandaki koşulları merkezi şekilde yönetmeyi ve formül değerlendirme sürelerini ele alacağız. En önemlisi de formül değerlendirme sürelerinin tamamlandıktan sonra işlem yapılmasının öneminden bahsedeceğiz.

Formül Değerlendirmesi Nedir?

Formül değerlendirmesi, yazılan formülün üreteceği sonuç esnasında yapılan sınamadır. Formülün performansına göre belirli bir süre zarfı gerektirir.

Formül Değerlendirmesi Neden Uzar?

Formülün performansına göre süre uzayacak ya da kısalacaktır. Ekranlardaki koşullar karmaşıklaştıkça, iç içe formüller kullanılması, birbiri ile ilişkili farklı nesnelerin kontrolünün tamamlanmasının beklenmesi, veri kaynağından gelen yanıta göre işlem yapılması gibi başlıca sebepler formüllerin değerlendirme süresini uzatabilmektedir.

Bu nedenle formül değerlendirmelerini en hızlı şekilde çalışacak hale getirmek önemlidir. Değerlendirme işlemini henüz tamamlamamış bir formülün yanıtı geciktiğinde default değeri bir yanıt olarak kabul edilebilir ve yanlış işlemlere sebep olunabilir.

Formül değerlendirilmezse ne olur?

Değerlendirme işlemini henüz tamamlamamış bir formülün yanıtı geciktiğinde default değeri, bir yanıt olarak kabul edilebilir ve yanlış işlemlere sebep olunabilir.  Formül değerlendirmesi bitmeden bir sonraki işleme geçilmesi yanlış sonuçlar üretecektir. Yani belirttiğiniz koşul sağlansa bile bu koşulun sonucu için geç yanıt döndüğü için koşul sağlanmamış gibi bir işlem olabilir. Koşullar gerektiği kadar hızlı davranmadığında formülleri ya da formüllerin çalıştığı ekranları yönetmek için işlemler yapmak ve formülleri gözden geçirmek gerekir

Formüller nasıl yönetilmeli?

  • Formüller için bir değerlendirme ekranı yapılmalıdır.
  • Her zaman üzerinde durduğumuz gibi doğru isimlendirmeye çok dikkat edilmeli. Formülün değerlendirildiği Label için yaptığı işe ya da ürettiği sonuca göre isimlendirilme yapılmalı.
  • Eğer fonksiyonunun kullanımı ile formülün sonucu 1 ve 0 sonucunu üretir hale getirilmelidir.
  • OnSelect, OnVisible,OnScan gibi işlemler anlık işlemler olduğundan, Bekleme süresi uzun tüm formüller Labellar yardımı ile dışarda hesaplandıktan sonra, yalnızca 1,0 kontrolü çalıştırılmalıdır.

 

Listeleri Koşullu Tasarlamak

Galeri içerisinde Eğer(If) formüllü yazarak koşullu listeler tasarlanabilir. Bu koşullar ile nesnelerin renk, görünüm, boyut, konum gibi bir çok özelliğini kontrol etmek mümkün. Koşullar ile sayesinde kişi/departman bazlı yetkilendirmeler yapılabilir, ekranlardaki butonlar gösterilip/gizlenebilir, takipsel süreçlerde durum bilgisi renklerle ifade edilebilir.

Koşullu Listeler Tasarlamak

Bu örnekte galeri içindeki kayıtlar içerdiği bilgiye göre renklerle ifade edilmekte. Departman bilgisi “Eğitim” olan tüm kayıtlar mor renk ile ifade edilirken Satış departmanı ise Gri renk ile gösterilmekte.

Galeri içerisindeki her bir kaydı bireysel olarak değerlendirilebilmek için ThisItem kelimesi kullanılmaktadır. Böylece mevcut kayıtlar içinden, ilgili satırın kendi verisine erişilebilir.

Kayıt işlemi esnasında ad soyad bilgisi ayrı ayrı yazılmakta. Ad Soyad yanyana yazabilmek için & birleştirme operatörü kullanılmaktadır.

ThisItem.P_ad & ” ” & ThisItem.P_soyad

Koşul Eklemek

Kayıtları renklendirmek için galeri içerisine bir boş bir Label eklenir ve galerinin sol tarafına yerleştirilir.

Label’ın Fill özelliğine If(ThisItem.P_departman=”Eğitim”;Purple; Gray) 

Bu söz dizimi ile galerideki her bir satır ayrı ayrı değerlendirilecek ve departman bilgisi kontrol edilecek. Departman Eğitim ise Mor, farklı bir departman ise Gri renkle gösterilecek.

Renk bilgisi doğrudan Purple,Red,Blue olarak yazılabildiği gibi RGB kodları üzerinden de yazılabilir.

Özel bir renk kodu kullanmak istediğinizde RGBA() fonksiyonu kullanılmaktadır.
Bu fonksiyon RGBA(255; 255 ; 255 ; 1) olarak da yazılmaktadır. Formülün son parametresi 0 ile 1 arasında değer alır ve oluşan rengin saydamlığını etkiler.

Diğer Power Apps yazılarına link üzerinden erişebilirsiniz.

Eğer fonksiyonunun kullanım detayları için linke tıklayınız.