Fakirler için cep telefonu üzerinden PowerApps uygulaması ile iş programı güncelleme 3. Kısım -Gecikme tablosu için Microsoft Flow uygulamasında onay prosedürü oluşturmak

Daha önceki yazımızda PowerApps uygulaması ile SharePoint üzerinde bir gecikme listesi oluşturmuştuk, ilgili yazıya alttaki linkten ulaşabilirsiniz,

http://planlamadanismanlik.com/fakirler-icin-cep-telefonu-uzerinden-powerapps-uygulamasi-ile-is-programi-guncelleme-2-kisim-powerapps-ile-sharepoint-uzerinden-gecikme-listesi-olusturma/

Bir sonraki adım olarak bu gecikmeyi raporlayan çalışanın amirinin onayına sunup onaylayıp onaylamamasına göre gecikmenin durumunu değiştireceğiz. Onay prosedürü için SharePoint ’in kendi akış yapısı olmasına rağmen daha esnek bir yapıya sahip olan Microsoft flow uygulamasını kullanıyoruz, bu uygulamanın üstünlüğü buradaki gibi bir bağımsız tablodan bilgi alıp koşulları ona göre oluşturabilmemiz , bu uygulamanın bir başka özelliği de birçok uygulama ile entegre olarak çalışabilmesi , mesela bir çizimi onaylarken aynı anda Facebook arkadaşınızı dürtebilirsiniz veya Oracle veri tabanında bir satırı değiştirebilirsiniz.

Benim kafamda tasarladığım onay prosedürü gecikmenin gecikmeyi bildiren çalışanın amirinin onayına sunulup, daha sonra da gecikmenin durumunun onaylanmış ya da reddedilmiş olarak etiketlenmesi.

Bunu için önce bir çalışan listesi oluşturuyoruz,

Ve bir önceki gecikmeler listemize 2 adet yeni sütun ekliyoruz

 

Microsoft Flow uygulamasında akış oluşturma

Uygulamanın internet adresine girip kullanıcı adımız ile giriş yaptıktan sonra SharePoint uygulamasını seçip listelerde yeni bir nesne yaratıldığındaki başlangıcı seçiyoruz, SharePoint sitemizi ve listemizi seçtiğimizde karşımızdaki ekran görüntüsü alttaki gibi oluyor,

Yeni bir adım ekliyoruz,

 

Bu adımda yaptığımız işlem gecikmeyi bildiren çalışanla aynı mail adresine sahip çalışanları listelemek, burada filtre sorgusunu yazarken ayırma işaretlerini koymayı unutmayın yoksa saatlerce hatayı bulmaya çalışırsınız.

Bu adımda bir önceki sorguda ortaya çıkan her satırın amirini bulup onun satırını buluyoruz,

 

Bir sonraki adımda her amir için bir onay prosedürü yaratıyoruz,

Ve son adımda da eğer gecikme onaylandı ise gecikmeyi yaratana bir mail atıp bildiriyoruz ve gecikmenin durumunu onaylandı olarak değiştiriyoruz, eğer reddedildiyse gene oluşturan çalışana mail ile bildirip gecikmenin durumunu reddedildi diye güncelliyoruz.

Akışımızın son hali aşağıdaki gibi oldu,

Burada biz bu çalışmayı çalışanlar üzerinden yaptık fakat aynı mantıkla bir yüklenici ve iş verenin o yükleniciden sorumlu çalışanı arasında da bu onay sürecini yönetebilirdik.

 

Fakirler için cep telefonu üzerinden PowerApps uygulaması ile iş programı güncelleme 2. Kısım -PowerApps ile SharePoint üzerinden gecikme listesi oluşturma

Serinin ilk yazısında PowerApps uygulamasında Excelden nasıl data alacağımızı, bu tablo ile nasıl koleksiyon ve formlar oluşturacağımızı anlatmıştık,

İlgili yazımız için linkimiz,

http://planlamadanismanlik.com/fakirler-icin-cep-telefonu-uzerinden-is-programi-guncelleme/

