Microsoft Power Automate için bir yoklama tetikleyicisi kullanma

Yoklama tetikleyicisi temelde düzenli olarak hizmetinize çağrılar yaparak yeni verileri arayan bir olaydır. Yoklama tetikleyicilerin web kancalarından farkı, yoklama tetikleyicisinin yeni veri sağlanıp sağlanmadığını saptamak için bir olay başlatması oysa web kancasının hizmetten yapılan yeni veri gönderimine yanıt vermesidir. Akış yeni verilerin sağlandığını saptayınca, söz konusu verilerle eylem gerçekleştirebilirsiniz. Bu öğretici yeni verileri proaktif olarak almak için yoklama tetikleyicisinin nasıl kullanılacağını gösterir.

Ön koşullar

Yoklama tetikleyicileri nasıl çalışır?

Yoklama tetikleyicisi bir durum ayarlayarak başlar, sonra da bir zaman aralığında düzenli olarak güncelleştirmeleri denetler. Tetikleyici son durum güncelleştirmesinden sonraki tüm yeni veriler için istekte bulunur. Buna ek olarak tetikleyici istekler arasında durum bağlamını da korur.

Aşağıdaki örnek yoklama tetikleyicisinin yeni verileri nasıl aldığına ilişkin temel bir genel bakış sağlar.

Yoklama tetikleyicileri verileri nasıl alır?

  1. Akış çalışma zamanı tetikleyicide, bağlayıcıdaki API'ye bir ilk çağrı yapar.

  2. Ardından bağlayıcı arka uç hizmetini çağırır.

  3. Ardından arka uç hizmeti tüm geçerli verileri bağlayıcıya geri döndürür.

  4. Buna karşılık bağlayıcı bir 202 Kabul Edildi iletisi, yeniden deneme aralığı ve geçerli durumu içeren bir konum üst bilgisi döndürür. Yeniden deneme aralığı saniye cinsindendir. Bu ilk çağrı her zaman verilerin geçici durumunu oluşturmak için kullanılır.

  5. Yeniden deneme aralığı zaman aşımına uğradıktan sonra, akış çalışma zamanı konum üst bilgisini ve bu örnekte 1'e eşit olan geçerli durumu kullanarak bağlayıcıya başka bir çağrı yapar.

  6. Bu durum şimdi 1'e eşit olduğundan, bağlayıcı artık doğru veri kümesinin döndürülmesi için uygun filtrelemeyi yapacak olan doğru API'yi çağırmayı biliyor olur. Bu örnekte bağlayıcı bunu, oluşturma tarihinin belirli bir zaman damgasından büyük olduğunu belirten filtrelenmiş bir sorguya çevirir.

  7. Bu örnekte oluşturma tarihinden sonra yeni veri yoktur, dolayısıyla bağlayıcıya boş bir değer kümesi geri gönderilir.

  8. Bağlayıcı bir 202 Kabul Edildi iletisi, yeniden deneme aralığı ve durumun değişmediği bir konum üst bilgisi döndürür.

  9. Yeniden deneme aralığı bir kez daha zaman aşımına uğradıktan sonra, akış çalışma zamanı aynı konum üst bilgisini ve durumu kullanarak bağlayıcıya bir çağrı daha yapar.

  10. Bağlayıcı yine oluşturma tarihini kullanarak uygun filtrelemeyi yapar.

  11. Bu kez oluşturma tarihinden sonra yeni veriler sağlanmıştır, dolayısıyla arka uç tüm yeni verilerin değerlerini bağlayıcıya geri döndürür.

  12. Bağlayıcı da 200 Tamam iletisini, yeniden deneme aralığını, yeni durum değerini içeren konumu ve oluşturma tarihinden sonra sağlanan tüm yeni verilerin yer aldığı bir değerler dizisini döndürür. Bu noktada akış başlar.

Kullanıcı arabiriminden yoklama tetikleyicileri oluşturma

Bu bölümde Power Automate kullanıcı arabiriminde yoklama tetikleyicisi oluşturma işlemi gösterilir. Bu yordamda, başlangıç noktası olarak örnek TripPin hizmetini kullanacaksınız. TripPin hizmeti, kişilerin ve yaptıkları gezilerin listesini içeren çok basit bir REST API'dir.

TripPin hizmetini kullanmak için önce hizmete gereken URL'leri dinamik olarak oluşturmanız gerekir. Tarayıcınızın adres çubuğuna https://services.odata.org/TripPinRESTierService girin. Bu gösterim için gereken meta veriler döndürülür. Meta verileri daha sonra kullanmak üzere bir dosyaya kopyalayın ve kaydedin.

