page no. 131112665
📖 이 문서에서 다루는 내용
i-AUD 의 JScript 에서 ServerScript 를 호출하는 두 가지 API - RunScript 와 RunScriptEx 의 사용법을 설명합니다.
이럴 때 이 문서를 읽어보세요:
- 🗄️ DB 조회·저장 로직을 서버에서 실행하고 싶을 때
- 📧 메일 발송, 파일 업로드처럼 브라우저에서 직접 할 수 없는 작업을 위임할 때
- 🔧 여러 보고서에서 공통으로 쓰는 서버 로직을 설계할 때
🔍 두 메서드의 차이
RunScript 와 RunScriptEx 는 거의 동일하지만, 파라미터 전달 여부가 핵심 차이입니다.RunScript RunScriptEx 파라미터 전달 ❌ 불가능 ✅ params 객체로 전달 사용 시기 전달할 파라미터가 없거나 전역 파라미터만 사용 시 검색 조건, 처리 대상 등 추가 값을 서버에 넘길 때 📐 API 시그니처
RunScript / RunScriptEx// 파라미터 없이 호출 Matrix.RunScript(gridNames, scriptName, function(p) { if(p.Success == false){ Matrix.Alert(p.Message); return } var ds = p.DataSet; }); //파라미터와 함께 호출 Matrix.RunScriptEx("GridName", "ServiceName",{"VS_CODE":"codevalue","VS_NAME":"name value"}, function(p) { if(p.Success == false){ Matrix.Alert(p.Message); return } var ds = p.DataSet; });
파라미터 요약파라미터 타입 필수 설명 gridNames string | string[] ✅ 서버로 전송할 그리드 이름 ( 없으면 "" ) scriptName string ✅ 실행할 서버 스크립트 이름 params object RunScriptEx만 서버에 전달할 파라미터 callBack function ✅ 서버 응답 처리 콜백 🎯 scriptName 지정 방식
scriptName 은 어떤 서버스크립트를 실행할지 지정합니다. 세 가지 형식이 있습니다.
🔑 핵심 요약형식 예시 탐색 위치 "스크립트명" "doSave" 🏠 현재 보고서의 ServerScript "@스크립트명" "@COMMON_UTIL" 🏠 현재 보고서의 ServerScript "@보고서코드@스크립트명" "@RPT_COMMON@SEND_MAIL" 📂 다른 보고서의 ServerScript
📊 gridNames — 그리드 데이터 전송
DataGrid에서 변경된 데이터를 서버로 함께 넘길 때 지정합니다.. 전송할 데이터가 없으면 빈 문자열 ("") 을 사용합니다.
📦 params — 파라미터 전달
서버 스크립트에 전달할 값을 객체 형태로 지정합니다.🔄 콜백 처리
서버 처리가 끝나면 콜백 함수가 실행됩니다. 콜백 인자 p 는 세 속성을 가집니다.속성 타입 설명 p.Success boolean ✅/❌ 서버 처리 성공 여부 p.Message string 💬 실패 시 오류 메시지 p.DataSet DataSet 📦 서버에서 반환한 데이터셋 🏗️ 공통 서버 스크립트 패턴
여러 보고서에서 동일하게 필요한 로직(메일 발송, 파일 업로드, 사용자 검증 등)을 하나의 전용 보고서에 모아두고 '@보고서코드@스크립트명' 으로 호출하는 방식입니다.
📂 전체 구조 예시[공통 서비스 보고서 RPT_COMMON]
ServerScript/
@SEND_MAIL.ts ← 이름이 @로 시작 → 서버에 @SEND_MAIL.jsx로 저장
@UPLOAD_FILE.ts ← 서버에 @UPLOAD_FILE.jsx로 저장
@VALIDATE_USER.ts ← 서버에 @VALIDATE_USER.jsx로 저장[업무 보고서 RPT_EMP_MGMT]
→ Matrix.RunScriptEx("", "@RPT_COMMON@SEND_MAIL", ...)
→ Matrix.RunScriptEx("", "@RPT_COMMON@UPLOAD_FILE", ...)
[업무 보고서 RPT_ORDER_MGMT]
→ Matrix.RunScriptEx("", "@RPT_COMMON@SEND_MAIL", ...)
→ Matrix.RunScriptEx("", "@RPT_COMMON@VALIDATE_USER", ...)📎 공통 스크립트 include같은 보고서 또는 다른 위치의 스크립트를 현재 스크립트에 인라인으로 포함합니다.
예제 코드// 현재 보고서 폴더의 @COMMON_UTIL.jsx 를 포함 <% @include file="@COMMON_UTIL" %> // SERVER_SCRIPT 폴더 기준 절대 경로로 포함 <% @include file="/RPT_COMMON/@VALIDATE_USER" %>
❓ 자주 묻는 질문 (FAQ)
🔗 관련 문서
| 기능 정보 |
|
|
|
|
|
|
|
|---|---|---|---|---|---|---|---|
| 시작 버전 정보 | |||||||
