เรียกใช้โค้ด
การดำเนินการรันโค้ดจะประมวลผล JavaScript คุณสามารถส่งข้อมูลจากขั้นตอนก่อนหน้านี้ในขั้นตอนการทำงานเป็นอินพุตไปยังการดำเนินการรันโค้ด และส่งคืนค่าที่จะใช้ในขั้นตอนถัดไปได้
ในหน้านี้
ช่อง
การดำเนินการเรียกใช้โค้ดจะมีฟิลด์ดังต่อไปนี้
ช่อง | คำอธิบาย |
---|---|
อินพุต | ต้องระบุ คิวรี GraphQL เพื่อใช้ข้อมูลจากขั้นตอนก่อนหน้าเป็นอินพุตไปยังการดำเนินการรันโค้ด |
เอาท์พุต | ต้องระบุ การแสดงข้อมูลที่จะส่งคืนตามการดำเนินการ ซึ่งกําหนดไว้ในภาษากำหนดสคีมา (SDL) ของ GraphQL |
รหัส | ต้องระบุ JavaScript ที่การดำเนินการรันโค้ดจะประมวลผล |
ข้อมูลอินพุต
คุณสามารถส่งข้อมูลอินพุตได้จากขั้นตอนที่เกิดขึ้นก่อนการดำเนินการรันโค้ด หากต้องการรวมข้อมูลนี้ คุณสามารถเขียนคิวรี GraphQL ในช่องอินพุตได้ ข้อมูลที่ส่งคืนจากคิวรีจะพร้อมใช้งานเป็นอาร์กิวเมนต์ input
กับฟังก์ชันที่ทำเครื่องหมาย export default
คุณไม่จำเป็นต้องจัดการการจัดหน้าหรือใช้ edges
และ nodes
ในคิวรี เนื่องจาก Flow จะจัดการให้คุณ
ตัวอย่างการอินพุตที่ได้รับหมายเหตุคำสั่งซื้อและชื่อของสินค้าเฉพาะรายการ มีลักษณะดังนี้
ข้อมูลนี้จะถูกแปลงเป็นตัวแปร input
ที่สามารถใช้ในโค้ดได้ ดังนี้
อินพุตสามารถลดโครงสร้างใน Function Signature ได้ ดังนี้
ข้อมูลเอาท์พุต
การดำเนินการรันโค้ดสามารถส่งคืนข้อมูลแบบกำหนดเองได้ หากต้องการกําหนดประเภทของข้อมูลที่โค้ดจะส่งคืน ให้ใช้ช่องเอาท์พุตและภาษากำหนดสคีมา (SDL) ของ GraphQL ตัวอย่างเช่น หากต้องการส่งคืนสตริงที่ชื่อ giftMessage
และตัวเลขที่ชื่อ totalGifts
ให้ดำเนินการดังนี้
ความคิดเห็นเป็นส่วนที่ไม่บังคับ แต่จะถูกนำไปใช้เพื่ออธิบายข้อมูลใน UI Flow หากต้องการเอาท์พุตข้อมูลนี้ในโค้ด JavaScript ให้ส่งคืนออบเจ็กต์ที่ตรงกับประเภท ให้ดำเนินการดังนี้
นอกจากนี้คุณยังสามารถกําหนดประเภทแบบกําหนดเองเพื่อส่งคืนข้อมูลที่ซับซ้อนมากขึ้นได้ ตัวอย่างเช่น หากต้องการส่งคืนประเภทที่ชื่อ Gift
ซึ่งมีสตริงที่ชื่อ message
และหมายเลขที่ชื่อ amount
ให้ดำเนินการดังนี้
หากต้องการเข้าถึงข้อมูลนี้ตามขั้นตอนการดำเนินการข้างต้น ให้ใช้ตัวแปรที่มีชื่อว่า Run code ซึ่งจะจัดประเภทตามสคีมา Output
ที่คุณกําหนดในการกำหนดค่าการดำเนินการรันโค้ด โดยคุณสามารถใช้ตัวแปรนี้ได้ทั้งในเงื่อนไขและการดำเนินการ
ตัวอย่าง
สามารถดูตัวอย่างการดำเนินการเรียกใช้งานโค้ดได้ที่พื้นที่จัดเก็บตัวอย่าง Flow
ข้อจำกัด
การดำเนินการรันโค้ดมีข้อจํากัดดังต่อไปนี้
- โค้ดของคุณไม่สามารถนําเข้าโมดูลได้
- โค้ดของคุณไม่สามารถดำเนินการเรียก http (
fetch
) ได้ - โค้ดของคุณไม่สามารถใช้
console.log
ได้ - ไม่สามารถใช้ฟังก์ชันแบบสุ่มและฟังก์ชันตามเวลาได้ ส่วนข้อมูลวันที่ เช่น
scheduledAt
หรือcreatedAt
สามารถส่งผ่านในรูปแบบอินพุตได้
นอกจากนี้ยังมีการบังคับใช้ขีดจํากัดต่อไปนี้ด้วย
- จํากัดคำค้นหาข้อมูลอินพุตไม่เกิน 5,000 อักขระ
- จํากัดสคีมาข้อมูลเอาท์พุตไม่เกิน 5,000 อักขระ
- จํากัดเพย์โหลดข้อมูลเอาท์พุตไม่เกิน 50kb
- โค้ดต้องมีความยาวไม่เกิน 50,000 อักขระ
- จำกัดระยะเวลาการเรียกใช้งานทั้งหมดไม่เกิน 5 วินาที
- จำกัดการใช้หน่วยความจําไม่เกิน 10MB
แผนงาน
ทีม Flow วางแผนที่จะทยอยเพิ่มคุณสมบัติการดำเนินการรันโค้ด โดยตารางต่อไปนี้สรุปการปรับปรุงที่วางแผนไว้และวันที่คาดว่าจะดำเนินการเสร็จสิ้น
การปรับปรุง | คำอธิบาย | ระยะเวลาจัดส่งโดยประมาณ |
---|---|---|
แก้ไขจุดบกพร่อง | การแก้ไขจุดบกพร่องและการล้างข้อมูล | กุมภาพันธ์ 2024 |
การบันทึกข้อมูล | ใช้ `console.log` เพื่อเอาท์พุตข้อมูลไปยังบันทึก Run เพื่อวัตถุประสงค์ในการแก้ไขปัญหา | ต้นเดือนเมษายน 2024 |
การเรียก API ภายนอก | ใช้การดึงข้อมูลของ JavaScript เพื่อเรียก API | ไตรมาสที่ 3 ปี 2024 |
ความคิดเห็น
การดำเนินการรันโค้ดเป็นขั้นตอนประเภทใหม่ใน Shopify Flow หากคุณมีความคิดเห็นและข้อสงสัย โปรดแสดงความคิดเห็นบนโพสต์ชุมชน Flow นี้