TripPin hizmetini ayarlamak ve yoklama tetikleyicisini oluşturmak için:

  1. Power Automate'te Veri > Özel bağlayıcılar sekmesini seçin.

  2. Özel bağlayıcılar bölmesinde Yeni özel bağlayıcı'yı ve sonra da Sıfırdan oluştur'u seçin.

  3. Özel bağlayıcı oluştur iletişim kutusunda özel bağlayıcınızın adını girin (bu örnekte Yoklama Testi kullanabilirsiniz) ve Devam'ı seçin.

  4. Genel sayfasında bir açıklama ve konak belirtin. Bu örnekte konak olarak TripPin meta verilerinde döndürülen services.odata.org URL'sini kullanacaksınız.

    Parametre Value
    Açıklama "TripPin, bir seyahat web sitesi örneğidir."
    ANABİLGİSAYAR "services.odata.org"

    Açıklama ve konak ekleme

  5. Güvenlik sayfasında kimlik doğrulaması türü olarak Kimlik doğrulaması yok'u seçin.

    Yoklama kimlik doğrulaması

  6. Tanım sayfasında, + yeni tetik'i seçin ve tetikleyicinizin açıklamasını doldurun. Bu örnekte kişinin gezi programına yeni bir gezi eklendiğinde başlatılan bir tetikleyici oluşturacaksınız.

    Yeni tetikleyici oluşturma

    Parametre Value
    Özet "Yeni gezi eklendiğinde tetiklenir"
    Açıklama "Yeni gezi eklendiğinde tetiklenir"
    İşlem Kimliği "OnNewTrip"
    Görünürlük "hiçbiri" (daha fazla bilgi için aşağıdaki listeye bakın)
    Tetikleyici türü "Yoklama"

    Bir akıştaki işlemler ve parametreler için Görünürlük özelliği aşağıdaki seçeneklere sahiptir:

    • hiçbiri: akışta normal görüntülenir
    • gelişmiş - Ek bir menünün altına gizlenir
    • dahili - kullanıcıdan gizlenir
    • önemli - Her zaman kullanıcıya ilk olarak gösterilir
  7. İstek alanı, eyleme yönelik HTTP isteğine göre bilgileri görüntüler. Örnekten aktar'ı seçin.

    Tanım sayfası - örnekten al

  8. Örnekten aktar bölmesinde yoklama tetikleyicisi için isteği tanımlayın. Fiil olarak GET seçin. Hizmet için gereken URL'leri dinamik olarak oluştururken aldığınız meta verilerdeki URL adresini Örnekten aktar bölmesinin URL alanına kopyalayın. Adresin arkasına /People('{Person}')/Trips?$filter=TripId gt 0&$orderby=TripId desc ekleyin. Örneğin:

    https://services.odata.org/TripPinRESTierService/(S(<service number>))/People('{Person}')/Trips?$filter=TripId gt 0&$orderby=TripId desc

    Not

    URL'de <service number> yerine meta verilerinizdeki gerçek numarayı kullandığınızdan emin olun.

    Bu URL örneğinde tek kişi için istek oluşturuyorsunuz ve {Person} kullanıcının akışta belirtebileceği bir çalışma zamanı değişkeni. Ardından, kullanıcının girdiği belirli kişiye ait gezileri almak istediğinizi belirtiyorsunuz.

    Ama gezilerin hepsini almak istemiyorsunuz; yalnızca son yoklama zamanından sonra yeni eklenen gezileri almak istiyorsunuz. $filter=TripId gt 0 ifadesi, daha önce yoklanan TripId değerlerinden daha büyük TripId değerleri olan gezileri döndürerek yeni gezileri alır. Burada kullanılan 0 sayısı her yoklama tetikleyicisi oluştuğunda otomatik olarak güncelleştirilir.

    Ayrıca, $orderby=TripId desc ifadesi TripId olarak döndürülen verilerin azalan düzende sıralandığını gösterir. Tetikleyici, azalan düzende sıralanmış olarak döndürülmesini gerektirir. Diğer bir deyişle, arka uç hizmeti tarafından döndürülen sonuçlar tetikleyici parametresinde ters sıralanmalı, yani en son parametre (bu örnekteki TripId gibi) veri dizisinde döndürülen ilk değer olmalıdır.

    Örnekten aktar menüsü

    Örnek verileri içeri aktarmak için İçeri Aktar düğmesini seçin. Şimdi istek alanında fiil, URL, yol ve sorgu parametreleri görüntülenir.

  9. İstek alanında $filter sorgu parametresini seçin ve sonra da Düzenle'yi seçerek Parametre iletişim kutusunu açın.

    Filtre parametresini düzenleme

  10. $filter için Parametre iletişim kutusunda Görünürlük seçimini dahili olarak ayarlayın. Bu parametre bağlayıcı tarafından yalnızca dahili olarak kullanılır ve bu da kullanıcının herhangi bir değişiklik yapmasını önler. Görünürlük ayarları hakkında daha fazla bilgi için bkz. x-ms-visibility OpenAPI uzantısı.

    İstek alanına dönmek için Geri'yi seçin.

    Filtre parametresini düzenleme

  11. İstek alanında $orderby sorgu parametresini seçin ve sonra da Düzenle'yi seçerek Parametre iletişim kutusunu açın.

  12. $orderby için Parametre iletişim kutusunda Gerekli mi? seçimini Evet olarak ve Görünürlük seçimini dahili olarak ayarlayın. Bu ayarlar, kullanıcının bu parametrede herhangi bir değişiklik yapmasını önler.

    Ayrıca Varsayılan değer kutusuna TripId desc değerini girin. Bu ayarlar sonuçların ters düzende sıralanmasını sağlar.

    Önceki alana dönmek için Geri'yi seçin.

    orderby parametresini düzenleme

  13. Yanıt alanı, eyleme yönelik HTTP yanıtına göre bilgileri görüntüler. Varsayılan yanıt ekle’yi seçin.

    Varsayılan yoklama yanıtı ekleme

  14. Yoklama tetikleyicisine yönelik yanıtı tanımlayın ve İçeri aktar’ı seçin. Yanıt gövdesi olarak aşağıda sağlanan örneği kullanın. Bu, yanıt için otomatik olarak bir şema oluşturur.

    Yoklama yanıtı gövdesi ekleme

    
    {
        "@odata.context":"https://services.odata.org/TripPinRESTierService/(S(<service number>))/$metadata#Collection(Microsoft.OData.Service.Sample.TrippinInMemory.Models.Trip)",
        "value":[
            {
                "TripId":2,
                "ShareId":"9ce142c3-5fd6-4a71-848e-220ebf1e9f3",
                "Name":"Honeymoon",
                "Budget":2650,
                "Description":"Happy honeymoon trip",
                "Tags":[
                    "Travel",
                    "honeymoon"
                ],
                "StartsAt":"2014-02-01T00:00:00Z",
                "EndsAt":"2014-02-04T00:00:00Z"
            },
            {
                "TripId":1,
                "ShareId":"f94e9116-8bdd-4dac-ab61-08438d0d9a71",
                "Name":"Trip in Beijing",
                "Budget":2000,
                "Description":"Trip from Shanghai to Beijing",
                "Tags":[
                    "Travel",
                    "Beijing"
                ],
                "StartsAt":"2014-02-01T00:00:00Z",
                "EndsAt":"2014-02-04T00:00:00Z"
            }
        ]
    }   
    

    Not

    URL'de <service number> yerine meta verilerinizdeki gerçek numarayı kullandığınızdan emin olun.

  15. Tetikleyici yapılandırması alanında TripPin'den durum değişikliğini izlemek için kullanılan parametreyi seçin. Bu örnekte $filter parametresi girilir.

    Bu örnekte, Seçilen sorgu parametresine geçirilecek değeri seçin alanında aşağıdaki ifadeyi kullanın:

    TripId gt @{triggerBody().value[0].TripId}

    Bu ifade tetikleyici her çalıştırıldığında en son sonuçları almak için kullanılır. Burada kullandığınız ifadede, TripId değeri ifadenin kalanı tarafından döndürülen değerden büyük olduğunda tetikleyici çalıştırılır. TripId değeri ifadenin kalanı tarafından döndürülen değerden büyük değilse, tetikleyici gerçekleşmez.

    Tetikleyici verileri içeren koleksiyonu seçin alanında @triggerBody().value öğesini seçin. Bu, arka uç hizmeti tarafından döndürülen tetikleyici verilerinin yer aldığı dizidir.

    Yoklama tetikleyicisi yapılandırması

  16. Sihirbazın en üstünde Bağlayıcı oluştur'u seçin.

