Power Automate: Çalıştırma Geçmişini Okuma ve Hataları Bulma
Power Automate'te çalıştırma geçmişini doğru okuma ve başarısız bir çalıştırmanın nedenini bulma yöntemi.
Power Automate'te Try-Catch deseni: Scope'lar ve Configure run after ile hataları kontrollü biçimde yakalayın, günlüğe kaydedin ve bildirin.
Bir akışın ortasında yaşanan bir çökme can sıkıcıdır, kimsenin fark etmediği bir çökme ise tehlikelidir. Power Automate, klasik bir programlama dili gibi yerleşik bir Try-Catch yapısına sahip değildir, ancak scope'ları Configure run after ayarıyla birleştirerek tam olarak bu deseni kendin oluşturabilirsin. Sonuçta ortaya, bir hata durumunda basitçe iptal olmayan, kontrollü şekilde tepki veren, kaydeden ve şüphe durumunda haber veren bir akış çıkar.
Bu makalede sana adım adım Try, Catch ve Finally scope'larını nasıl oluşturacağını, bunlar için çalıştırma sonrası koşullarını nasıl doğru ayarlayacağını ve hata durumunda gerçek hata mesajına nasıl ulaşacağını gösteriyoruz. Bunun temelini Microsoft'un resmi belgeleri, daha doğrusu sağlam hata yönetimi kılavuzu ve bulut akışlarındaki scope'lara genel bakış oluşturuyor.
Programlama dillerinde bir istisnayı Try-Catch bloğuyla yakalarsın: kod Try kısmında çalışır, bir hata otomatik olarak Catch kısmına geçer. Power Automate farklı çalışır: her eylemin bir çalıştırma sonrası koşulu vardır ve bu, varsayılan olarak "başarılı" değerine ayarlıdır. Önceki bir eylem başarısız olursa, sonraki eylem basitçe atlanır ve sen başka bir ayar yapmadığın sürece tüm akış iptal olur.
Try-Catch deseni tam olarak burada devreye girer: asıl mantığını bir scope içinde gruplarsın, hata yönetimi için ikinci bir scope eklersin ve bunun çalıştırma sonrası koşulunu yalnızca ilk scope'ta bir hata oluştuğunda çalışacak şekilde ayarlarsın. Böylece kod yerine arayüz üzerinden yapılandırılmış olsa da yapısal olarak bir Try-Catch ile aynı davranışı elde edersin.
Eksiksiz bir hata yönetimi deseni için art arda üç scope oluşturursun:
Her scope'u Eylem ekle üzerinden ve "Scope" aramasıyla eklersin; bu, Scope oluşturma ve kullanma kılavuzunda ayrıntılı olarak açıklanmıştır. Scope'lara anlamlı adlar vermeye dikkat et; "Try", "Catch" ve "Finally" tek bakışta anlaşılır olur ve akışı daha sonra devralacak meslektaşların için de okunabilir kılar.
Catch scope'u için çalıştırma sonrası koşulunu şu şekilde ayarlarsın:
Bu sayede Catch scope'u yalnızca Try scope'u düzgün tamamlanmadığında çalışır. Finally scope'u için de aynı şekilde ilerlersin, ancak orada dört onay kutusunun tamamını, yani "başarılı" seçeneğini de işaretlersin. Böylece bu scope, Try scope'unun nasıl sonuçlandığından bağımsız olarak her durumda çalışır. Önemli: en az bir onay kutusu her zaman aktif kalmalıdır, koşul tamamen boş olarak kaydedilemez.
Yalnızca bir şeylerin yanlış gittiğini bilen ama neyin yanlış gittiğini bilmeyen bir Catch scope'u, hata ayıklamada sana pek yardımcı olmaz. Somut hata mesajına ulaşmak için Catch scope'unda Diziyi filtrele eylemini, önceki eylemlerin durumunu ve çıktısını döndüren result() ifade işleviyle birlikte kullanırsın. Bu filtrelenmiş yanıttan hata kodunu ve hata metnini okuyup bunları örneğin bir HTML tablosu oluştur eylemine koyarsın; bunu e-postayla gönderebilir veya SharePoint ya da Dataverse'teki bir hata günlüğü listesinde saklayabilirsin.
Ayrıca workflow() işlevi, ortam ve akış kimliği gibi mevcut akış çalıştırmasına ait meta verileri sağlar. Oluştur eylemiyle birleştirerek buradan başarısız çalıştırmaya doğrudan giden bir bağlantı oluşturursun ve bunu bildirime eklersin. Böylece posta kutusuna yalnızca "bir hata oluştu" bilgisi değil, doğrudan sorunu çözebileceğin yere giden yol da ulaşır.
Bu deseni daha büyük, üretimdeki bir akışa güvenilir şekilde eklemek istiyorsan veya sürecinde bir Catch scope'unun gerçekten nerede gerekli olduğundan emin değilsen, NordFlux'un Power Automate danışmanlığı sana bu konuda destek olur. Akışın ve verilerin üzerindeki tam kontrol sende kalır, biz yalnızca düzgün bir kurulum konusunda yardımcı oluruz.
Teknik olarak hayır, işlevsel olarak evet. Power Automate'te bir eylemin otomatik olarak bir hata yoluna atlamasını sağlayan yerleşik bir istisna kavramı yoktur. Ancak bir scope'un çalıştırma sonrası koşulu üzerinden aynı davranışı elde edersin: Catch scope'u, tıpkı bir istisnada catch bloğunun çalışması gibi, yalnızca Try scope'u başarısız olduğunda çalışır.
Hayır. Eylemlerini bir Try scope'unda topladığında, her eylemi ayrı ayrı güvence altına almak yerine, tüm scope için tek bir Configure run after ayarı yeterlidir. Bu, scope'ların eylem düzeyindeki birçok ayrı çalıştırma sonrası koşuluna kıyasla sağladığı pratik avantajlardan tam olarak biridir.
Bu durumda Try scope'u başarılı olsa bile Catch scope'u çalışır ki bu, bir hata yolunun amacına aykırıdır. Gerçek bir Catch scope'u için "başarılı" işaretini tutarlı biçimde kaldır ve yalnızca "başarısız oldu", "atlandı" ve "zaman aşımına uğradı" seçeneklerini etkinleştir.
Evet, ikisi birbirini iyi tamamlar. Eylem ayarlarındaki bir yeniden deneme ilkesi, önce geçici olarak başarısız olan bir eylemi, ideal olarak üstel olarak artan aralıklarla otomatik olarak yeniden çalıştırmayı dener. Eylem tüm yeniden denemelerden sonra da başarısız olursa, ancak o zaman Catch scope'un çalıştırma sonrası koşulu üzerinden devreye girer.
Etkilenen akış çalıştırmasını çalıştırma geçmişinde aç ve orada başarısız olan scope'u genişlet. Bir scope dışarıya yalnızca tek bir toplu durum bildirdiğinden, somut hata mesajını kırmızı işaretiyle birlikte ancak scope içindeki tek tek eylem düzeyinde görürsün.
NordFlux'un kurucusu. Webden ve SEO'dan grup ölçeğindeki otomasyona kadar yedi yıllık deneyim, bugün KOBİ'ler için pragmatik biçimde ve Alman veri egemenliğiyle.
Sertifikalar
Power Automate'te çalıştırma geçmişini doğru okuma ve başarısız bir çalıştırmanın nedenini bulma yöntemi.
Power Automate neden 429 hatası veriyor ve concurrency kontrolü ile batching kullanarak throttling nasıl hedefe yönelik olarak çözülür.
Configure run after ilk bakışta basit görünür, ancak pratikte birçok Try-Catch deseni finally bloğu veya hatanın doğru okunması gibi ayrıntılarda başarısız olur. NordFlux, beklenmedik arızalarda bile düzgün tepki veren sağlam bir hata yönetimini akışlarınıza entegre eder.