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.

İş 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:

Veri bulunamadı hatası

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:

Veri bulunamadı hatası

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:

Gönderim siparişleri için çözüm

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)

İki işlemi paralel olarak gösteren örnek

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.

Kimlik arayan bir koşulu gösteren örnek

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:
  1. Yeni bir iş akışı açın veya oluşturun.
  2. Bir işlem ekleyin.
  3. Google E-Tablolar bağlayıcısını seçin.
  4. Ö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:

Ç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):

long running workflow example
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:

too much data workflow example

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.

Aradığınız cevapları bulamıyor musunuz? Yardımcı olmak için buradayız.