Şimdi 2. Kısımda PowerApps uygulaması ile nasıl SharePoint’te bir tablo güncelleyeceğimizi anlatacağız, burada bizim örneğimiz aktivelere bağlı gecikme tablosu olacak. Gecikme tablosunun önemi, bir gecikme oluştuktan yıllar sonra bu geçikme ile alakalı analiz yapmak çok zorlu bir süreçtir, bu sürecin önüne geçebilmek için gecikme sırasında herkesin görebileceği bir ortama gecikmelerin raporlanabilmesi sonrasında gecikme analizlerinin sağlıklı yapılabilmesi için hayati bir öneme sahip. Ben iş veren tarafında çalışırken sözleşmelere yada proje kontrol şartnamelerine “oluşan gecikmeler en fazla 15 gün içinde bildirilmeli ve bir sonraki aylık rapor içerisinde gecikme analiz yapılmalıdır” diye bir madde koydururdum , bence yüklenici tarafı da benzer bir kuralı şirket içinde uygulamalı yoksa ileriki zamanlarda başı ağrıyabiliyor.

SharePoint’te tablo oluşturma

İlk aşama olarak SharePoint’te bir tablo hazırlamamız gerekiyor, daha önceden oluşturduğumuz bir SharePoint sitesinde sayfalar kısmından yeni liste ekliyoruz, ismini gecikmeler olarak değiştiriyoruz ve aklımızdaki sütunları ekliyoruz

Yukarıda gördüğünüz sütunları ekledikten sonra artık PowerApps uygulamasına geçebiliriz.

PowerApps ile gecikme formu oluşturma

İlk önce bir form ara yüzü oluşturmamız gerekiyor, bir önceki yazımızda mevcut bir veri kaynağından nasıl form oluşturacağımızı anlatmıştık, bu örneğimizde de aynı yöntemle form oluşturmak için veri kaynağı olarak SharePoint listemizi seçiyoruz ve formumuz oluşuyor,

bir önceki yazımızda olduğu gibi formumuzu düzenliyoruz ve formumuzun son hali yandaki fotoğraf gibi oluyor, dikkat ederseniz aktivite numarası ve açıklaması kısmını değiştirilemez olarak dizayn ettim nedeni ise bu değerleri bir önceki formdan alacak olmamız, başlangıç ve bitiş tarihine ön tanım olarak bugünü tanımladım fakat geçmiş tarihli bir gecikmenin de raporlanabilmesi için bu tarihleri düzenlenebilir olarak ayarladım. Ayrıca gerekli olabilir diye bir gecikmeye bir ek dosya ekleme seçeneği koydum

 

Şimdi bir önceki yazımızda yaptığımız form ara yüzüne dönüyoruz ve bu forma 1 adet tuş koyuyoruz

Aktiviteyi güncellerken bir gecikme varsa bu tuş sayesinde gecikme formu ekranına ulaşabileceğiz, bunu yapabilmek için bu tuşun on select alanına formül olarak

NewForm(EditForm2);Navigate(Screen1, ScreenTransition.Cover);Set(act,ThisItem.TASK_CODE);Set(actname,ThisItem.TASK_NAME)

Formülünü yazıyoruz, bu fonksiyon öncelikle formumuzu açıyor sonrada 2 tane değişken tanımlıyor bu değişkenler diğer formumuzda aktivite ve aktivite ismi alanlarının ön tanımlı değerleri olacak,

bunun için diğer formu açıp ilgili alanları bu değişken isimleri ile tanımlıyoruz formumuzu denediğimizde önümüze gelen ekranın son hali yandaki görüntü şeklinde oluyor.

 

 

 

 

 

SharePoint listemize döndüğümüzde bu gecikmenin artık listemizde olduğunu görebiliyoruz.

Artık elimizde herkesin erişebileceği ve gecikmelerin listelendiği bir listemiz var fakat bir listemizin olması bu gecikmelerin gerçekten bir gecikme olduğunu kanıtlamıyor , yetkili birisinin bu gecikmeleri onaylaması gerekiyor .Bir sonraki yazım  bu gecikmeyi nasıl onaya sunacağımızı açıklayan bir yazı olacak.

 

