flex-ax CLI를 통해 SQL 쿼리를 실행하여 결재/근태/사용자 데이터를 조회한다. Triggers: "결재 현황", "휴가 조회", "사용자 검색", "데이터 조회"
사용자가 flex HR 데이터를 조회하려 할 때. 결재 문서, 근태/휴가, 사용자 정보 등.
flex-ax query 'SQL' 명령만 사용하여 데이터를 조회한다.# 쿼리 실행 — 결과는 JSON 배열로 출력
flex-ax query 'SELECT * FROM users LIMIT 5'
# 스키마 확인이 필요할 때
flex-ax query "SELECT name FROM sqlite_master WHERE type='table'"
flex-ax query "PRAGMA table_info(users)"
flex-ax query로 테이블 목록/컬럼 확인부터flex-ax query 'SQL' 실행 (read-only)# 사용자 검색
flex-ax query "SELECT * FROM users WHERE name LIKE '%이름%'"
# 특정 사용자의 결재 문서
flex-ax query "SELECT i.document_number, t.name as template, i.status, i.drafted_at
FROM instances i
JOIN templates t ON i.template_id = t.id
JOIN users u ON i.drafter_id = u.id
WHERE u.name LIKE '%이름%'
ORDER BY i.drafted_at DESC"
# 근태/휴가 현황
flex-ax query "SELECT u.name, a.type, a.date_from, a.date_to, a.days, a.status
FROM attendance a
JOIN users u ON a.user_id = u.id
WHERE a.date_from >= '2026-01-01'
ORDER BY a.date_from"
# 결재 대기 문서 (특정 결재자)
flex-ax query "SELECT i.document_number, t.name as template, u.name as drafter
FROM approval_lines al
JOIN instances i ON al.instance_id = i.id
JOIN templates t ON i.template_id = t.id
JOIN users u ON i.drafter_id = u.id
WHERE al.approver_id = (SELECT id FROM users WHERE name LIKE '%이름%')
AND al.status = 'PENDING'"
# 필드값 검색 (EAV 구조)
flex-ax query "SELECT * FROM field_values WHERE field_name = '출장유형' AND value_text LIKE '%국내출장%'"
# JSON 결과를 CSV로 변환하여 저장
flex-ax query "SELECT u.name, i.document_number, t.name as template, fv.value_number as amount, fv.currency
FROM instances i
JOIN users u ON i.drafter_id = u.id
JOIN templates t ON i.template_id = t.id
LEFT JOIN field_values fv ON fv.instance_id = i.id AND fv.field_name LIKE '%금액%'
WHERE t.category = '비용 지급 요청'
ORDER BY i.drafted_at DESC" > /tmp/result.json
# JSON → CSV 변환 (python or jq)
python3 -c "
import json, csv, sys
data = json.load(sys.stdin)
if data:
w = csv.DictWriter(sys.stdout, fieldnames=data[0].keys())
w.writeheader()
w.writerows(data)
" < /tmp/result.json > expense-report.csv
flex-crawl 안내