Yoklama tetikleyicisini kullanma

Her şeyi yapılandırdığınıza göre artık yoklama tetikleyicisini bir akışta kullanabilirsiniz. Bu bölümde, belirli bir kişiye her yeni gezi kaydedildiğinde oluşan değişikler için arka uç hizmetini yoklayan bir akış oluşturacaksınız.

  1. flow.microsoft.com adresinde sayfanın sol tarafındaki Oluştur'u seçin.

  2. Boş bir uygulamayla başlayın alanında Anlık akış'ı seçin.

  3. Anlık akış derleyin iletişim kutusunda Atla düğmesini seçin.

  4. Arama kutusuna Yeni gezi eklendiğinde tetiklenir girin.

    Arama kutusunda arama metnini gösteren ekran görüntüsü.

    Tetikleyici olarak kullanmak için listedeki bir öğeye tıklayın.

  5. Kişi akış kutusuna, gezilerini inceleyeceğiniz kişi olarak russellwhyte girin ve ardından + Yeni adım'ı seçin.

    Kişi kutusunu ve yeni adım düğmesini gösteren ekran görüntüsü.

  6. Eylem seçin iletişim kutusunda Yerleşik sekmesini ve ardından Tarih Saat eylemini seçin.

    Eylem seç iletişim kutusunu gösteren ekran görüntüsü.

  7. Tarih Saat için Geçerli zaman'ı seçin.

    Geçerli saat düğmesini gösteren ekran görüntüsü.

  8. Yeni akışı kaydetmek için Kaydet’i seçin.

