Chạy mã
Thao tác Chạy mã triển khai JavaScript. Bạn có thể chuyển dữ liệu từ các bước trước trong quy trình làm việc sang để làm dữ liệu đầu vào cho thao tác Chạy mã và giá trị trả về sẽ được dùng trong các bước tiếp theo.
Trên trang này
Trường
Thao tác Chạy mã chứa các trường sau.
Trường | Mô tả |
---|---|
Nhập vào | Bắt buộc. Truy vấn GraphQL để dùng dữ liệu từ các bước trước làm dữ liệu đầu vào cho thao tác Chạy mã. |
Thông tin đầu ra | Bắt buộc. Thể hiện dữ liệu sẽ được trả về bằng thao tác, được xác định trong ngôn ngữ định nghĩa lược đồ của GraphQL (SDL). |
Mã | Bắt buộc. JavaScript mà thao tác Chạy mã sẽ triển khai. |
Dữ liệu đầu vào
Có thể chuyển dữ liệu đầu vào từ các bước diễn ra trước đó cho thao tác Chạy mã. Để thêm dữ liệu này, bạn có thể ghi truy vấn GraphQL vào trường Dữ liệu đầu vào. Dữ liệu trả về từ truy vấn sẽ có sẵn dưới dạng đối số input
của hàm được đánh dấu là export default
. Bạn không cần xử lý việc phân trang hoặc sử dụng edges
và nodes
trong truy vấn vì Flow sẽ xử lý những việc này cho bạn.
Ví dụ về dữ liệu đầu vào nhằm lấy dữ liệu ghi chú đơn hàng và tiêu đề mục hàng:
Dữ liệu này được chuyển đổi thành biến input
có thể sử dụng trong mã:
Cũng có thể phân giải dữ liệu đầu vào trong chữ ký của hàm:
Dữ liệu đầu ra
Có thể tùy chỉnh dữ liệu do thao tác Chạy mã trả về. Để xác định loại dữ liệu mã sẽ trả về, sử dụng trường Dữ liệu đầu ra và Ngôn ngữ định nghĩa lược đồ (SDL) của GraphQL. Ví dụ: Để trả về chuỗi được gọi là giftMessage
và số được gọi là totalGifts
:
Các nhận xét này không bắt buộc nhưng sẽ được sử dụng để mô tả dữ liệu trong giao diện người dùng Flow. Để xuất dữ liệu này trong mã JavaScript, hãy trả về một đối tượng khớp với loại:
Bạn cũng có thể xác định loại tùy ý để trả về dữ liệu phức tạp hơn. Ví dụ: Để trả về loại được gọi là Gift
chứa chuỗi được gọi là message
và số được gọi là amount
:
Để truy cập dữ liệu này theo các bước tuần tự trong thao tác này, hãy sử dụng biến có tên Mã chạy sẽ được nhập theo lược đồ Output
mà bạn xác định trong cấu hình thao tác Chạy mã. Bạn có thể sử dụng biến này trong cả điều kiện và thao tác.
Console.log
Bạn có thể sử dụng console.log
để xuất dữ liệu vào nhật ký lần chạy quy trình làm việc của Flow nhằm mục đích khắc phục sự cố. Thông tin đầu ra sẽ hiển thị trong Nhật ký lần chạy của quy trình làm việc. Ví dụ như sau là hợp lệ:
Bạn không thể sử dụng console.info
, console.error
hoặc các hàm khác trong thao tác Chạy mã.
Ví dụ
Bạn có thể tìm ví dụ về thao tác Chạy mã trong Kho ví dụ về Flow.
Hạn chế
Thao tác Chạy mã có những hạn chế sau:
- Mã của bạn không thể nhập mô-đun.
- Mã của bạn không thể thực hiện lệnh gọi http (
fetch
). - Không thể sử dụng hàm ngẫu nhiên và dựa trên thời gian. Có thể truyền vào dữ liệu ngày như
scheduledAt
hoặccreatedAt
dưới dạng dữ liệu đầu vào. - Console.log không ghi vào bảng điều khiển của trình duyệt.
Ngoài ra, các giới hạn sau sẽ áp dụng:
- Truy vấn dữ liệu đầu vào bị giới hạn ở 5000 ký tự.
- Lược đồ dữ liệu đầu ra bị hạn chế ở mức 5000 ký tự.
- Tải trọng dữ liệu đầu ra và thông tin đầu ra của Console.log bị giới hạn ở mức tổng cộng 50 kb.
- Mã không được vượt quá 50000 ký tự.
- Tổng thời gian triển khai bị giới hạn ở 5 giây.
- Mức sử dụng bộ nhớ bị giới hạn ở 10MB.
Lộ trình
Đội ngũ Flow dự định sẽ bổ sung chức năng cho thao tác Chạy mã dần dần. Bảng dưới đây nêu ra những cải tiến được lên kế hoạch thực hiện và ngày có hiệu lực dự kiến.
Cải tiến | Mô tả | Thời điểm giao hàng ước tính |
---|---|---|
Đăng nhập | Sử dụng "console.log" để xuất dữ liệu vào Nhật ký lần chạy cho mục đích khắc phục sự cố. | Xong. |
Lệnh gọi API bên ngoài | Sử dụng tính năng tìm nạp của JavaScript để gọi API. | Quý 3 năm 2024 |
Ý kiến đóng góp
Thao tác Chạy mã là loại bước mới trong Shopify Flow. Nếu bạn có ý kiến đóng góp và thắc mắc, vui lòng bình luận vào bài viết cộng đồng Flow này.