PowerApps, SharePoint ve Power Automate ile Ziyaretçi Kayıt Uygulaması

Ofis, fabrika veya kurum girişlerinde ziyaretçi bilgilerini kayıt altına almak hem güvenlik hem de raporlama açısından çok önemlidir.
Eskiden bu kayıtlar kağıt üzerinde tutulurken, artık PowerApps + SharePoint + Power Automate üçlüsü ile tamamen dijital, hızlı ve raporlanabilir bir sistem kurmak mümkün.

Bu yazıda, PowerApps üzerinden giriş yapılan, SharePoint listesinde saklanan ve Power Automate ile çıkış bildirimi gönderen basit ama etkili bir Ziyaretçi Kayıt Uygulaması yapacağız.

Powerapps'te ihtiyacımız olan 2 tane sayfa olacak;
1-Kayıt Ekranı
2-Düzenleme Ekranı

Temel konuları atlayarak ilerleyeceğiz bu yazı ileri seviye olacağı için sharepoint'ten nasıl yeni tablo oluşturacağız, Basit buton Eylemleri gibi kısımları önceki yazılarımı inceleyerek ulaşabilirsiniz. örnek olarak oluşturacağımız tablomuzun sütun başlıkları şu şekilde olacaktır;
  • ziyaretci_adi (Metin)
  • ziyaretci_fotografi (Resim)
  • iletisim_numarasi (Metin)
  • gelis_sebebi ( Çok satırlı Metin)
  • giris_saati (Tarih-Saat)
  • cikis_saati (Tarih-Saat)
  • görüsülen_kişi (Metin)
Bu altyapıyı oluşturduktan sonra Powerapps'te verimizi uygulamaya bağlayın.

 
Bir Düzenleme Formu ekleyerek dilediğin bir şekilde düzenleyin Varsayılan Modun "Yeni" olarak seçili olduğundan emin olun.
Ben Tasarım kısmını aşağıdaki şekilde ayarladım.



giris_saati kısımının tarih değerini Default kısmından Now() olarak ayarlayın.

Saat kısmı için;
Default değerini
Text(Hour(Now());"00")

Dakika kısmı için ise;
Text(Minute(Now());"00")

Not:Eğer Varsayılan Diliniz Türkçe ise ayrım için kullanılan seperatörünüz ";" , İngilizce ise "," olarak belirtiniz.

ayarladıktan sonra 2 adet buton ekleyin biri formu temizlemek diğeri ise kaydetmek için olacak.

Temizle Butonu OnSelect;
ResetForm(Form1);;

Kaydet Butonu OnSelect ise;
SubmitForm(Form1);;
ResetForm(Form1);;

Form1'in OnSuccess Değerine;
Notify("Kayıt Başarıyla Eklenmiştir.";NotificationType.Success)

OnFailure değerini ise;
Notify("Kayıt Ekleme Başarısız.";NotificationType.Error)

olarak belirtin.Bu kodları Form kaydının sorunsuz bir şekilde kayıt işlemi gerçekleştirdiği zaman ekranın üst kısmına kayıdın başarılı bir şekilde eklendiğini kullanıcıya gösteren ve kayıdın eklenmediğini bir bildirim mesajı vasıtasıyla kullanıcıya belirtmek amacıyla ekliyoruz.

Projemizin 3. ayağı olan ve Otomasyon işlemi için kullanacağımız Power Automate'e geçiş yaparak artık Flow oluşturarak ilerleyebiliriz.

Yeni bir Otomatik Bulut Akışı oluşturun.
ilk aşamamızda tetikleyici olarak Sharepoint'te bir öge veya dosya değiştirildiğinde Trigger'ını seçerek başlıyoruz.
Site adresi kısmını ve liste veya kitaplık adı kısmını oluşturduğunuz sharepoint listesinin bulunduğu konuma göre doldurun.


2. olarak bir Condition yani bir koşul ekleyeceğiz Bu koşulda belirtmemiz gereken nokta çıkış saati eğer eklendiyse bunun bilgisinin gerekli kişi veya kişilere mail yoluyla bildirilmesini sağlamak.
Bu yüzden koşul tetikleyicisine tıklayarak dinamik değerlerden cikis_saati'ni seçiyoruz ve orta değerimizi eşit değildir olarak belirledikten sonra en sağdaki değer kısmını boş bırakıyoruz.
Bu sayede sadece çıkış saati eklenen kayıdın e-posta bildirimini göndermiş olacağız.


