Kodu çalıştır
Kod çalıştır işlemi, JavaScript kodu yürütür. İş akışının önceki adımlarından gelen verileri Kod çalıştır işlemine girdi olarak aktarabilir ve sonraki adımlarda kullanılacak değerleri döndürebilirsiniz.
Alanlar
Kod çalıştır işlemi aşağıdaki alanları içerir.
Alan | Açıklama |
---|---|
Input | Gerekli. Önceki adımlardan elde edilen verilerin Kod çalıştır eyleminde girdi olarak kullanılmasını sağlayan bir GraphQL sorgusu. |
Çıktı | Gerekli. GraphQL'in şema tanımlama dilinde (SDL) tanımlanan, işlem tarafından döndürülecek verilerin temsili. |
Kod | Gerekli. Kod çalıştır işleminin yürüteceği JavaScript. |
Girdi verileri
Girdi verileri, Kodu çalıştır işleminden önce gerçekleşen adımlardan aktarılabilir. Bu verileri eklemek için Girdi alanına bir GraphQL sorgusu yazabilirsiniz . Sorgudan döndürülen veriler, export default
olarak işaretlenen ve genel kullanımda main
olarak adlandırılan işlevde input
bağımsız değişkeni olarak kullanılabilir.
Girdi sorgusu, Shopify Admin API'ye yönelik bir sorgu değil, Flow ortamı verilerine yönelik bir sorgudur. Bu nedenle giriş verilerine Shopify sorgusu ekleyemezsiniz. Ayrıca, sorgudakiedges
ve nodes
öğelerini Flow yöneteceğinden, sorgunuza bu veya benzeri sayfalandırma söz dizimleri eklemenize gerek yoktur.
Sipariş notunu ve satır öğesinin başlığını alan örnek bir girdi:
Bu veriler, kodda kullanılabilecek bir input
değişkenine dönüştürülür:
Girdiler ayrıca işlev imzasında da yapılandırılabilir:
Çıktı verileri
Kod çalıştır işlemi özel veriler de döndürebilir. Kodun geri döndüreceği verilerin türünü tanımlamak için Çıktı alanını ve GraphQL'in Şema tanımlama dilini (SDL) kullanın. Örneğin giftMessage
adlı bir dize ve totalGifts
adlı bir sayı döndürmek için:
Yorumlar isteğe bağlıdır ancak Flow kullanıcı arabiriminde verileri açıklamak için kullanılır. JavaScript kodunda bu verilerin çıktısını almak için tür ile eşleşen bir nesne döndürün:
Ayrıca, daha karmaşık veriler döndürmek için özel bir tür de tanımlayabilirsiniz. Örneğin, Gift
adlı bir dize ve message
adlı bir sayı içeren amount
adlı bir tür döndürmek için:
Bu işlemi takip eden adımlarda bu verilere erişmek için, Kod çalıştır işlem konfigürasyonunda tanımladığınız Output
şemasına göre türü belirlenecek olan Kod çalıştır adlı değişkeni kullanın. Bu değişkeni hem koşullarda hem de işlemlerde kullanabilirsiniz.
Console.log
Hata giderme amacıyla Flow'un iş akışı çalıştırma günlüğüne veri çıktısı almak için console.log
öğesini kullanabilirsiniz. Çıktı, iş akışının Çalıştırma günlüğünde görünür. Örneğin, aşağıdakiler geçerlidir:
Kodu çalıştır işleminde console.info
, console.error
veya diğer işlevleri kullanamazsınız.
Örnek
Kod çalıştır işleminin örneklerini, Flow örnekleri deposunda bulabilirsiniz.
Sınırlamalar
Kod çalıştır işlemi, aşağıdaki sınırlamalara sahiptir:
- Kodu çalıştır işlemi, ECMA2020 JavaScript'i destekler. NodeJS veya CommonJS API'lerini veya modülleri içe aktarma işlemini desteklemez.
- Kodunuz http çağrıları (
fetch
) yapamaz. - Rastgele ve saate dayalı işlevler kullanılamaz.
scheduledAt
veyacreatedAt
gibi tarih verileri, girdi olarak aktarılabilir. - Console.log, tarayıcı konsolunda günlük tutmaz.
Ayrıca aşağıdaki sınırlar da uygulanır:
- Girdi verileri sorgusu 5000 karakterle sınırlıdır.
- Çıktı verileri şeması 5000 karakterle sınırlıdır.
- Çıktı veri yükü ve Console.log çıktısı bir arada 50 kb ile sınırlıdır.
- Kod 50.000 karakterden uzun olamaz.
- Toplam yürütme süresi 5 saniyeyle sınırlıdır.
- Bellek kullanımı 10 MB ile sınırlıdır.
Yol haritası
Flow ekibi, Kod çalıştır işlemine zaman içinde yeni özellikler eklemeyi planlamaktadır. Aşağıdaki tabloda, iyileştirmeler ve tahmini sunum zamanları ana hatlarıyla açıklanmıştır.
İyileştirme | Açıklama | Tahmini Sunum Zamanı |
---|---|---|
Günlük kaydı | "Console.log"u kullanarak hata giderme amacıyla Çalıştırma günlüğüne veri çıktısı alma. | Sunuldu. |
Harici API çağrıları | API çağrıları için JavaScript'in alma özelliğini kullanma. | 2024'ün 3. çeyreği |
Geri bildirim
Kod çalıştır işlemi, Shopify Flow'da yeni bir adım türüdür. Geri bildirimleriniz ve sorularınız varsa lütfen bu Flow topluluk gönderisine yorum ekleyin.