## Query 태스크의 SQL 에서 변수 사용

"시나리오 실행 컨텍스트 데이타(context data)"를 사용하기 위해서는 ${변수접근자} 형식으로 작성할 수 있다.

- SQL을 실행하는 코드에는 다음 5가지의 [스크립트 내장변수](../concept/script-internal-variables.md)가 제공된다

  - domain : 시나리오가 실행중인 테넌시 정보
    - name: 도메인 이름
    - description: 도메인 설명
    - timezone : 도메인 타임존
    - attributes: 도메인 속성들 (시스템 수퍼유저가 도메인에 대한 커스텀 속성을 지정할 수 있다. - 예를 들어, 회사이름, 주소, 공장코드, 대표자명 등)
  - user : 시나리오를 요청한 유저 정보 (스케쥴러 등 시스템에 의해 실행되는 경우에는 사용자가 없을 수 있다.)
    - name
    - email
    - userType
  - lng : 시나리오를 요청한 유저 브라우저의 사용 언어(en-US, ko-KR, ..)
  - variables : 시나리오 호출 시점에 호출자로부터 전달받은 오브젝트
  - data: 시나리오 실행과정에 생성된 각 스텝의 결과 데이타

- 주의 : 변수의 타입에 맞춰서 문자열인 경우에는 '(single quotation)' 으로 감싸주어야 한다. 숫자형은 감싸지 않아도 된다.

```
# SQL 예시

Select * from LOT
where product='${variables.search.product}' // variables : 시나리오 입력변수
  and operation='${data.lot.operation}' // data : 시나리오 실행 데이타
  and factory='${domain.attributes.factory}' // domain : 현재 테넌시 정보
```