"Doğru" kısmına Outlook'un E-posta gönder (V2) adlı eylemini seçip gerekli olan alanları doldurarak ilerleyin.
Gerekli ziyaretçi bilgileri paylaşmak adına Gövde kısmına Ziyaretçi bilgilerini otomatik olarak alıp arkaplanda ziyaretçiye göre değiştirmesi için yine belli metin aralarında dinamik içeri yani sharepoint'teki sütun başlıklarımızı iliştirerek sürecimizi tamamlayabiliriz.



Test Etmeden önce Powerapps'e dönüp Düzenleme Ekranı olarak adlandırdığımız sayfanın yapısını oluşturarak devam etmemiz gerekiyor çünkü kayıt işlemi esnasında çıkış saati kısmını doldurmuyoruz,
Çıkış yapılacak saatin kaydını eklememiz gereken bir arayüz oluşturmamız gerekiyor Form yapımızda.
O yüzden Yeni bir Form ekleyerek bu sefer Varsayılan Mod kısmını Düzenle olarak seçtikten sonra
Hiç bir değer değişikliği yapılmasına müsaade etmemek adına metin girişi alanlarımızın Görüntü Modunu Görünüm olarak değiştirmeliyiz.
 Galeri Ekleyerek Veritabanımızı seçiyoruz. Listelenen ögeleri Form'mumuzda tıkladığımızda görüntülemek için Form seçiliyken 

Item değerini:
Gallery1.Selected olarak oluşturuyoruz. Artık Galeri'den seçilen değer otomatik olarak form'umuzu güncelliyor.



Kayıt ekranındaki aynı işlemleri Formumuz için bu sayfaya özgün olarak düzenliyoruz. Bahsettiğim aynı işlemler kısmı OnSuccess ve OnFailure seçenekleri için.
Bir buton ekleyerek Güncelleme işlemi için aynı şekilde;
SubmitForm(Form2);;
olarak ekledikten sonra  cikis_saati kısmımızın tarih ve saat kısımları da kayıt sistemindeki kodlarla aynı olacak;

Tarih kısmı:
SelectedDate:
Now()

Saat kısmı için;
DefaultSelectedItems:
[Text(Hour(Now());"00")]

Dakika kısmı için ise;
DefaultSelectedItems:
[Text(Minute(Now());"00")]

şeklinde güncelleyin.

Artık eklediğimiz kayıtlar Düzenleme Ekranına düşecek ve Çıkış yapan ziyaretçilerin çıkış saatlerini düzenleme ekranından görüntülenecek şekilde bir yapı oluşturduk. Düzenleme Ekranından seçilen ziyaretçinin çıkış işlemi tamamlandıktan sonra butona bastığımızda bu bilgi  E-Posta olarak gerekli kişi/kişilere otomatik olarak gönderilecektir.





Bu tarz uygulamalar sadece ziyaretçi kaydıyla sınırlı kalmak zorunda değil. Aynı mantığı kullanarak;

  • Görev Takip Sistemleri
  • İzin Talep Uygulamaları
  • Stok Yönetim Araçları
  • Bakım Onarım Kayıtları
gibi birçok farklı senaryoya uyarlayabilirsiniz.

Benim amacım, size hem Power Platform’un gücünü göstermek hem de iş süreçlerinizi dijitalleştirmeniz için ilham vermek.
Eğer yazıda anlamadığınız bir kısım, takıldığınız bir adım veya “şu özelliği de eklesek nasıl olur?” diye düşündüğünüz bir fikir varsa, bunları mutlaka yorumlar kısmında paylaşın.
Sorularınızı detaylıca cevaplamaktan ve yeni yazılarımda bu konuları ele almaktan memnuniyet duyarım.

Unutmayın; öğrenmenin en iyi yolu, hemen uygulamaya başlamaktır. 😊
Şimdi sıra sizde: SharePoint listenizi oluşturun, PowerApps uygulamanızı tasarlayın ve Power Automate ile otomasyonu ekleyin. İlk denemeniz belki mükemmel olmayacak ama her adımda daha iyi bir sonuç elde edeceksiniz.

Bir sonraki yazımda görüşmek üzere! 🚀