Fakirler için cep telefonu üzerinden PowerApps uygulaması ile iş programı güncelleme

Bir süredir pahalı uygulamalara alternatif yöntemleri anlatmayı planladığım fakirler için serisinin ilk yazınını yazmaya karar verdim, ilk yazımız Microsoft’un PowerApps uygulaması ile cep telefonu üzerinden is programı aktivitelerinin yüzde tamamlanma, başlangıç günü, kalan sure ve beklenene bitiş bilgilerini güncelleme olacak. Proje yönetiminde gerçekleşme bilgilerini günlük olarak sahadan toplamamak can sıkıcı olabiliyor. Aktivitenin sorumlusunun gelip bilgisayar başına oturup güncelleme maili atmasındansa , ki bu bile çok ütopik , sahadayken cep telefonu ile o gün uğraştığı aktivitelerin güncellemesini yapmak çok daha kullanışlı olacaktır  , zaten Oracle firmasının da bunu başarabilmek için telefondan primavera programını güncelleyebileceğimiz uygulamaları var fakat bu uygulamalar  için bir sunucu kurmalı ve birçok kullanıcı lisansı almanız gerekiyor, bunun yerine Primavera’nın sadece stand alone kullanıldığı bir projede Microsoft PowerApps uygulaması ile bu güncellemeleri bir Excel dosyası üzerine alabiliyoruz.MS PowerApps Microsoft’un Office 365 business ve enterprise planları dahilinde sunduğu  cep telefonunda ve bilgisayarda kullanabileceğimiz uygulamaları hızlı bir şekilde oluşturabileceğiniz bir platform.

Bu yazıdaki senaryomuzda primavera server kurmak istemeyen, ama eğer güncellemeleri düzgün almazsa ileride hukuki bir durumda başına bela alacağının farkında olan fakir ama tüm çalışanlarına en azında lisanslı başlangıç Office 365 paketini sağlayabilecek bir firma olduğunu farz ediyoruz.

Öncelikle bu benim ilk PowerApps uygulamam o yüzden benim uyguladığımdan daha verimli uygulamalar olabilir zamanla bu uygulamayı geliştirmeyi planlıyorum, ilk olarak her iş programını güncellediğimizde bilgileri aktaracağımız ve kullanıcılar tarafından güncellenecek bir tablo oluşturmamız gerekiyor, bu tabloyu daha önceki yazımda bahsettiğim proje üzerinden yapmayı planlıyorum,

İlgili yazı için

http://planlamadanismanlik.com/alternatif-bir-spi-analizi/

Linkine tıklayabilirsiniz

Önceki yazımızda OBDC üzerinden nasıl güncel bilgileri excelde power query ile istediğimiz son formata dönüştürebileceğimiz anlatmıştık, burada benzer şekilde sadece bitmemiş aktivitelerin filtrelendiği son tablomuzu oluşturuyoruz, o projede çok az aktivite olduğu ve düzgün bir WBS yapısı olmadığı için bu toplaya bazı farazi aktiviteler ve WBS adlandırmaları (WBS burada hesaplanmış bir alan ve WBS’in 2. Ve 3. Seviyelerinin birleştirilmiş bir metni olacak) ekliyorum,

Tabloda görebildiğiniz gibi temel bilgiler, güncelleyeceğimiz alanların yanısıra edited by ve data date kolonları ekliyoruz, böylece o aktivitenin ne zaman ve kim tarafından güncellendiğini görebileceğiz.

Bu dosyamızı OneDrive bulut alanı üzerinde bir klasöre kaydediyoruz böylece PowerApps bu tabloya erişebiliyor.

PowerApps web sayfasına girip start from data özelliğini seçip uygulamayı yapmaya başlıyoruz,

Data kaynağı olarak OneDrive seçip, kaydettiğimiz dosyayı bulup içinden tablomuzu seçiyoruz, benim yarattığım tablonun ismi Task_update ve ben onu seçiyorum, bundan sonra benim veri kaynağımın ismi Task_update olarak geçecek ve benim excelde yaptığım her değişikliği PowerApps otomatik olarak güncelleyecek. Bu noktada PowerApps otomatik olarak bir şablon hazırlıyor aslında bu şablonda bence baya kullanılır olmasına rağmen bazı  değişikliklerle bunu daha etkili bir hale getireceğiz,

