Power Automate kullanarak Microsoft Teams mesajı ile dynamics 365 te bir kaydı güncellemek
Herkese merhaba,
Çok sık yazamıyor olsamda, Projelerimi geliştirirken ihtiyaç duyulan ya da müşteri talepleri doğrultusunda çok sık geliştirilmeyen ve ya hakkında çok fazla bilgi bulunmayan konular denk geldiğinde, mümkün olduğu kadar konuyu bir kenara kaydediyor ve ilk fırsatta konuyla ilgili bir yazı hazırlayarak, sizleri de bilgilendirmeye çalışıyorum.
Yine bu şekilde denk geldiğim çok sık karşılaşılmayan ancak müşteri talebi doğrultusunda implemente ettiğim bir güzelliği sizlerle paylaşmak istedim.
Bu yazımızın konusu, Dynamics 365 üzerinde var olan görevlerin süresi geçtiği halde kapatılmamış, açık kalmış olanları Microsoft Teams aracılığı ile, Kullanıcı hiç dynamics 365 ortamına girmeden Flow bot aracılığı ile kullanıcıya bildirim göndererek, doğrudan göreve ait açıklamayı alıp taskı kapatmayı ya da bekletmeyi nasıl yapabileceğini göstereceğiz.
Şimdi lafı çok uzatmadan ihtiyaçlarımızı alt başlıklar haline getirerek konuya girelim isterseniz.
İlk önceliğimiz, Dynamics 365 üzerinde Açık bir Task
Aşağıdaki ekran görüntüsünde, Dynamics üzerinde klasik bir açık görev kaydı görüyoruz. Hikayemiz ise, şu şekilde olsun;
Demo Müşteri isimli müşteriye iletilen teklif hakkında detaylı görüşme talep etmesi için en geç 21 Şubat tarihinde bu talebin tamamlanmış olması gereken, CRM Admin isimli kullanıcıya bir görev ataması yapılmış olsun.
Bu hikayemizde, Son tarihi geçmiş olan ve hala açık durumda olan görevleri tamamlandı olarak işaretlemeyi unutup unutmadığını soracağız.
Kullanıcı gerçekten görevi tamamlamış ama görevi kapatmayı unutmuş ise, Microsoft Teams üzerinden hemen tamamlandı olarak görevi işaretleyebilir ve kapatmak için Dynamics 365 ortamına girme zahmetinden kurtulur.
Bir sonraki adımımız, Microsoft Automate ile süreci tasarlama
Ben örneğimde hikayemize uygun olarak son tarihi geçmiş ve açık olan görevleri sorgulayacağım. Sizin hikayenizde bu yapı biraz daha farklı kurgulanabilir elbette.
Öncelikle, Günde 1 kez çalışan bir Automate akışı oluşturalım.
Bunun için https://make.powerapps.com/ adresine giriş yapıyoruz. Ardından sol taraftaki menüden Akışlar’ı seçiyoruz.
Ardından, üst menüde görünen Yeni akış menüsünü açıyoruz ve Zamanlanmış Bulut Akışı’nı seçiyoruz.
Karşımıza açılan ekranda, Akış adını, ilk çalıştırılma tarih ve saatini, ve ne kadar sürede bir çalıştırılacağını seçiyoruz ve oluştur butonuna tıklıyoruz.
Artık hazırız. Akışımız oluşturuldu ve başlangıç adımı hazırlandı. Şimdi CDS/Dataverse üzerinden FetchXML kullanarak yukarıda bahsettiğimiz hikayeye uygun bir sorgu çalıştıracağız.
Bunun için öncelikle Dynamics 365 Ortamına bağlanarak Gelişmiş Bul ekranından görevleri istediğimiz gibi filtreliyoruz.
Oluşturduğumuz filtreden sonra, ilgili FetchXML’i Karşıdan yükle diyerek sorgumuzu indiriyoruz. İndirdiğimiz XML dosyasını notepad aracılığı ile açıyor ve içeriğini kopyalıyoruz.
Şimdi sıra geldi, CDS/Dataverse ile sorgumuzu çalıştırmaya.
Tekrar PowerAutomate ekranında dönüyoruz ve Yeni Adım butonuna tıklıyoruz.
Karşımıza açılan pencere üzerinde öncelikle aşağıdaki resimde görüldüğü üzere, Common Data Service seçeneğini seçiyoruz ardından List Rows seçeneğini seçiyoruz.
Ardından Öncelikle sorgulanacak tablo ve FetchXml Sorgusu alanlarını dolduruyoruz
Şimdi aldığımız verileri tek tek gezmemiz ve her birisi için Microsoft Teams’e bildirim/mesaj gönderme vakti geldi.
Bunun için tekrar yeni adım diyoruz ve kontrol işlemini seçiyoruz.
Ardından, Her Birine uygula seçeneğini seçerek bir döngü oluşturuyoruz.
Açılan döngü ekranında, ilk parametre olarak fetchXML sorgumuz ile gelen veriyi ekleyerek döngümüzün içeriğine geçiyoruz.
Bunun için Dinamik içerik alanındaki, value seçeneğini seçiyoruz.
Value seçtikten sonra, döngü içerisindeki Eylem ekle butonuna tıklıyoruz ve İlgili görevin sahibine ait mail adresini sorgulamak için tekrar Common data service işlemi seçiyoruz ve ardından bu kez, Get a Row seçeneğini seçiyoruz.
Şimdi sıra geldi ilgili görevin sahibine ait email adresini sorgulamaya.
Öncelikle tablo adı kısmına kullanıcılar diyoruz, ardından Öğe Kimliği alanına ise, Gelne sorgu içerisindeki Sahibi(Değer) seçeneğini dinamik içerik altından ekliyoruz.
Buraya kadar herşey tamam. Sıra geldi elimizdeki veriler ile Microsoft teams üzerinde ilgili kullanıcıya mesaj göndermeye.
Bunun için tekrar Eylem ekle butonuna tıklıyoruz ve artından Teams İşlemini seçiyoruz.
Microsoft Teams Konnektörü üzerindeki eylemlerden, Flow botu olarak bir kullanıcıya seçenek seçimleri gönderin eylemini seçiyoruz.
Ardından, seçeneklerimizi ve alıcı bilgisini giriyoruz.
İleti, başlık, özet gibi alanları dilediğiniz gibi düzenleyebilirsiniz. Ben örnek olarak aşağıdaki ekran görüntüsünde görüldüğü gibi düzenledim.
Buraya kadar herşey tamam gibi görünüyor. Şimdi uygulamamızın bu kısmını tekrar bir test edelim.
Uygulamamızı öncelikle kaydediyor ve ardından tekrar test butonuna tıklıyoruz ve el ile çalıştır diyerek çalıştırıyoruz.
Teams e bir bildirim geliyor ve Mutlu oluyoruz ?
Mesajımız teams üzerine geldi.
Şimdi sırada, tamamlandı olarak kapat ve üzerinde çalışıyorum butonlarına tıklandığında yapılacak olan işlemi Dynamcis 365 üzerinde güncellemeye.
Bunun için tekrar Akışımıza dönüyoruz ve Teams üzerine seçimleri gönderdiğimiz eylemin ardına, tekrar Eylem ekle diyoruz, Ve koşul eylemini seçiyoruz. Burada kullanıcının seçtiği ve tıkladığı butonu yakalayacağız, ve eğer tamamlandı olarak kapat butonuna tıklamış ise, ilgili görev kaydımızı güncelleyeceğiz.
Koşul altındaki bir deger seçin alanına, Dinamik içerik bölümünden, Teams’ten gelen cevabı, yani selectedOption seçeneğini seçiyoruz. Value olarak ise, Seçenekte yazdıgımız texti yani “Tamamlandı Olarak Kapat’ yazısını doğrudan yazıyoruz. Burda dikkat edilmesi gereken nokta ise, büyük küçük harf duyarlılığı.
Aman dikkat edin.
Şimdi kullanıcı karşısına cıkan mesajda, tamamlandı olarak kapat seçeneğini seçerse, bir ekran açılıyor ve açıklama girebileceği bir text alanla karşılaşıyor.
Burada kullanıcı bir mesaj girdiyse, mesajı girdiği zamanı ve mesajını ilgili görevin açıklamasına ekleyelim ve görevi tamamlandı olarak kapatalım.
Bu işlem için, koşuldaki evet ise bölümündeki eylem ekle butonuna tıklıyoruz ve Common Data Service işlemi altından, Update a Row eylemini seçiyoruz.
Tablo adını görevler, Öğe kimliğini ise, dinamik içerik altından Görevin Benzersiz Tanıtıcısını seçiyoruz.
Şimdi kullanıcının girdiği mesajı, var olan mesajı silmeden görevdeki açıklama alanına eklemeye geldi sıra.
Bunun için, öncelikle açıklama alanına geliyoruz ve açılan popup üzerinden ifade bölümüne geliyoruz.
Buraya,
concat(items('foreach')?['description'],' ',outputs('send_msg')?['body/responseTime'],' ',outputs('send_msg')?['body/comments'])
Yazıyoruz. Bu komut, ilgili görevin açıklamasını alıyor, bir boşluk bıraktıktan sonra, send_msg isimli, teams üzerine mesajı gonderdiğimiz eylemden gelen sonucun Response Time değerini alıyor ve yine bir boşluktan sonra ekrana kullanıcının girdiği açıklamayı alıyor ve tek bir string olarak bize geri veriyor.
Bizde bu veriyi ilgili görevin açıklama alanına veriyoruz ve görev üzerindeki açıklama alanına kullanıcının yeni girdiği mesajı ekliyoruz. Son olarak ise, Update a row altındaki seçeneklerden etkinlik durumunu da tamamlandı olarak değiştiriyoruz.
İşlemlerimiz tamamlandı gibi görünüyor.
Ekranımızın son hali aşağıdaki gibi olmalıdır.
Şimdi akışımızı kaydettiken sonra tekrar bir test edelim.
Tekrar teams üzerinde mesajımız geldi.
Şimdi bir açıklama girerek tamamlandı olarak kapat diyelim.
Gönder butonuna tıkladıktan sonra, geri gönderilen response verilerini de görebiliyoruz.
Şimdi Dynamics üzerinde görevi kontrol etmeye geldi sıra.
Ve mutlu son.
Görev başarılı bir şekilde kapatılmış, açıklama verileri güncellenmiş şekilde karşımızda.
Bu örnekte aslında sizlere, teams üzerinde Flow Bot aracılığı ile kullanıcıya bir soru sorup, cevabını almak ve cevaba göre dynamics üzerinde bir kaydı güncellemeyi gösterdik.
Siz kurumunuzda yapacağınız bir anket, belirli bir takıma yönelteceğiniz bir tercih veya benzer yapıda hatırlatıcılar hazırlayıp, kullanıcının Dynamics ortamına girmeden hızlı ve kolay bir şekilde iş süreçlerini yönetebilmesini sağlayabilirsiniz.
Umarım yazım sizlere faydalı olmuştur.
Bir sonraki yazımızda görüşmek üzere,
Hoşçakalın, sağlıkla kalın, Bizimle kalın..