# GraphQL クエリタスク

これはサーバーから提供される GraphQL クエリ API を呼び出すタスクです。クエリを書く際、変数の処理は 2 つの方法で行うことができ、方法 2 の使用を推奨しています。

方法 1：データや変数を含むシナリオコンテキストから変数を使用できます。これには[スクリプト内部

変数](../concept/script-internal-variables.md)も含まれます。この方法は文字列変数を適用するのに適しています。

```graphql
query {
  fetchWorkOrderHistory(fromDate: "${this.variables.fromDate}", toDate: "${this.variables.toDate}") {
    ...
  }

  searchObjectWithTag(tag: "${this.data.tag}") {
    ...
  }
}
```

方法 2：`variables`で使用する変数を指定し、GraphQL 変数の処理方法を使用します。`variables`の値は、シナリオコンテキスト内のデータへのアクセッサとして指定できます。この方法はオブジェクトタイプの変数を適用するのに適しています。

```graphql
query($filters: [Filter!], $sortings: [Sorting!], $pagination: Pagination, tag: String!) {
  boards(filters: $filters, sortings: $sortings, pagination: $pagination) {
    ...
  }

  searchObjectWithTag(tag: $tag) {
    ...
  }
}
```