PowerApps ’in oluşturduğu şablon yandaki fotoğrafta gözüktüğü gibi oluştu. İlk iş olarak bize göstermesini istediğimiz bilgileri göremiyoruz benim görmek isteğim ise bilgiler WBS, aktivite ID, aktivite ismi ve fiziksel tamamlanma yüzdesi, bu yüzden sol taraftaki browsegallery galerisini seçip sağ taraftaki properties özelliğine basıyorum

ve burada layoutu 3 adet bilgiyi gösteren layout ile değiştirip alanları iseyandaki fotoğrafta görüldüğü gibi ayarlıyoruz, eksik olan alanımız WBS i özellikle ayrı bir adım olarak göstereceğim ki, buraya bir alan eklememiz gerektiğinde ne yapılması gerektiğini anlatabileyim

Sol tarafta mevcut galeriyi seçip insert label seçiyoruz, bu WBS olduğu için bunun daha büyük ve en başta gözüken bir alan olmasını istiyorum ve labellerı ona göre organize ediyorum ve advanced alanında data – text kısmını kısmındaki formülü

ThisItem.WBS

Olarak değiştiriyorum uygulamamızın son hali yandaki gibi oldu

Gördüğümüz gibi tüm aktiviteler sıralanıyor , benim istediğim ise uygulamanın sadece kullanıcının , devam eden veya 15 gün içinde başlaması planlan aktivitelerini sıralaması , eğer bunların haricinde bir aktivitenin güncellenmesi gerekiyorsa , mesela veli hasta  ve aktivitelerini sahada ali yapıyor ve aktiviteleri alinin güncellemesi lazım(bu arada herkes aliyi eşek bulmuş sömürüyor, detaylar için üstte linkini verdiğim yazıya bakabilirsiniz),search alanına ilgili aktivitenin id, tanımının veya WBS inin bir kısmını yazarsa altta listelenmesini istiyorum. Ayrıca karışıklık olmaması için bu aktivitelerin WBS ve işin başlama sırasına göre sıralanmasını istiyorum, bunu için galerinin items kısmına bunu tanımlamamız gerekiyor ve bunun içinde items kısmını açıp

SortByColumns(If(

IsBlank(TextSearchBox1.Text),

Filter(

task_update,

user_mail = User().Email,

RESTART_DATE < Today() + 15

),

Search(

task_update,

TextSearchBox1.Text,

"TASK_NAME"

)

),"WBS","RESTART_DATE")

Formülü yazmamız gerekiyor.

Şu an itibariyle listelemem benim istediğim şekle çok yaklaştı son bir adım olarak yüzdenin önünde bir yüzde işareti olmasını istiyorum bunun içinde Body2 alanını seçip

"% "&ThisItem.PHYS_COMPLETE_PCT

Formülünü yazıyorum.

PowerApps otomatik oluşturduğu uygulama önce aktivite detayını verip sonra güncelleme üzerine kurulmuş bana bu zaman kaybı olarak geldiğinden dolayı detail screen ara yüzünü silip aktivite de bulunan ok tıklandığında direkt olarak edit screen e geçmesini istiyorum bu yüzden nextarrow3 objesini seçip Onselect alanına

EditForm(EditForm1);Navigate(EditScreen1, ScreenTransition.None)

Formülünü yazıyorum, artık editscreen ara yüzüne geçebiliriz, bu ara yüz temel olarak bir form ve 2 düğmeden oluşuyor genel görüntüsü

yanda görüldüğü gibi oluşturuldu ve bizim istediğimiz görüntü tam olarak değil, editform1 formunu seçip properties/fields kısmında görmek ve güncellemek istediğimiz alanları ve sıralamasını seçiyoruz. Şimdi bazı özellikleri özelleştirmemiz gerekecek, bu alanların hepsi birere datacard olarak geçiyor sol tarafta formun altında her alan için bir datacard var ve datacardın altında label, text gibi alanlar var ve tüm bu alanları özelleştirebiliyoruz.

 

