コードを実行
[コードを実行する] アクションでは、JavaScriptが実行されます。ワークフローの前のステップに関するデータを [コードを実行する] アクションの入力として渡し、後に続くステップで使用する値を返します。
フィールド
[コードを実行] アクションには、次のフィールドが含まれます。
フィールド | 説明 |
---|---|
入力 | 必須です。[コードを実行する] アクションへの入力として、前のステップのデータを使用するためのGraphQLクエリを作成します。 |
出力 | 必須です。アクションによって返されるデータ表現であり、GraphQLのスキーマ定義言語 (SDL) を使用して定義されます。 |
コード | 必須です。[コードを実行する] アクションによって実行されるJavaScriptです。 |
入力データ
入力データは、[コードを実行する] アクションの前に発生するステップから渡されます。このデータを組み込むには、[入力] フィールドにGraphQLクエリを記述します。クエリから返されるデータは、export default
でマークされた関数に対するinput
引数として使用できます。クエリにおけるページングの処理やedges
およびnodes
の使用は、Flowによって処理されるため、自分で処理する必要はありません。
注文メモと項目のタイトルを取得するための入力例:
このデータは、以下のコードで使用できるinput
変数に変換されます。
入力は、以下の関数の署名によって構造分解することもできます。
出力データ
[コードを実行する] アクションでは、カスタムデータを返すことができます。コードが返すデータのタイプを定義するには、[出力] フィールドとGraphQLのスキーマ定義言語 (SDL) を使用します。たとえば、giftMessage
という文字列とtotalGifts
という番号を返すには、以下のコードを使用します。
コメントは任意ですが、Flow UIでデータを記述するために使用されます。このデータをJavaScriptコードで出力するために、次のタイプと一致するオブジェクトを返します。
さらに複雑なデータを返すカスタムタイプを定義することもできます。たとえば、message
という文字列およびamount
という番号を含む、Gift
というタイプを返すには、以下のコードを使用します。
このアクションに続くステップでこのデータにアクセスするには、[コードを実行する] アクションの設定で定義したOutput
スキーマに従って入力されるRun codeという変数を使用します。この変数は、条件とアクションの両方で使用できます。
例
コード実行アクションの例は、Flowのリポジトリ例で確認できます。
制限事項
[コードを実行する] アクションには、以下の制限があります。
- コードでモジュールをインポートすることはできません。
- コードでhttpコール (
fetch
) を実行することはできません。 - コードで
console.log
を使用することはできません。 - ランダムな機能やクロックベースの機能を使用することはできません。
scheduledAt
やcreatedAt
などの日付データは、インプットとしてパスされます。
さらに、以下の制限が適用されます。
- 入力データのクエリの上限は5000文字です。
- 出力データのスキーマの上限は5000文字です。
- 出力データのペイロードの上限は50kbです。
- コードの長さの上限は50000文字です。
- 実行時間の合計の上限は5秒です。
- メモリ使用量の上限は10MBです。
ロードマップ
今後、Flowチームは、[コードを実行する] アクションの機能を追加していく予定です。次の表では、予定されている改善内容とその実行日程について概説しています。
改善内容 | 説明 | 配達予定 |
---|---|---|
バグ修正 | バグ修正とクリーンアップ | 2024年2月 |
ログ | 'console.log'を使用して、トラブルシューティングのために実行ログにデータを出力します。 | 2024年4月上旬 |
外部APIコール | JavaScriptのfetchを使用してAPIを呼び出します。 | 2024年第3四半期 |
フィードバック
[コードを実行する] アクションは、Shopify Flowにおけるステップの新しいタイプです。フィードバックや質問がある場合は、Flowコミュニティのこちらの投稿にコメントしてください。