Doğrulama ve sorun giderme

Her şeyin doğru bir şekilde ayarlandığını doğrulamak için Akışlarım’ı seçin ve sonra da Yeni gezi eklendiğinde tetiklenir -> Geçerli zaman akışını seçerek çalıştırma geçmişini görüntüleyin. Akış henüz çalıştırılmadığından, geçmişte şu anda hiçbir şey gösterilmiyor olmalıdır.

Akışı test etmek için Postman uygulamasını açmanız ve TripPin'e yeni veri eklemeniz gerekir.

  1. Postman'da, Launchpad sekmesinin yanındaki + simgesini seçin.

  2. Adsız istekte, sol taraftaki açılan kutudan POST'u seçin ve İstek URL'sini girin kutusuna şu adresi girin:

    https://services.odata.org/TripPinRESTierService/(S(<Service number))/People('russellwhyte')/Trips

    Not

    URL'de <service number> yerine meta verilerinizdeki gerçek numarayı kullandığınızdan emin olun.

  3. POST isteği altında Gövde sekmesini ve sonra da raw öğesini seçin. Raw öğesinin sağ tarafındaki açılan listeden JSON'u seçin.

  4. Metin kutusuna aşağıdaki metni girin:

    {
         "TripId": 190,
         "ShareId": "9d9b2fa0-efbf-490e-a5e3-bac8f7d47354",
         "Name": "Trip in US",
         "Budget": 5000,
         "Description": "Trip from San Francisco to New York City",
         "Tags": [
             "business",
             "New York meeting"
         ],
         "StartsAt": "2014-01-01T00:00:00Z",
         "EndsAt": "2014-01-04T00:00:00Z"
    }
    
  5. POST iletisini TripPin sitesine göndermek için Gönder'i seçin.

    POST iletisini gönderme

    Yanıt, 201 Created durumuyla döndürülmelidir.

Şimdi Akışlarım'ı açıp Yeni gezi eklendiğinde tetiklenir -> Geçerli zaman akışını seçtiğinizde, çalıştırma geçmişinde bir tetikleyicinin gerçekleştiği görürsünüz.

Tetikleyici gerçekleşmiştir

Not

Aynı kişi için Postman'da başka bir POST isteği çalıştırırsanız, JSON gövdesindeki TripId değerini değiştirmeniz gerekir. Aksi takdirde 409 Çakışma hatası oluşur.

Özet

Her şey düzgün yapılandırıldıysa artık TripPin'e her yeni gezi eklendiğinde Microsoft Power Automate uygulamasında bildirim alırsınız.

Sonraki adımlar

Geri bildirimde bulunun

Bağlayıcı platformumuzla ilgili sorunlar veya yeni özellik fikirleri hakkındaki geri bildiriminiz bizim için çok önemlidir. Geri bildirimde bulunmak için Sorun gönderme veya bağlayıcılarla ilgili yardım alma bölümüne gidip geri bildirim türünü seçin.