Shopify Flow'da hataları giderme
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
ifadesini içeren bir hatayla karşılaşabilirsiniz:

Bu hatanın oluşma nedeni, Ürün etiketi ekle dahil birçok işlemin Ürün gibi bir Shopify kaynağı gerektirmesidir. Bu kaynak mevcut değilse, işlem çalıştırılamaz. Genellikle iş akışları, gerekli verilere benzeyen ancak gerçekte ihtiyacı karşılamayan veriler içerebilir.
Aşağıdaki bölümlerde bu hataya neden olabilecek yaygın senaryolar ve bunların nasıl çözüleceği açıklanıyor.
1. Sorun: Tek bir ürün gerektiğinde Veri al işlemi tarafından bir liste sağlanıyordu
Genellikle bir iş akışı Shopify kaynaklarının listesini sağlar ancak işlem yalnızca tek bir kaynağa izin verir. Örneğin, iş akışı Ürün verilerini al işlemi aracılığıyla bir ürün listesi sağlar ancak Ürün etiketi ekle işlemi tek bir ürün gerektirir.
Bu hatayı çözmek için, bir Her biri için işlemi ekleyerek liste üzerinde döngü oluşturabilir ve işlemi listedeki her bir ürün içim çağırabilirsiniz. Bu örnekte, hem hata hem de Her biri için kullanılarak sağlanan çözüm açıklanıyor:

2. Sorun: Tek bir ürün gerektiğinde tetikleyici tarafından bir liste sağlanıyordu
Bir işlem tek bir kaynak gerektirdiği halde tetikleyici bir liste sağladığında benzer bir hata oluşabilir. Örneğin, Gönderim siparişini gönderildi olarak işaretle işlemi bir Gönderim siparişi gerektirir ancak tetikleyici, bir gönderim siparişleri listesi sağlayan bir Sipariş işleminden gelir.
Bu hatayı gidermek için 1. Sorun'da olduğu gibi liste üzerinde döngü oluşturmak üzere Her biri için işlemi ekleyebilir ve işlemi listedeki her bir ürün için çağırabilirsiniz:

Alternatif olarak, gerekli kaynağı sağlayan farklı bir tetikleyici kullanabilirsiniz. Örneğin, Sipariş oluşturuldu tetikleyicisini kullanmak yerine, tek bir gönderim siparişi sağlayan Gönderim siparişi gönderilmeye hazır tetikleyicisini kullanabilirsiniz.

3. Sorun: Planlanan zaman tetikleyicisi tarafından hiçbir veri sağlanmadı
Planlanan zaman tetikleyicisi, Shopify kaynak verilerini sağlamıyor. Tetikleyiciden sonra Shopify kaynaklarına gerek duyan işlemleri bağlamaya çalışırsanız bu hatayla karşılaşırsınız.
Bu hatayı çözmek için, gerekli verileri sağlayan Ürün verilerini al gibi bir işlem ekleyin. 1. Sorun'da belirtildiği gibi, verileri alan bir işlem tarafından döndürülen listeler üzerinde döngü oluşturmak amacıyla bir Her biri için işlemi de eklemeniz gerekir.

4. Sorun: Uygulama tetikleyicisi tarafından hiçbir veri sağlanmadı
3. Sorun'a benzer şekilde, uygulamalar tarafından oluşturulan bazı tetikleyiciler gerekli Shopify kaynak verilerini sağlamaz. Örneğin, "Değerlendirme oluşturuldu" tetikleyicisi bir e-posta adresi sağlayabilir ancak Müşteri etiketi ekle gibi birçok işlemin gerektirdiği bir Müşteri nesnesi sağlayamaz.
Bu hatayı çözmek için, gerek duyduğunuz Shopify kaynağını getirmek üzere "Veri al" işlemini kullanabilirsiniz. Örneğin, tetikleyici tarafından sağlanan e-posta adresinden müşteri nesnesini almak için Müşteri verilerini al işlemini kullanabilirsiniz. Diğer sorunlarda olduğu gibi, verileri alan bir işlem tarafından döndürülen listeler üzerinde döngü oluşturmak amacıyla bir Her biri için işlemi de eklemeniz gerekir.
"Veri al" seçeneği yoksa, uygulama geliştiricisiyle iletişime geçerek gerekli verileri sağlamak için tetikleyicisini değiştirip değiştiremeyeceğini sormanız gerekebilir.
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):

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.