Flow hatalarını giderme ve kullanım sınırları
Bu belgede yaygın hatalar, sınırlar, bunların neden ortaya çıktığı ve nasıl giderilebilecekleri açıklanmaktadır. Flow'da karşılaşabileceğiniz iki tür hata vardır: Kalıcı hatalar ve geçici hatalar.
Bu sayfada
İş akışları düzenlenirken oluşan hatalar
Bir iş akışını düzenlerken iş akışını kaydetmenizi engelleyen hatalarla karşılaşabilirsiniz. Bir iş akışını düzenlerken karşılaşabileceğiniz yaygın hatalardan bazıları şunlardır:
Veriler bulunamadı
Bir iş akışına yeni bir işlem eklerken Data not found
" ifadesinin yer aldığı bir hatayla (örneğin, Customer data not found
) karşılaşabilirsiniz. Bu hata, işlem için gerekli verilere ulaşılamıyorsa ortaya çıkar. Örneğin, ürün numarası gerektiren bir işlem ekliyorsanız bu hata, iş akışınızın kullanılabilir bir ürün sağlamadığı anlamına gelir.
Bu veriler genellikle bir tetikleyici veya "Veri al" işlemi tarafından sağlanır. "Veri al" işlemini kullanıyorsanız sık karşılaşılan bir sorun, eylemin tek bir öğeyi (müşteri) gerektirmesi ancak eylemin bir liste (müşteri listesi) sağlamasıdır. İşlemi çağırmak için, liste üzerinde döngü oluşturmak üzere bir For each işlemi eklemeniz ve işlemi listedeki her bir öğe için çağırmanız gerekir.
Tetikleyici verileriyle ilgili sorunlar için, doğru verileri sağlayan bir tetikleyici bulmak üzere işleminizin belgelerine bakın.
Bir iş akışı çalışırken oluşan hatalar
Bir iş akışı çalıştırması bir hatayla karşılaştığında, iş akışı çalıştırması başarısız olarak işaretlenir. Hata mesajı, iş akışı çalıştırma ayrıntılarında görüntülenir. Bir iş akışı çalıştırması başarısız olduğunda karşılaşabileceğiniz yaygın hatalardan bazıları şunlardır:
Geçici hatalar
Geçici hatalar, Flow bir görevi tamamlayamadığında oluşan geçici hatalardır. Bu hatalar oluştuğunda işlem başarılı olana veya bir zaman aşımı sınırına ulaşılana kadar yeniden denenir. Örneğin, Flow bir bağlayıcı işlemi yürütürken bir iş ortağıyla iletişime geçemezse görevden vazgeçmeden önce işlemi tamamlamayı, bir defadan fazla dener.
Yeniden denemeler, sonraki her deneme arasındaki gecikme süresi öncekinden fazla olacak şekilde yayılır. Genellikle, bir iş akışında geçici hatalar oluştuğunda, iş akışı görevleri yeniden denerken uzun bir süre boyunca çalışır durumda kalır.
Bir görev başarıyla yeniden denendiğinde iş akışı devam eder. Bir görev yeniden denendiğinde kalıcı bir hatayla karşılaşılırsa iş akışı başarısız olur. Her iş akışı bölümünün, toplam 36 saatlik üst yürütme sınırı vardır. Geçici hatalarla karşılaşılan bir adım bu sınıra ulaşılmadan önce başarıyla tamamlanamazsa iş akışı başarısız olur.
Bekleme adımlarına sahip iş akışları bölümlere ayrılır ve bu, iş akışında zaman aşımı sınırlarının hesaplanma şeklini etkiler. Her bölüm, birlikte yürütülen bir görevler grubundan oluşur ve her birinin kendi 36 saatlik sınırı vardır. Örneğin, bir iş akışında bir saat beklemeyi gerektiren bir bekleme adımı varsa bekleme adımından önceki görevler bir bölümde, bekleme adımından sonraki görevler ise başka bir bölümde birlikte yürütülür. Bir iş akışında birden fazla bekleme adımı varsa her bekleme adımı arasındaki görevler tek bir bölümde, birlikte yürütülür. Bekleme adımı olmayan iş akışları tek bölüm olarak kabul edilir.
Ara sıra oluşan geçici hatalara sık rastlanır. Bununla birlikte, birden fazla çalıştırmada aynı geçici hatayla tutarlı bir şekilde karşılaşan bir iş akışınız varsa iş akışının yeniden yapılandırılması gerekebilir.
Adım zaman aşımı
Step timed out
hataları, genellikle iş akışındaki bir görev bir bölümde çok fazla veri sorgulamaya çalıştığında ortaya çıkar. Bu hata sıklıkla, özellikle makul bir zamanda alınamayacak kadar büyük olan iç içe geçmiş listelerdeki yinelenen iş akışlarında ortaya çıkar.
Bir iş akışı bu hatayla karşılaştığında tetikleyici veya bekleme adımı retrying
olarak görüntülenir.
Bu sorunu çözmek için, listelere ve iç içe geçmiş listelere erişen tüm koşulları kontrol ederek doğru olduklarından emin olun. Yaygın bir sorun, bir koşulun yalnızca siparişteki ürünler yerine mağazadaki tüm ürünleri kontrol etmesidir.
5xx durumu
Flow eylemlerinin çoğu HTTP çağrıları yapılmasını içerir. Bazen ağ iletişimi veya diğer sunucu sorunları, HTTP çağrılarının başarısız olmasına ve 500 ile 599 arasında bir hata kodu döndürülmesine neden olabilir. Bu hatayla bir defa karşılaşılması bir sorun olmamakla birlikte sorunun tekrarlanması, adımın nasıl yapılandırıldığından ziyade, görevi gerçekleştiren sunucuyla ilgili bir sorun olduğunu gösterebilir.
Bu hata türü, en sık HTTP Talebi Gönder işlemi sırasında görülür ancak birçok işlemde ortaya çıkabilir.
GraphQL Kısıtlandı
Bir iş akışı tarafından yapılan işin toplam hacmi, kısmen planınız tarafından belirlenen API hız sınırı tarafından sınırlandırılır. Genellikle, bir iş akışı çok karmaşık olmadığı veya istenmeyen bir tasarım hatası bulunmadığı sürece bu sınırlara ulaşılmaz. Aşağıda bu hataya neden olabilecek senaryoların örnekleri verilmiştir:
- HTML içeren meta alan değerlerinin kontrol edilmesi gibi büyük miktarda veri içeren bir liste üzerindeki iş akışı döngüsünde yer alan liquid veya koşullar.
- Büyük bir mağazada
shop.orders
üzerinde döngü oluşturma gibi, büyük bir liste üzerindeki iş akışı döngüsünde yer alan liquid veya koşullar. - İş akışının, yeni iş akışı çalıştırmaları oluşturmaya devam ettiği sonsuz bir döngüyle sonuçlanan bir iş akışı. Örneğin, iş akışı Müşteri etiketleri eklendi tetikleyicisini kullanıyor ve Müşteri etiketleri ekle işlemini içeriyorsa bu durum ortaya çıkabilir.
Zaman sınırına ulaşılırsa bir GraphQL throttled
hatası alırsınız. Bu hata çalıştırılmaya çalışılan diğer iş akışlarını etkileyebileceğinden, bu hata oluşursa hemen çözülmelidir.
Kalıcı hatalar
Kalıcı hatalar, Flow'un bir görevi tamamlayamadığı ve görevin yeniden denenemediği hatalardır. Örneğin, e-posta adresi geçersiz olduğundan Flow e-posta gönderemiyorsa görevi yeniden denemez. Bunun yerine, iş akışı başarısız olur.
Alanlar: kimlik gerekli olmasına rağmen boş
Çoğu Shopify işleminin çalıştırılması için bir veya daha fazla kaynak (ürün, müşteri ya da sipariş gibi) gerekir. Bazen kaynak kullanılamadığından işlem istenildiği gibi çalıştırılamaz. Örneğin, Yönetici'de müşterisi olmayan bir sipariş oluşturmak mümkündür. Müşteri etiketleri ekle gibi bir işlemi çalıştırmayı denerseniz işlem bu hatayla başarısız olur.
Bir hatayı önlemek için kaynağın mevcut olup olmadığını kontrol etmek amacıyla işlemden önce bir Koşul ekleyebilirsiniz. Önceki örnekte, Müşteri etiketleri ekle ile aynı iş akışında dahili bir e-posta göndermek istiyorsanız işlemi başarısız olabilecek adımın önüne koyabilir veya aşağıdakilerden birini yapabilirsiniz.
İşlemleri paralel dallara yerleştirin (bir adımdan iki veya daha fazla dalın çıktığı yer)
Müşterinin mevcut olup olmadığını kontrol etmek için işlemden önce bir koşul ekleyin. Örneğin, şunları kontrol edebilirsiniz: order / customer / id is not empty and exists
.
Flow'un Google E-Tablolar hesabınıza erişim izni yok. Lütfen hesabınızı yeniden bağlayın.
Google E-Tablolar bağlayıcısı, sayfaya yazma iznine sahip olması için Google hesabınızı Flow'a bağlamanızı gerektirir. Bu hata, hesabın Flow ile bağlantısının kaldırılmış olması veya hesabın söz konusu tabloya erişememesi nedeniyle, Flow'un bir e-tabloya yazma izni olmadığında ortaya çıkar.
Bu sorunu çözmek üzere, bağlayıcı için kullanılan hesabın sayfayı açabildiğinden ve düzenleme erişimine sahip olduğundan emin olun. Yanlış bir hesap bağlanmışsa bu hesabın bağlantısını kesip yeni bir hesap bağlayabilirsiniz.
Adımlar:
- Yeni bir iş akışı açın veya oluşturun.
- Bir işlem ekleyin.
- Google E-Tablolar bağlayıcısını seçin.
- Önce Bağlantıyı kes'e, ardından Bağlan'a tıklayın.
Flow işlemi geçersiz özelliklerle alındı. Müşteri pazarlamayı kabul etmiyor.
Pazarlama e-postası gönder işlemi, bu e-postaları almayı kabul etmeyen müşterilere e-posta göndermez ve iş akışı bunu yapmaya çalışırsa kalıcı olarak başarısız olur.
Bu sorunu çözmek için iş akışına, müşterilerin abonelik durumunu kontrol eden bir koşul ekleyin. E-postaları göndermeden önce, müşterilerin pazarlama e-postaları almayı kabul ettiğinden emin olabilirsiniz. E-posta abone listesi yönetimi sayfasındaki adımlarını uygulayın.
[Kaynak türü] için eksik kaynak
Bu hata, customer
veya order
gibi bir kaynak, iş akışı verileri alamadan önce silinirse ortaya çıkar. Bu çoğu zaman bir bekleme adımından sonra ortaya çıkar, ancak tetikleyici olay gerçekleştikten sonra kaynak çok hızlı bir şekilde silinirse tetikleyicide gerçekleşmesi de mümkündür.
Bir hata oluştuğunda bildirim alma
Hatalar mağaza operasyonlarınızı etkileyecekse bir hata oluştuğunda gönderilecek bildirimler ayarlayabilirsiniz. Hata bildirimleri, İş akışında hata oluştu tetikleyicisi kullanılarak, diğer iş akışlarıyla benzer şekilde oluşturulabilir. Hata bildirimleri, gereksiz bildirimleri sınırlandıracak şekilde tasarlanmıştır; bu nedenle her iş akışı sürümü için yalnızca bir bildirim alırsınız.
Başlamak için aşağıdaki şablonlardan birini kullanabilirsiniz:
- İş akışı çalıştırma hataları tespit edildiğinde Shopify uyarısı alma
- İş akışı çalıştırma hataları algılandığında e-posta ile bilgi alma
- İş akışı çalıştırma hataları tespit edildiğinde Slack uyarısı alma
Çalıştırmaları yeniden deneme
Bazı durumlarda, bir iş akışı çalıştırmasında bir hatayla karşılaşılabilir veya iş akışı beklendiği gibi çalışmayabilir. İlgili iş akışında hata giderme işlemi gerçekleştirdikten ve sorunları çözdükten sonra, geçmiş çalıştırmaların sonucunu geriye dönük olarak düzeltmek için geçmiş çalıştırmalar manuel olarak yeniden denenebilir. İş akışı çalıştırmalarını yeniden deneme hakkında daha fazla bilgi edinin.
Çalıştırılıyor (sınırlı hız)
Bazı durumlarda, bir veya birden fazla iş akışı çok fazla kaynak kullanabilir ve bunun sorunlara neden olmaması için Flow, mağazanızda gecikmelere ve zaman aşımı hatalarına neden olabilecek çalıştırmaların yürütülmesini kasıtlı olarak sınırlar. Bu, verimsiz iş akışlarını yeniden yazarak ve amaçlandığı gibi çalışmayan bir iş akışındaki hatalar düzeltilerek çözülebilir.
Çok uzun süre çalışma
Bu mesaj, bir iş akışı için çalıştırmaların yürütülmesinin çok uzun zaman aldığını gösterir. Bunun nedeni genellikle, bir iş akışı içinde Flow tarafından alınması çok uzun süren büyük miktarda verinin kullanılmasıdır.
Örnek
Bu durumlar genellikle birden fazla öğe listesini kullanan derin talep yollarından kaynaklanır (bir ürünün parçası olduğu tüm koleksiyonlardaki tüm ürünler için tüm meta alanların talep edilmesi gibi):
Bu durum genellikle, bir iş akışı için zaman aşımının Tetikleyici adımıyla da ilişkilidir.Tüm meta alanlar arasında döngü gerçekleştiren iş akışları genellikle yalnızca belirli bir meta alan kullanılarak iyileştirilebilir. Birden fazla iç içe geçmiş listeye (bir ürün için tüm koleksiyondaki tüm ürünler gibi) veya özellikle büyük listelere (tüm nesneler için tüm meta alanlarını içeren meta alan tanımları gibi) erişim, kasıtsız yapılmış olabilir ve doğru alanı (bir nesnedeki tek bir ürünü veya meta alanı) seçmek verimliliği büyük ölçüde artırabilir. Diğer durumlarda, bir sorgu filtresiyle birlikte "Ürünü/Siparişi/Müşteri Verilerini Al" işlemi kullanmak, kullanılan nesnelerin sayısını büyük ölçüde azaltırken gerekli nesnelere erişilmesini sağlayabilir.
Çok fazla veri işlenmesi
Bu mesaj, bir iş akışı için çalıştırmaların büyük miktarda veri ürettiğini gösterir. Buna genellikle, birden fazla liste katmanındaki alanların kontrol edilmesi nedeniyle birçok alanı kontrol eden karmaşık koşullar kullanmak sebep olur.
Örnek
Örneğin, "Bu müşteride en az bir etiket için, en az bir sipariş satır öğesi için, satır öğesindeki en az bir etiket için" gibi bir koşul, çok sayıda kontrol gerçekleştirilmesine ve bu kontrollerin sonuçlarını görüntülemek için büyük miktarda veri üretilmesine neden olabilir:
Otomatik yeniden çalıştırmaların başarısız olması
Bu mesaj, bir iş akışı için çalıştırmaların geçici bir sorun nedeniyle sürekli olarak başarısız olduğunu ancak sonraki yeniden denemelerde sıklıkla başarılı olmadığını gösterir. Bu durum genellikle, Shopify'ın Admin API'si veya bir iş ortağının uygulaması yüksek hacimli taleplerle karşılaştığında ortaya çıkar.