Mesela WBS datacartının altında 3 adet text ve 1 adet label alanı var ben WBS’i büyük harfle göstermesini istediğim için DataCardKey20 textini seçip DATA/Text alanını “WBS” olarak değiştiriyorum, ayrıca kimseni WBS veya aktivite kodu gibi alanları değiştirilmesini istemediğim için bu alanları sadece görülebilir yapmak istiyorum, WBS için DataCardValue16 alanını seçip Advanced / Design/DisplayMde alanını seçip

DisplayMode.View

Formülünü yazıyorum, bu tür alanlar kitlenmiş olabiliyor değiştirmek için advanced kısmına gelip en üstte gözüken kilit tuşuna basmanınız gerekiyor,

Bu işlemleri data date, edited by, aktivite adı ve id içinde tekrarlıyoruz, data date ve edited by alanlarının için formla beraber otomatik olarak oluşmasını istiyorum bu yüzden bu alanların DATA/ Default özelliklerini sırasıyla

Today()

User().Email

Olarak değiştiriyorum.

Başlangıç ve tahmini bitiş zamanlarında benim istediğim başlangıç için saat 8:00 bitiş içinde 17:00 gösterilmesi, iş programında tüm takvimleri buna göre ayarlayıp başlangıç ve bitiş saatlerini sabitliyoruz, bu yüzden her iki alanda saatleri sabitleyip görünmez yapıyoruz.

Formumuzun son hali yanda gördüğümüz gibi oldu, daha önceki deneyimlerimden insanların bu tip bir formu bile doldururken girebileceği mantıksız dataların haddi hesabı yok , o yüzden toplamda sadece 4 alan doldurulacak olsa da hataları önlemek için bazı önlemler alıyoruz , öncelikle başlangıç tarihi olarak ileri bir günün seçilmesini engellememiz lazım o yüzden bu talihin altındaki error mesajı text ini buluyoruz , burada ErrorMessage1 olarak geçiyor ve text kısmına "Başlangıç tarihi bugünden büyük olamaz" yazıyoruz , visible kısmına da

If(DateValue1.SelectedDate>Today(),true,false)

Formülünü ekliyoruz böylece ileri bir tarih seçilirse uyarı mesajı ortaya çıkacak, aynı mesajları diğer alanlar içinde uyguluyoruz

Eğer formda bir hata varsa gönderme düğmesini görünmez yapmak için

IconAccept1.visible değerini

If(ErrorMessage1.Visible=true Or ErrorMessage5.Visible=true Or ErrorMessage7.Visible=true  ,false,true)

Yapıyoruz

Formumuzun son hali yanda gördüğümüz gibi oldu ve artık hatalı bir bilginin gönderilmesini önlemiş olduk. Gereksiz düğme ve ara yüzleri de sildikten sonra çalışmamızı yayınlayabiliriz, Artık organizasyon içindeki izni olan tüm çalışanlar cep telefonuna PowerApps uygulamasını indirip güncellemeleri yapabilir.

Güncelleme dışında PowerApps uygulamasının inşaat sektöründe benim aklıma gelen kullanımları, çeşitli kontrol ve test formlarının doldurulması (uygunsuzluk formu, kalite kontrol formları vs.), kullanana özel raporların oluşturulması ve bazı taleplerin oluşturulması (malzeme istek formu gibi)

Bu uygulamayı geliştirmeyi düşünüyorum, kafamdaki eklemeler

  • Aktivite bazında eğer yüklenici sorumluluğunda olmayan bir gecikme varsa bunu raporlayabileceğimiz bir ekran
  • Düzgün bir puantaj sistemi için Aktiviteye bağlı çalışanların ve ekipmanları raporlanması için bir ekran
  • Günlük raporun tamamen bu ekran ürerinden tamamlanması
  • Aktivite bazlı Malzeme talebi, beton slump testi gibi tüm verilerin girilebilmesi

 

Tabi önce PowerApps uygulamasını detaylı olarak öğrenmem gerekiyor.