page no. 181338153
1 개요
Bulk Editor 는 여러 보고서의 설정, SQL, 스크립트를 한 번에 변경할 수 있는 관리자 도구입니다.
변경 내용을 실제로 적용하기 전에 미리 확인(Dry-Run) 할 수 있으며, 변경 시 원본 보고서를 자동으로 백업합니다.
필요한 경우 작업 단위로 변경 전 상태로 되돌릴 수 있습니다.
컬럼 정렬 통일, Connection Code 교체, 테이블명 변경처럼 여러 보고서에 동일한 변경 사항을 일괄 적용해야 하는 경우에 사용할 수 있습니다.
Bulk Editor 의 작업은 다음 순서로 진행합니다.
변경 및 복원
Bulk Editor 는 보고서를 변경하기 전에 결과를 미리 확인할 수 있으며, 실제 저장 시 원본 보고서를 자동으로 백업합니다.
| 기능 | 설명 |
|---|---|
| 미리 확인(Dry-Run) | 보고서를 저장하지 않고 변경될 내용만 확인합니다. 여러 번 실행해도 원본 보고서는 변경되지 않습니다. |
| 스크립트 검사 | 실행 전에 변환 스크립트의 오류를 확인합니다. |
| 자동 백업 | 변경 내용을 저장하기 전에 원본 보고서를 자동으로 백업합니다. |
| 변경 충돌 확인 | 작업 중 다른 사용자가 같은 보고서를 수정한 경우 저장하지 않고 해당 보고서를 오류로 표시합니다. |
| 되돌리기 | 마지막으로 저장한 작업을 메인 화면에서 변경 전 상태로 되돌릴 수 있습니다. |
| 복원 시 백업 | 되돌리기를 실행할 때 현재 상태도 자동으로 백업하여 필요한 경우 복원 이전 상태로 다시 되돌릴 수 있습니다. |
2 빠른 시작
Bulk Editor 는 다음 순서로 사용할 수 있습니다.
- 대상 선택 을 선택하여 변경할 보고서를 체크한 후 선택 추가 를 선택합니다.
- ② 변환 스크립트 영역에 transform(doc) 함수를 작성합니다. 처음 사용하는 경우 예제 에서 원하는 작업과 유사한 예제를 불러온 후 필요한 부분을 수정하는 것을 권장합니다.
- Dry-Run(저장 안 함) 을 선택하여 변경 내용을 미리 확인합니다. ③ 실행 결과 에서 보고서별 변경 전·후 내용을 확인할 수 있습니다.
- 변경 내용이 올바른지 확인한 후 ⚠ 실행 (저장) 을 선택하여 실제 보고서에 적용합니다.
- 적용한 내용을 되돌리려면 ↺ 방금 작업 되돌리기 를 사용합니다. 이전 작업의 백업을 확인하거나 복원하려면 백업 / 복원 을 사용합니다.
3 메인 화면
메인 화면에서는 작업 대상을 선택하고 변환 스크립트를 작성한 후, 변경 내용을 미리 확인하거나 실제 보고서에 적용할 수 있습니다.
📌 화면 구성
3.1 상단 도구 모음
상단 도구 모음에서는 Bulk Editor 의 주요 기능을 실행할 수 있습니다.
| 버튼 | 설명 |
|---|---|
| 도움말 | 변환 스크립트 작성 방법과 사용 예제를 확인합니다. |
| 백업 / 복원 | 이전 작업의 백업 내역을 확인하거나 보고서를 변경 전 상태로 복원합니다. |
| JSON 비교 | 변경 전·후 JSON을 비교하여 변환 스크립트를 생성합니다. |
| Dry-Run(저장 안 함) | 보고서를 저장하지 않고 변환 스크립트를 실행하여 변경될 내용을 확인합니다. |
| ⚠실행(저장) | 변경 내용을 확인한 후 원본 보고서를 백업하고 실제 보고서에 저장합니다. |
「대상 선택」, 「대상 비우기」는 상단 도구 모음이 아닌 ① 작업 대상 영역에서 사용할 수 있습니다.
3.2 작업 단계
화면 상단에는 현재 작업 진행 상태를 확인할 수 있도록 ①~④ 단계가 표시됩니다.
| 단계 | 설명 |
|---|---|
| ① 대상 선택 | 작업할 보고서를 선택한 상태 |
| ② 변환 스크립트 | 변환 스크립트가 작성된 상태 |
| ③ Dry-Run 검증 | 현재 선택한 보고서와 변환 스크립트로 Dry-Run을 완료한 상태 |
| ④ 실행 (저장) | 현재 선택한 보고서에 변경 내용을 저장한 상태 |
3.3 작업 대상
① 작업 대상 영역에서는 Bulk Editor로 변경할 보고서를 확인하고 선택할 수 있습니다.
| 항목 | 설명 |
|---|---|
| 선택 | 체크한 보고서만 Dry-Run 및 실행 대상에 포함됩니다. 보고서를 처음 추가하면 자동으로 선택되며, 저장이 완료된 보고서는 선택이 자동으로 해제됩니다. |
| 보고서 명 | 작업 대상 보고서의 이름을 표시합니다. |
| 상태 | 보고서별 처리 상태를 표시합니다. |
| 🔍 문서 구조 보기 | 해당 보고서의 문서 구조를 확인합니다. |
| 🎨 디자이너 실행 | 해당 보고서를 i-AUD Designer에서 엽니다. |
보고서의 처리 상태는 다음과 같이 표시됩니다.
| 상태 | 설명 |
|---|---|
대기 | 아직 작업을 실행하지 않은 상태 |
처리 중... | 작업을 실행하고 있는 상태 |
변경 없음 | 변환 스크립트를 실행했지만 변경되는 내용이 없는 상태 |
변경 예정 | Dry-Run 결과 변경될 내용이 확인된 상태 |
저장 완료 | 변경 내용이 정상적으로 저장된 상태 |
오류 | 변환 스크립트 실행 중 오류가 발생한 상태 |
저장 실패 | 변경 내용을 보고서에 저장하지 못한 상태 |
작업 대상 영역 상단에는 전체 보고서 수와 현재 선택된 보고서 수가 표시됩니다.
등록된 작업 대상이 없는 경우에는 +대상 선택 을 선택하여 보고서를 추가할 수 있습니다.
4 작업 대상 선택
대상 선택 을 선택하면 폴더와 보고서 목록을 확인할 수 있는 팝업이 열립니다.
- 왼쪽 폴더 영역에서 작업할 폴더를 선택합니다.
- 선택한 폴더에 포함된 보고서가 오른쪽 목록에 표시됩니다.
- 필요한 경우 검색창에 보고서명 또는 보고서 코드를 입력하여 목록을 검색합니다.
- 작업 대상으로 추가할 보고서를 체크합니다.
- 선택 N건 추가 를 선택하여 체크한 보고서를 작업 대상에 추가합니다.
- 다른 폴더의 보고서를 추가하려면 같은 방법으로 반복합니다. 작업 대상 선택이 끝나면 닫기를 선택합니다.
검색 중에도 이미 체크한 보고서는 선택 상태가 유지됩니다.
여러 폴더에서 보고서를 추가할 수 있으며, 이미 작업 대상에 추가된 보고서는 중복으로 추가되지 않습니다.
5 변환 스크립트 작성
변환 스크립트는 transform(doc) 함수에 작성합니다. doc 에는 작업 대상 보고서의 전체 문서 정보가 JSON 형태로 전달되며, 선택한 보고서마다 transfomr(doc) 함수가 한 번씩 실행됩니다.
SQL 과 서버스크립트도 doc 을 통해 조회하고 변경할 수 있습니다.
암호화된 항목은 편집 가능한 상태로 전달되며, 저장할 때 자동으로 다시 암호화되므로 스크립트에서 암·복호화를 직접 처리할 필요는 없습니다.
처음 사용하는 경우에는 편집기 오른쪽 위 「예제」에서 작업과 유사한 예제를 불러와 필요한 조건과 값만 수정하는 것을 권장합니다.
기본 스크립트
편집기를 처음 열면 다음 스크립트가 기본으로 제공됩니다.
반환값과 처리 결과
transform(doc) 의 반환값과 실제 변경 여부에 따라 보고서의 처리 결과가 결정됩니다.
| 경우 | 처리 결과 |
|---|---|
return true + 문서 변경 | 저장 대상이 됩니다. Dry-Run에서는 변경 예정, 실행 시에는 백업 후 저장됩니다. |
return false | 해당 보고서를 저장하지 않습니다. |
| 변경된 내용 없음 | 반환값과 관계없이 저장하지 않습니다. |
| 함수 실행 중 오류 발생 | 해당 보고서는 오류로 처리하고 다음 보고서의 작업을 계속합니다. |
5.1 기본 함수
transform(doc) 안에서는 다음 함수를 별도로 선언하지 않고 사용할 수 있습니다.
| 함수 | 설명 |
|---|---|
walkAllControls(doc, cb) | 모든 폼의 컨트롤을 순회합니다. 컨테이너 안에 포함된 컨트롤도 함께 탐색하며 cb(ctl, form)을 호출합니다. |
eachOlapField(doc, cb) | OlapGrid의 iOLAPView.Fields를 순회하며 cb(fld, grid, form)을 호출합니다. |
log(메시지) | ③ 실행 결과에 메시지를 기록합니다. 변경된 항목이나 확인할 값을 기록할 때 사용합니다. |
walkAllControls 가 탐색하는 컨테이너
| 컨테이너 | 하위 컨트롤 위치 |
|---|---|
| Group, AddIn | ChildElements[] |
| Tab | TabItems[].Controls[] |
| iGrid (MX-Grid) | Controls[] |
| TableLayout | Rows[].Cells[].InnerControl |
OLAP 필드 주요 속
| 속성 | 값 |
|---|---|
fld.Area | 0 숨김 · 1 행 · 2 열 · 3 필터 · 4 데이터 |
fld.Category | 1 디멘젼 · 2 메저 |
fld.CreateType | 0 일반 필드 · 1 가상 필드(#MEASURES_HEADER# 등) |
| 정렬 | fld.TextAlignment / fld.HeaderAlignment |
일반 필드만 변경하려면 fld.CreateType === 0 조건을 사용할 수 있습니다.
5.2 문서 구조
doc 은 보고서의 폼, 컨트롤, 데이터소스, 스크립트 정보를 포함합니다.
SQL과 서버 스크립트는 편집 가능한 문자열로 전달됩니다. 암호화되어 있던 항목은 저장할 때 자동으로 다시 암호화되므로 변환 스크립트에서 별도로 처리할 필요가 없습니다.
보고서의 실제 속성 이름과 값은 작업 대상의 🔍 문서 구조 보기에서 확인할 수 있습니다.
5.3 작성 시 참고사항
기본값은 속성을 삭제하여 적용
일부 속성은 값이 없는 상태가 기본값을 의미합니다.
예를 들어 정렬 값은 'start'(왼쪽), 'center', 'end'(오른쪽)를 사용할 수 있지만, 왼쪽 정렬은 기본값이므로 'start'를 지정하지 않고 해당 속성을 삭제합니다.
delete col.TextPosition; // 왼쪽 정렬(기본값) col.TextPosition = 'end'; // 오른쪽 정렬 delete ctl.Visible; // 표시(기본값) ctl.Visible = false; // 숨김
컨트롤에 따라 정렬 속성이 다름
| 대상 | 본문 정렬 | 헤더 정렬 |
|---|---|---|
| 그리드 컬럼 | col.TextPosition | col.HeaderPosition |
| OLAP 필드 | fld.TextAlignment | fld.HeaderAlignment |
색상 변경 시 Style.Type 확인
컨트롤의 색상을 직접 변경하려면 Style.Type에 따라 적용 방식을 확인해야 합니다.
Style.Type | 의미 | 색상 적용 |
|---|---|---|
0 | 컨트롤 기본 스킨 | 직접 지정한 색상이 적용되지 않음 |
1 | 공통 BoxStyle 사용 | Style.BoxStyle에 스타일 이름 지정 |
2 | 직접 지정 | Style.Background.Color 등의 속성 사용 |
색상을 변경했지만 화면에 적용되지 않는 경우 Style.Type이 0 또는 1인지 확인하세요.
작성 시 주의사항
- 문서 전체 문자열을 변경하는 경우 속성 이름까지 변경될 수 있으므로 다른 값과 겹치지 않는 구체적인 문자열을 사용하세요.
- 정규식을 문자열로 작성하는 경우 역슬래시(
\)를 두 번 입력해야 합니다. 예:'\\bNAME\\b' - SQL에 조건을 추가하는 경우
GROUP BY,ORDER BY,UNION,WHERE등의 SQL 구조를 확인하여 적절한 위치에 추가하세요. 변경 후에는 Dry-Run으로 SQL을 확인하는 것을 권장합니다. - 그리드 컬럼을 추가하는 경우 조회 SQL에도 해당 컬럼이 포함되어 있어야 데이터가 표시됩니다.
- 기존 문자열에 내용을 추가하는 경우 스크립트를 반복 실행하면 같은 내용이 중복될 수 있습니다. 적용 여부를 확인할 수 있는 마커를 사용하는 것을 권장합니다. (→ 예제 ⑨)
중복 적용 방지 예제
var MARKER = '/* @BULK:myFix */';
if (script.indexOf(MARKER) > -1) {
log('이미 적용됨');
return false;
}
5.4 예제 스크립트
편집기 오른쪽 위 「예제」 에서 자주 사용하는 변환 작업의 예제 스크립트를 불러올 수 있습니다.
예제를 선택하면 확인 후 현재 편집기의 내용이 선택한 예제로 변경됩니다. 목록에서 원하는 예제를 검색할 수도 있습니다.
| 예제 | 용도 |
|---|---|
| ① 데이터그리드 컬럼 속성 변경 | 조건에 맞는 그리드 컬럼의 정렬, 너비, 캡션 등을 변경 |
| ② OLAP 그리드 필드 속성 변경 | OLAP 필드의 포맷, 정렬, 너비 등을 변경 |
| ③ SQL 테이블명 변경 | 데이터소스 SQL에서 특정 테이블명을 변경 |
| ④ 서버 스크립트 문자열 변경 | 서버 스크립트의 특정 문자열을 변경 |
| ⑤ 컨트롤 공통 속성 변경 | 특정 유형의 컨트롤 속성을 일괄 변경 |
| ⑥ 컨트롤 스타일 변경 | 컨트롤에 공통 스타일(BoxStyle)을 적용 |
| ⑦ 데이터소스 접속 코드 변경 | 데이터소스의 DB 접속 코드를 일괄 변경 |
| ⑧ 클라이언트 스크립트 문자열 변경 | 클라이언트 스크립트의 특정 문자열을 변경 |
| ⑨ 클라이언트 스크립트에 함수 추가 | 중복 여부를 확인한 후 공통 함수를 추가 |
| ⑩ 문서 전체 문자열 변경 | 보고서 전체에서 특정 경로 또는 식별자 등을 변경 |
| ⑪ 문서 구조 확인 | 보고서를 변경하지 않고 폼, 컨트롤, 데이터소스 구조를 결과에 출력 |
| ⑫ BoxStyle 변경 | 특정 BoxStyle을 사용하는 컨트롤을 다른 스타일로 변경 |
| ⑬ 컨트롤 폰트 통일 | 지정한 유형의 컨트롤에 동일한 폰트와 크기를 적용 |
| ⑭ 그리드 컬럼 추가·삭제 | 지정한 그리드의 컬럼을 추가하거나 삭제 |
| ⑮ 데이터소스에 세션 파라미터 추가 | 데이터소스에 세션 파라미터와 SQL 조회 조건을 추가 |
| ⑯ 정규식 문자열 변경 | 정규식을 이용하여 지정한 범위의 문자열을 변경 |
| ⑰ 미사용 데이터소스 확인 | 사용되지 않는 것으로 판단되는 데이터소스를 결과에 표시 |
| ⑱ 컨트롤 이름 규칙 확인 | 컨트롤 이름이 유형별 접두사 규칙에 맞는지 확인 |
※ 예제는 추가되거나 삭제될 수 있습니다.
6 Dry-Run 과 실행
변환 스크립트를 작성한 후 Dry-Run으로 변경 내용을 미리 확인하고, 결과가 올바르면 실행하여 실제 보고서에 적용합니다.
Dry-Run 과 실행은 선택된 보고서를 한 건씩 처리하며, 실제 저장 여부에 차이가 있습니다.
- 변환 스크립트에 오류가 있는지 확인합니다. 오류가 있으면 작업을 시작하지 않습니다.
- 선택한 보고서에 transform(doc) 을 실행합니다.
- 변경된 내용이 있는지 확인합니다. 변경 내용이 없거나 return false 인 보고서는 저장 대상에서 제외됩니다.
- 변경된 내용이 있으면 ③ 실행 결과에 변경 전·후 내용을 표시합니다.
- Dry-Run 에서는 보고서를 저장하지 않고 변경 예정으로 표시합니다. 실행에서는 원본 보고서를 백업한 후 변경 내용을 저장합니다.
- 작업이 완료되면 변경, 스킵, 오류 건수를 확인할 수 있습니다.
6.1 실행 결과 확인
③ 실행 결과에서는 보고서별 변경 내용과 처리 상태를 확인할 수 있습니다.
변경 내용은 다음과 같이 변경된 위치, 이전 값, 변경 후 값으로 표시됩니다.
경로 = 이전값 ⇒ 새값
보고서 한 건에서 변경된 항목이 많은 경우 최대 30건까지 표시되며, 나머지는 ... 외 n건 으로 표시됩니다.
| 상태 | 설명 |
|---|---|
변경 예정 | Dry-Run에서 변경 내용이 확인된 상태입니다. 실제 보고서에는 저장되지 않습니다. |
저장 완료 | 변경 전 원본을 백업한 후 변경 내용이 정상적으로 저장된 상태입니다. |
변경 없음 / 스킵 | 변경된 내용이 없거나 transform(doc)이 false를 반환하여 저장하지 않은 상태입니다. |
조회 실패 | 작업 대상 보고서를 불러오지 못한 상태입니다. |
오류 | 변환 스크립트 실행 중 오류가 발생한 상태입니다. |
저장 실패 | 변경 내용을 저장하지 못한 상태입니다. 다른 사용자의 동시 수정으로 인한 충돌도 포함됩니다. |
log() 로 기록한 내용과 변경된 항목의 상세 내용도 실행 결과에서 확인할 수 있습니다.
6.2 결과 필터
실행 결과 상단에는 처리 결과별 건수와 필터
- Dry-Run 후에는 변경 예정, 변경 없음 등의 결과가 표시됩니다.
| 기능 정보 |
|
|
|
|
|
|
|
|---|---|---|---|---|---|---|---|
| 시작 버전 정보 |
| ||||||
page no. 181338153
1 개요
Bulk Editor 는 여러 보고서의 설정, SQL, 스크립트를 한 번에 변경할 수 있는 관리자 도구입니다.
변경 내용을 실제로 적용하기 전에 미리 확인(Dry-Run) 할 수 있으며, 변경 시 원본 보고서를 자동으로 백업합니다.
필요한 경우 작업 단위로 변경 전 상태로 되돌릴 수 있습니다.
컬럼 정렬 통일, Connection Code 교체, 테이블명 변경처럼 여러 보고서에 동일한 변경 사항을 일괄 적용해야 하는 경우에 사용할 수 있습니다.
Bulk Editor 의 작업은 다음 순서로 진행합니다.
변경 및 복원
Bulk Editor 는 보고서를 변경하기 전에 결과를 미리 확인할 수 있으며, 실제 저장 시 원본 보고서를 자동으로 백업합니다.
| 기능 | 설명 |
|---|---|
| 미리 확인(Dry-Run) | 보고서를 저장하지 않고 변경될 내용만 확인합니다. 여러 번 실행해도 원본 보고서는 변경되지 않습니다. |
| 스크립트 검사 | 실행 전에 변환 스크립트의 오류를 확인합니다. |
| 자동 백업 | 변경 내용을 저장하기 전에 원본 보고서를 자동으로 백업합니다. |
| 변경 충돌 확인 | 작업 중 다른 사용자가 같은 보고서를 수정한 경우 저장하지 않고 해당 보고서를 오류로 표시합니다. |
| 되돌리기 | 마지막으로 저장한 작업을 메인 화면에서 변경 전 상태로 되돌릴 수 있습니다. |
| 복원 시 백업 | 되돌리기를 실행할 때 현재 상태도 자동으로 백업하여 필요한 경우 복원 이전 상태로 다시 되돌릴 수 있습니다. |
2 빠른 시작
Bulk Editor 는 다음 순서로 사용할 수 있습니다.
- 대상 선택 을 선택하여 변경할 보고서를 체크한 후 선택 추가 를 선택합니다.
- ② 변환 스크립트 영역에 transform(doc) 함수를 작성합니다. 처음 사용하는 경우 예제 에서 원하는 작업과 유사한 예제를 불러온 후 필요한 부분을 수정하는 것을 권장합니다.
- Dry-Run(저장 안 함) 을 선택하여 변경 내용을 미리 확인합니다. ③ 실행 결과 에서 보고서별 변경 전·후 내용을 확인할 수 있습니다.
- 변경 내용이 올바른지 확인한 후 ⚠ 실행 (저장) 을 선택하여 실제 보고서에 적용합니다.
- 적용한 내용을 되돌리려면 ↺ 방금 작업 되돌리기 를 사용합니다. 이전 작업의 백업을 확인하거나 복원하려면 백업 / 복원 을 사용합니다.
3 메인 화면
메인 화면에서는 작업 대상을 선택하고 변환 스크립트를 작성한 후, 변경 내용을 미리 확인하거나 실제 보고서에 적용할 수 있습니다.
📌 화면 구성
3.1 상단 도구 모음
상단 도구 모음에서는 Bulk Editor 의 주요 기능을 실행할 수 있습니다.
| 버튼 | 설명 |
|---|---|
| 도움말 | 변환 스크립트 작성 방법과 사용 예제를 확인합니다. |
| 백업 / 복원 | 이전 작업의 백업 내역을 확인하거나 보고서를 변경 전 상태로 복원합니다. |
| JSON 비교 | 변경 전·후 JSON을 비교하여 변환 스크립트를 생성합니다. |
| Dry-Run(저장 안 함) | 보고서를 저장하지 않고 변환 스크립트를 실행하여 변경될 내용을 확인합니다. |
| ⚠실행(저장) | 변경 내용을 확인한 후 원본 보고서를 백업하고 실제 보고서에 저장합니다. |
「대상 선택」, 「대상 비우기」는 상단 도구 모음이 아닌 ① 작업 대상 영역에서 사용할 수 있습니다.
3.2 작업 단계
화면 상단에는 현재 작업 진행 상태를 확인할 수 있도록 ①~④ 단계가 표시됩니다.
| 단계 | 설명 |
|---|---|
| ① 대상 선택 | 작업할 보고서를 선택한 상태 |
| ② 변환 스크립트 | 변환 스크립트가 작성된 상태 |
| ③ Dry-Run 검증 | 현재 선택한 보고서와 변환 스크립트로 Dry-Run을 완료한 상태 |
| ④ 실행 (저장) | 현재 선택한 보고서에 변경 내용을 저장한 상태 |
3.3 작업 대상
① 작업 대상 영역에서는 Bulk Editor로 변경할 보고서를 확인하고 선택할 수 있습니다.
| 항목 | 설명 |
|---|---|
| 선택 | 체크한 보고서만 Dry-Run 및 실행 대상에 포함됩니다. 보고서를 처음 추가하면 자동으로 선택되며, 저장이 완료된 보고서는 선택이 자동으로 해제됩니다. |
| 보고서 명 | 작업 대상 보고서의 이름을 표시합니다. |
| 상태 | 보고서별 처리 상태를 표시합니다. |
| 🔍 문서 구조 보기 | 해당 보고서의 문서 구조를 확인합니다. |
| 🎨 디자이너 실행 | 해당 보고서를 i-AUD Designer에서 엽니다. |
보고서의 처리 상태는 다음과 같이 표시됩니다.
| 상태 | 설명 |
|---|---|
대기 | 아직 작업을 실행하지 않은 상태 |
처리 중... | 작업을 실행하고 있는 상태 |
변경 없음 | 변환 스크립트를 실행했지만 변경되는 내용이 없는 상태 |
변경 예정 | Dry-Run 결과 변경될 내용이 확인된 상태 |
저장 완료 | 변경 내용이 정상적으로 저장된 상태 |
오류 | 변환 스크립트 실행 중 오류가 발생한 상태 |
저장 실패 | 변경 내용을 보고서에 저장하지 못한 상태 |
작업 대상 영역 상단에는 전체 보고서 수와 현재 선택된 보고서 수가 표시됩니다.
등록된 작업 대상이 없는 경우에는 +대상 선택 을 선택하여 보고서를 추가할 수 있습니다.
4 작업 대상 선택
대상 선택 을 선택하면 폴더와 보고서 목록을 확인할 수 있는 팝업이 열립니다.
- 왼쪽 폴더 영역에서 작업할 폴더를 선택합니다.
- 선택한 폴더에 포함된 보고서가 오른쪽 목록에 표시됩니다.
- 필요한 경우 검색창에 보고서명 또는 보고서 코드를 입력하여 목록을 검색합니다.
- 작업 대상으로 추가할 보고서를 체크합니다.
- 선택 N건 추가 를 선택하여 체크한 보고서를 작업 대상에 추가합니다.
- 다른 폴더의 보고서를 추가하려면 같은 방법으로 반복합니다. 작업 대상 선택이 끝나면 닫기를 선택합니다.
검색 중에도 이미 체크한 보고서는 선택 상태가 유지됩니다.
여러 폴더에서 보고서를 추가할 수 있으며, 이미 작업 대상에 추가된 보고서는 중복으로 추가되지 않습니다.
5 변환 스크립트 작성
변환 스크립트는 transform(doc) 함수에 작성합니다. doc 에는 작업 대상 보고서의 전체 문서 정보가 JSON 형태로 전달되며, 선택한 보고서마다 transfomr(doc) 함수가 한 번씩 실행됩니다.
SQL 과 서버스크립트도 doc 을 통해 조회하고 변경할 수 있습니다.
암호화된 항목은 편집 가능한 상태로 전달되며, 저장할 때 자동으로 다시 암호화되므로 스크립트에서 암·복호화를 직접 처리할 필요는 없습니다.
처음 사용하는 경우에는 편집기 오른쪽 위 「예제」에서 작업과 유사한 예제를 불러와 필요한 조건과 값만 수정하는 것을 권장합니다.
기본 스크립트
편집기를 처음 열면 다음 스크립트가 기본으로 제공됩니다.
반환값과 처리 결과
transform(doc) 의 반환값과 실제 변경 여부에 따라 보고서의 처리 결과가 결정됩니다.
| 경우 | 처리 결과 |
|---|---|
return true + 문서 변경 | 저장 대상이 됩니다. Dry-Run에서는 변경 예정, 실행 시에는 백업 후 저장됩니다. |
return false | 해당 보고서를 저장하지 않습니다. |
| 변경된 내용 없음 | 반환값과 관계없이 저장하지 않습니다. |
| 함수 실행 중 오류 발생 | 해당 보고서는 오류로 처리하고 다음 보고서의 작업을 계속합니다. |
5.1 기본 함수
transform(doc) 안에서는 다음 함수를 별도로 선언하지 않고 사용할 수 있습니다.
| 함수 | 설명 |
|---|---|
walkAllControls(doc, cb) | 모든 폼의 컨트롤을 순회합니다. 컨테이너 안에 포함된 컨트롤도 함께 탐색하며 cb(ctl, form)을 호출합니다. |
eachOlapField(doc, cb) | OlapGrid의 iOLAPView.Fields를 순회하며 cb(fld, grid, form)을 호출합니다. |
log(메시지) | ③ 실행 결과에 메시지를 기록합니다. 변경된 항목이나 확인할 값을 기록할 때 사용합니다. |
walkAllControls 가 탐색하는 컨테이너
| 컨테이너 | 하위 컨트롤 위치 |
|---|---|
| Group, AddIn | ChildElements[] |
| Tab | TabItems[].Controls[] |
| iGrid (MX-Grid) | Controls[] |
| TableLayout | Rows[].Cells[].InnerControl |
OLAP 필드 주요 속
| 속성 | 값 |
|---|---|
fld.Area | 0 숨김 · 1 행 · 2 열 · 3 필터 · 4 데이터 |
fld.Category | 1 디멘젼 · 2 메저 |
fld.CreateType | 0 일반 필드 · 1 가상 필드(#MEASURES_HEADER# 등) |
| 정렬 | fld.TextAlignment / fld.HeaderAlignment |
일반 필드만 변경하려면 fld.CreateType === 0 조건을 사용할 수 있습니다.
5.2 문서 구조
doc 은 보고서의 폼, 컨트롤, 데이터소스, 스크립트 정보를 포함합니다.
SQL과 서버 스크립트는 편집 가능한 문자열로 전달됩니다. 암호화되어 있던 항목은 저장할 때 자동으로 다시 암호화되므로 변환 스크립트에서 별도로 처리할 필요가 없습니다.
보고서의 실제 속성 이름과 값은 작업 대상의 🔍 문서 구조 보기에서 확인할 수 있습니다.
5.3 작성 시 참고사항
기본값은 속성을 삭제하여 적용
일부 속성은 값이 없는 상태가 기본값을 의미합니다.
예를 들어 정렬 값은 'start'(왼쪽), 'center', 'end'(오른쪽)를 사용할 수 있지만, 왼쪽 정렬은 기본값이므로 'start'를 지정하지 않고 해당 속성을 삭제합니다.
delete col.TextPosition; // 왼쪽 정렬(기본값) col.TextPosition = 'end'; // 오른쪽 정렬 delete ctl.Visible; // 표시(기본값) ctl.Visible = false; // 숨김
컨트롤에 따라 정렬 속성이 다름
| 대상 | 본문 정렬 | 헤더 정렬 |
|---|---|---|
| 그리드 컬럼 | col.TextPosition | col.HeaderPosition |
| OLAP 필드 | fld.TextAlignment | fld.HeaderAlignment |
색상 변경 시 Style.Type 확인
컨트롤의 색상을 직접 변경하려면 Style.Type에 따라 적용 방식을 확인해야 합니다.
Style.Type | 의미 | 색상 적용 |
|---|---|---|
0 | 컨트롤 기본 스킨 | 직접 지정한 색상이 적용되지 않음 |
1 | 공통 BoxStyle 사용 | Style.BoxStyle에 스타일 이름 지정 |
2 | 직접 지정 | Style.Background.Color 등의 속성 사용 |
색상을 변경했지만 화면에 적용되지 않는 경우 Style.Type이 0 또는 1인지 확인하세요.
작성 시 주의사항
- 문서 전체 문자열을 변경하는 경우 속성 이름까지 변경될 수 있으므로 다른 값과 겹치지 않는 구체적인 문자열을 사용하세요.
- 정규식을 문자열로 작성하는 경우 역슬래시(
\)를 두 번 입력해야 합니다. 예:'\\bNAME\\b' - SQL에 조건을 추가하는 경우
GROUP BY,ORDER BY,UNION,WHERE등의 SQL 구조를 확인하여 적절한 위치에 추가하세요. 변경 후에는 Dry-Run으로 SQL을 확인하는 것을 권장합니다. - 그리드 컬럼을 추가하는 경우 조회 SQL에도 해당 컬럼이 포함되어 있어야 데이터가 표시됩니다.
- 기존 문자열에 내용을 추가하는 경우 스크립트를 반복 실행하면 같은 내용이 중복될 수 있습니다. 적용 여부를 확인할 수 있는 마커를 사용하는 것을 권장합니다. (→ 예제 ⑨)
중복 적용 방지 예제
var MARKER = '/* @BULK:myFix */';
if (script.indexOf(MARKER) > -1) {
log('이미 적용됨');
return false;
}
5.4 예제 스크립트
편집기 오른쪽 위 「예제」 에서 자주 사용하는 변환 작업의 예제 스크립트를 불러올 수 있습니다.
예제를 선택하면 확인 후 현재 편집기의 내용이 선택한 예제로 변경됩니다. 목록에서 원하는 예제를 검색할 수도 있습니다.
| 예제 | 용도 |
|---|---|
| ① 데이터그리드 컬럼 속성 변경 | 조건에 맞는 그리드 컬럼의 정렬, 너비, 캡션 등을 변경 |
| ② OLAP 그리드 필드 속성 변경 | OLAP 필드의 포맷, 정렬, 너비 등을 변경 |
| ③ SQL 테이블명 변경 | 데이터소스 SQL에서 특정 테이블명을 변경 |
| ④ 서버 스크립트 문자열 변경 | 서버 스크립트의 특정 문자열을 변경 |
| ⑤ 컨트롤 공통 속성 변경 | 특정 유형의 컨트롤 속성을 일괄 변경 |
| ⑥ 컨트롤 스타일 변경 | 컨트롤에 공통 스타일(BoxStyle)을 적용 |
| ⑦ 데이터소스 접속 코드 변경 | 데이터소스의 DB 접속 코드를 일괄 변경 |
| ⑧ 클라이언트 스크립트 문자열 변경 | 클라이언트 스크립트의 특정 문자열을 변경 |
| ⑨ 클라이언트 스크립트에 함수 추가 | 중복 여부를 확인한 후 공통 함수를 추가 |
| ⑩ 문서 전체 문자열 변경 | 보고서 전체에서 특정 경로 또는 식별자 등을 변경 |
| ⑪ 문서 구조 확인 | 보고서를 변경하지 않고 폼, 컨트롤, 데이터소스 구조를 결과에 출력 |
| ⑫ BoxStyle 변경 | 특정 BoxStyle을 사용하는 컨트롤을 다른 스타일로 변경 |
| ⑬ 컨트롤 폰트 통일 | 지정한 유형의 컨트롤에 동일한 폰트와 크기를 적용 |
| ⑭ 그리드 컬럼 추가·삭제 | 지정한 그리드의 컬럼을 추가하거나 삭제 |
| ⑮ 데이터소스에 세션 파라미터 추가 | 데이터소스에 세션 파라미터와 SQL 조회 조건을 추가 |
| ⑯ 정규식 문자열 변경 | 정규식을 이용하여 지정한 범위의 문자열을 변경 |
| ⑰ 미사용 데이터소스 확인 | 사용되지 않는 것으로 판단되는 데이터소스를 결과에 표시 |
| ⑱ 컨트롤 이름 규칙 확인 | 컨트롤 이름이 유형별 접두사 규칙에 맞는지 확인 |
※ 예제는 추가되거나 삭제될 수 있습니다.
6 Dry-Run 과 실행
변환 스크립트를 작성한 후 Dry-Run으로 변경 내용을 미리 확인하고, 결과가 올바르면 실행하여 실제 보고서에 적용합니다.
Dry-Run 과 실행은 선택된 보고서를 한 건씩 처리하며, 실제 저장 여부에 차이가 있습니다.
- 변환 스크립트에 오류가 있는지 확인합니다. 오류가 있으면 작업을 시작하지 않습니다.
- 선택한 보고서에 transform(doc) 을 실행합니다.
- 변경된 내용이 있는지 확인합니다. 변경 내용이 없거나 return false 인 보고서는 저장 대상에서 제외됩니다.
- 변경된 내용이 있으면 ③ 실행 결과에 변경 전·후 내용을 표시합니다.
- Dry-Run 에서는 보고서를 저장하지 않고 변경 예정으로 표시합니다. 실행에서는 원본 보고서를 백업한 후 변경 내용을 저장합니다.
- 작업이 완료되면 변경, 스킵, 오류 건수를 확인할 수 있습니다.
6.1 실행 결과 확인
③ 실행 결과에서는 보고서별 변경 내용과 처리 상태를 확인할 수 있습니다.
변경 내용은 다음과 같이 변경된 위치, 이전 값, 변경 후 값으로 표시됩니다.
경로 = 이전값 ⇒ 새값
보고서 한 건에서 변경된 항목이 많은 경우 최대 30건까지 표시되며, 나머지는 ... 외 n건 으로 표시됩니다.
| 상태 | 설명 |
|---|---|
변경 예정 | Dry-Run에서 변경 내용이 확인된 상태입니다. 실제 보고서에는 저장되지 않습니다. |
저장 완료 | 변경 전 원본을 백업한 후 변경 내용이 정상적으로 저장된 상태입니다. |
변경 없음 / 스킵 | 변경된 내용이 없거나 transform(doc)이 false를 반환하여 저장하지 않은 상태입니다. |
조회 실패 | 작업 대상 보고서를 불러오지 못한 상태입니다. |
오류 | 변환 스크립트 실행 중 오류가 발생한 상태입니다. |
저장 실패 | 변경 내용을 저장하지 못한 상태입니다. 다른 사용자의 동시 수정으로 인한 충돌도 포함됩니다. |
log() 로 기록한 내용과 변경된 항목의 상세 내용도 실행 결과에서 확인할 수 있습니다.
6.2 결과 필터
실행 결과 상단에는 처리 결과별
6.1 실행 결과 확인
③ 실
| 기능 정보 |
|
|
|
|
|
|
|
|---|---|---|---|---|---|---|---|
| 시작 버전 정보 |
| ||||||
page no. 181338153
1 개요
Bulk Editor 는 여러 보고서의 설정, SQL, 스크립트를 한 번에 변경할 수 있는 관리자 도구입니다.
변경 내용을 실제로 적용하기 전에 미리 확인(Dry-Run) 할 수 있으며, 변경 시 원본 보고서를 자동으로 백업합니다.
필요한 경우 작업 단위로 변경 전 상태로 되돌릴 수 있습니다.
컬럼 정렬 통일, Connection Code 교체, 테이블명 변경처럼 여러 보고서에 동일한 변경 사항을 일괄 적용해야 하는 경우에 사용할 수 있습니다.
Bulk Editor 의 작업은 다음 순서로 진행합니다.
변경 및 복원
Bulk Editor 는 보고서를 변경하기 전에 결과를 미리 확인할 수 있으며, 실제 저장 시 원본 보고서를 자동으로 백업합니다.
| 기능 | 설명 |
|---|---|
| 미리 확인(Dry-Run) | 보고서를 저장하지 않고 변경될 내용만 확인합니다. 여러 번 실행해도 원본 보고서는 변경되지 않습니다. |
| 스크립트 검사 | 실행 전에 변환 스크립트의 오류를 확인합니다. |
| 자동 백업 | 변경 내용을 저장하기 전에 원본 보고서를 자동으로 백업합니다. |
| 변경 충돌 확인 | 작업 중 다른 사용자가 같은 보고서를 수정한 경우 저장하지 않고 해당 보고서를 오류로 표시합니다. |
| 되돌리기 | 마지막으로 저장한 작업을 메인 화면에서 변경 전 상태로 되돌릴 수 있습니다. |
| 복원 시 백업 | 되돌리기를 실행할 때 현재 상태도 자동으로 백업하여 필요한 경우 복원 이전 상태로 다시 되돌릴 수 있습니다. |
2 빠른 시작
Bulk Editor 는 다음 순서로 사용할 수 있습니다.
- 대상 선택 을 선택하여 변경할 보고서를 체크한 후 선택 추가 를 선택합니다.
- ② 변환 스크립트 영역에 transform(doc) 함수를 작성합니다. 처음 사용하는 경우 예제 에서 원하는 작업과 유사한 예제를 불러온 후 필요한 부분을 수정하는 것을 권장합니다.
- Dry-Run(저장 안 함) 을 선택하여 변경 내용을 미리 확인합니다. ③ 실행 결과 에서 보고서별 변경 전·후 내용을 확인할 수 있습니다.
- 변경 내용이 올바른지 확인한 후 ⚠ 실행 (저장) 을 선택하여 실제 보고서에 적용합니다.
- 적용한 내용을 되돌리려면 ↺ 방금 작업 되돌리기 를 사용합니다. 이전 작업의 백업을 확인하거나 복원하려면 백업 / 복원 을 사용합니다.
3 메인 화면
메인 화면에서는 작업 대상을 선택하고 변환 스크립트를 작성한 후, 변경 내용을 미리 확인하거나 실제 보고서에 적용할 수 있습니다.
📌 화면 구성
3.1 상단 도구 모음
상단 도구 모음에서는 Bulk Editor 의 주요 기능을 실행할 수 있습니다.
| 버튼 | 설명 |
|---|---|
| 도움말 | 변환 스크립트 작성 방법과 사용 예제를 확인합니다. |
| 백업 / 복원 | 이전 작업의 백업 내역을 확인하거나 보고서를 변경 전 상태로 복원합니다. |
| JSON 비교 | 변경 전·후 JSON을 비교하여 변환 스크립트를 생성합니다. |
| Dry-Run(저장 안 함) | 보고서를 저장하지 않고 변환 스크립트를 실행하여 변경될 내용을 확인합니다. |
| ⚠실행(저장) | 변경 내용을 확인한 후 원본 보고서를 백업하고 실제 보고서에 저장합니다. |
「대상 선택」, 「대상 비우기」는 상단 도구 모음이 아닌 ① 작업 대상 영역에서 사용할 수 있습니다.
3.2 작업 단계
화면 상단에는 현재 작업 진행 상태를 확인할 수 있도록 ①~④ 단계가 표시됩니다.
| 단계 | 설명 |
|---|---|
| ① 대상 선택 | 작업할 보고서를 선택한 상태 |
| ② 변환 스크립트 | 변환 스크립트가 작성된 상태 |
| ③ Dry-Run 검증 | 현재 선택한 보고서와 변환 스크립트로 Dry-Run을 완료한 상태 |
| ④ 실행 (저장) | 현재 선택한 보고서에 변경 내용을 저장한 상태 |
3.3 작업 대상
① 작업 대상 영역에서는 Bulk Editor로 변경할 보고서를 확인하고 선택할 수 있습니다.
| 항목 | 설명 |
|---|---|
| 선택 | 체크한 보고서만 Dry-Run 및 실행 대상에 포함됩니다. 보고서를 처음 추가하면 자동으로 선택되며, 저장이 완료된 보고서는 선택이 자동으로 해제됩니다. |
| 보고서 명 | 작업 대상 보고서의 이름을 표시합니다. |
| 상태 | 보고서별 처리 상태를 표시합니다. |
| 🔍 문서 구조 보기 | 해당 보고서의 문서 구조를 확인합니다. |
| 🎨 디자이너 실행 | 해당 보고서를 i-AUD Designer에서 엽니다. |
보고서의 처리 상태는 다음과 같이 표시됩니다.
| 상태 | 설명 |
|---|---|
대기 | 아직 작업을 실행하지 않은 상태 |
처리 중... | 작업을 실행하고 있는 상태 |
변경 없음 | 변환 스크립트를 실행했지만 변경되는 내용이 없는 상태 |
변경 예정 | Dry-Run 결과 변경될 내용이 확인된 상태 |
저장 완료 | 변경 내용이 정상적으로 저장된 상태 |
오류 | 변환 스크립트 실행 중 오류가 발생한 상태 |
저장 실패 | 변경 내용을 보고서에 저장하지 못한 상태 |
작업 대상 영역 상단에는 전체 보고서 수와 현재 선택된 보고서 수가 표시됩니다.
등록된 작업 대상이 없는 경우에는 +대상 선택 을 선택하여 보고서를 추가할 수 있습니다.
4 작업 대상 선택
대상 선택 을 선택하면 폴더와 보고서 목록을 확인할 수 있는 팝업이 열립니다.
- 왼쪽 폴더 영역에서 작업할 폴더를 선택합니다.
- 선택한 폴더에 포함된 보고서가 오른쪽 목록에 표시됩니다.
- 필요한 경우 검색창에 보고서명 또는 보고서 코드를 입력하여 목록을 검색합니다.
- 작업 대상으로 추가할 보고서를 체크합니다.
- 선택 N건 추가 를 선택하여 체크한 보고서를 작업 대상에 추가합니다.
- 다른 폴더의 보고서를 추가하려면 같은 방법으로 반복합니다. 작업 대상 선택이 끝나면 닫기를 선택합니다.
검색 중에도 이미 체크한 보고서는 선택 상태가 유지됩니다.
여러 폴더에서 보고서를 추가할 수 있으며, 이미 작업 대상에 추가된 보고서는 중복으로 추가되지 않습니다.
5 변환 스크립트 작성
변환 스크립트는 transform(doc) 함수에 작성합니다. doc 에는 작업 대상 보고서의 전체 문서 정보가 JSON 형태로 전달되며, 선택한 보고서마다 transfomr(doc) 함수가 한 번씩 실행됩니다.
SQL 과 서버스크립트도 doc 을 통해 조회하고 변경할 수 있습니다.
암호화된 항목은 편집 가능한 상태로 전달되며, 저장할 때 자동으로 다시 암호화되므로 스크립트에서 암·복호화를 직접 처리할 필요는 없습니다.
처음 사용하는 경우에는 편집기 오른쪽 위 「예제」에서 작업과 유사한 예제를 불러와 필요한 조건과 값만 수정하는 것을 권장합니다.
기본 스크립트
편집기를 처음 열면 다음 스크립트가 기본으로 제공됩니다.
반환값과 처리 결과
transform(doc) 의 반환값과 실제 변경 여부에 따라 보고서의 처리 결과가 결정됩니다.
| 경우 | 처리 결과 |
|---|---|
return true + 문서 변경 | 저장 대상이 됩니다. Dry-Run에서는 변경 예정, 실행 시에는 백업 후 저장됩니다. |
return false | 해당 보고서를 저장하지 않습니다. |
| 변경된 내용 없음 | 반환값과 관계없이 저장하지 않습니다. |
| 함수 실행 중 오류 발생 | 해당 보고서는 오류로 처리하고 다음 보고서의 작업을 계속합니다. |
5.1 기본 함수
transform(doc) 안에서는 다음 함수를 별도로 선언하지 않고 사용할 수 있습니다.
| 함수 | 설명 |
|---|---|
walkAllControls(doc, cb) | 모든 폼의 컨트롤을 순회합니다. 컨테이너 안에 포함된 컨트롤도 함께 탐색하며 cb(ctl, form)을 호출합니다. |
eachOlapField(doc, cb) | OlapGrid의 iOLAPView.Fields를 순회하며 cb(fld, grid, form)을 호출합니다. |
log(메시지) | ③ 실행 결과에 메시지를 기록합니다. 변경된 항목이나 확인할 값을 기록할 때 사용합니다. |
walkAllControls 가 탐색하는 컨테이너
| 컨테이너 | 하위 컨트롤 위치 |
|---|---|
| Group, AddIn | ChildElements[] |
| Tab | TabItems[].Controls[] |
| iGrid (MX-Grid) | Controls[] |
| TableLayout | Rows[].Cells[].InnerControl |
OLAP 필드 주요 속
| 속성 | 값 |
|---|---|
fld.Area | 0 숨김 · 1 행 · 2 열 · 3 필터 · 4 데이터 |
fld.Category | 1 디멘젼 · 2 메저 |
fld.CreateType | 0 일반 필드 · 1 가상 필드(#MEASURES_HEADER# 등) |
| 정렬 | fld.TextAlignment / fld.HeaderAlignment |
일반 필드만 변경하려면 fld.CreateType === 0 조건을 사용할 수 있습니다.
5.2 문서 구조
doc 은 보고서의 폼, 컨트롤, 데이터소스, 스크립트 정보를 포함합니다.
SQL과 서버 스크립트는 편집 가능한 문자열로 전달됩니다. 암호화되어 있던 항목은 저장할 때 자동으로 다시 암호화되므로 변환 스크립트에서 별도로 처리할 필요가 없습니다.
보고서의 실제 속성 이름과 값은 작업 대상의 🔍 문서 구조 보기에서 확인할 수 있습니다.
5.3 작성 시 참고사항
기본값은 속성을 삭제하여 적용
일부 속성은 값이 없는 상태가 기본값을 의미합니다.
예를 들어 정렬 값은 'start'(왼쪽), 'center', 'end'(오른쪽)를 사용할 수 있지만, 왼쪽 정렬은 기본값이므로 'start'를 지정하지 않고 해당 속성을 삭제합니다.
delete col.TextPosition; // 왼쪽 정렬(기본값) col.TextPosition = 'end'; // 오른쪽 정렬 delete ctl.Visible; // 표시(기본값) ctl.Visible = false; // 숨김
컨트롤에 따라 정렬 속성이 다름
| 대상 | 본문 정렬 | 헤더 정렬 |
|---|---|---|
| 그리드 컬럼 | col.TextPosition | col.HeaderPosition |
| OLAP 필드 | fld.TextAlignment | fld.HeaderAlignment |
색상 변경 시 Style.Type 확인
컨트롤의 색상을 직접 변경하려면 Style.Type에 따라 적용 방식을 확인해야 합니다.
Style.Type | 의미 | 색상 적용 |
|---|---|---|
0 | 컨트롤 기본 스킨 | 직접 지정한 색상이 적용되지 않음 |
1 | 공통 BoxStyle 사용 | Style.BoxStyle에 스타일 이름 지정 |
2 | 직접 지정 | Style.Background.Color 등의 속성 사용 |
색상을 변경했지만 화면에 적용되지 않는 경우 Style.Type이 0 또는 1인지 확인하세요.
작성 시 주의사항
- 문서 전체 문자열을 변경하는 경우 속성 이름까지 변경될 수 있으므로 다른 값과 겹치지 않는 구체적인 문자열을 사용하세요.
- 정규식을 문자열로 작성하는 경우 역슬래시(
\)를 두 번 입력해야 합니다. 예:'\\bNAME\\b' - SQL에 조건을 추가하는 경우
GROUP BY,ORDER BY,UNION,WHERE등의 SQL 구조를 확인하여 적절한 위치에 추가하세요. 변경 후에는 Dry-Run으로 SQL을 확인하는 것을 권장합니다. - 그리드 컬럼을 추가하는 경우 조회 SQL에도 해당 컬럼이 포함되어 있어야 데이터가 표시됩니다.
- 기존 문자열에 내용을 추가하는 경우 스크립트를 반복 실행하면 같은 내용이 중복될 수 있습니다. 적용 여부를 확인할 수 있는 마커를 사용하는 것을 권장합니다. (→ 예제 ⑨)
중복 적용 방지 예제
var MARKER = '/* @BULK:myFix */';
if (script.indexOf(MARKER) > -1) {
log('이미 적용됨');
return false;
}
5.4 예제 스크립트
편집기 오른쪽 위 「예제」 에서 자주 사용하는 변환 작업의 예제 스크립트를 불러올 수 있습니다.
예제를 선택하면 확인 후 현재 편집기의 내용이 선택한 예제로 변경됩니다. 목록에서 원하는 예제를 검색할 수도 있습니다.
| 예제 | 용도 |
|---|---|
| ① 데이터그리드 컬럼 속성 변경 | 조건에 맞는 그리드 컬럼의 정렬, 너비, 캡션 등을 변경 |
| ② OLAP 그리드 필드 속성 변경 | OLAP 필드의 포맷, 정렬, 너비 등을 변경 |
| ③ SQL 테이블명 변경 | 데이터소스 SQL에서 특정 테이블명을 변경 |
| ④ 서버 스크립트 문자열 변경 | 서버 스크립트의 특정 문자열을 변경 |
| ⑤ 컨트롤 공통 속성 변경 | 특정 유형의 컨트롤 속성을 일괄 변경 |
| ⑥ 컨트롤 스타일 변경 | 컨트롤에 공통 스타일(BoxStyle)을 적용 |
| ⑦ 데이터소스 접속 코드 변경 | 데이터소스의 DB 접속 코드를 일괄 변경 |
| ⑧ 클라이언트 스크립트 문자열 변경 | 클라이언트 스크립트의 특정 문자열을 변경 |
| ⑨ 클라이언트 스크립트에 함수 추가 | 중복 여부를 확인한 후 공통 함수를 추가 |
| ⑩ 문서 전체 문자열 변경 | 보고서 전체에서 특정 경로 또는 식별자 등을 변경 |
| ⑪ 문서 구조 확인 | 보고서를 변경하지 않고 폼, 컨트롤, 데이터소스 구조를 결과에 출력 |
| ⑫ BoxStyle 변경 | 특정 BoxStyle을 사용하는 컨트롤을 다른 스타일로 변경 |
| ⑬ 컨트롤 폰트 통일 | 지정한 유형의 컨트롤에 동일한 폰트와 크기를 적용 |
| ⑭ 그리드 컬럼 추가·삭제 | 지정한 그리드의 컬럼을 추가하거나 삭제 |
| ⑮ 데이터소스에 세션 파라미터 추가 | 데이터소스에 세션 파라미터와 SQL 조회 조건을 추가 |
| ⑯ 정규식 문자열 변경 | 정규식을 이용하여 지정한 범위의 문자열을 변경 |
| ⑰ 미사용 데이터소스 확인 | 사용되지 않는 것으로 판단되는 데이터소스를 결과에 표시 |
| ⑱ 컨트롤 이름 규칙 확인 | 컨트롤 이름이 유형별 접두사 규칙에 맞는지 확인 |
※ 예제는 추가되거나 삭제될 수 있습니다.
6 Dry-Run 과 실행
변환 스크립트를 작성한 후 Dry-Run으로 변경 내용을 미리 확인하고, 결과가 올바르면 실행하여 실제 보고서에 적용합니다.
Dry-Run 과 실행은 선택된 보고서를 한 건씩 처리하며, 실제 저장 여부에 차이가 있습니다.
- 변환 스크립트에 오류가 있는지 확인합니다. 오류가 있으면 작업을 시작하지 않습니다.
- 선택한 보고서에 transform(doc) 을 실행합니다.
- 변경된 내용이 있는지 확인합니다. 변경 내용이 없거나 return false 인 보고서는 저장 대상에서 제외됩니다.
- 변경된 내용이 있으면 ③ 실행 결과에 변경 전·후 내용을 표시합니다.
- Dry-Run 에서는 보고서를 저장하지 않고 변경 예정으로 표시합니다. 실행에서는 원본 보고서를 백업한 후 변경 내용을 저장합니다.
- 작업이 완료되면 변경, 스킵, 오류 건수를 확인할 수 있습니다.
6.1 실행 결과 확인
③ 실행 결과에서는 보고서별 변경 내용과 처리 상태를 확인할 수 있습니다.
변경 내용은 다음과 같이 변경된 위치, 이전 값, 변경 후 값으로 표시됩니다.
경로 = 이전값 ⇒ 새값
보고서 한 건에서 변경된 항목이 많은 경우 최대 30건까지 표시되며, 나머지는 ... 외 n건 으로 표시됩니다.
| 상태 | 설명 |
|---|---|
변경 예정 | Dry-Run에서 변경 내용이 확인된 상태입니다. 실제 보고서에는 저장되지 않습니다. |
저장 완료 | 변경 전 원본을 백업한 후 변경 내용이 정상적으로 저장된 상태입니다. |
변경 없음 / 스킵 | 변경된 내용이 없거나 transform(doc)이 false를 반환하여 저장하지 않은 상태입니다. |
조회 실패 | 작업 대상 보고서를 불러오지 못한 상태입니다. |
오류 | 변환 스크립트 실행 중 오류가 발생한 상태입니다. |
저장 실패 | 변경 내용을 저장하지 못한 상태입니다. 다른 사용자의 동시 수정으로 인한 충돌도 포함됩니다. |
log() 로 기록한 내용과 변경된 항목의 상세 내용도 실행 결과에서 확인할 수 있습니다.
6.2 결과 필터
실행 결과 상단에는 처리 결과별 건수와 필터가 표시됩니다.
필터를 선택하면 해당 결과에 포함된 보고서만 확인할 수 있습니다.
- Dry-Run 후에는 변경 예정, 변경 없음 등의 결과가 표시됩니다.
- 실행 후에는 변경·저장, 스킵 등의 결과가 표시됩니다.
- 오류가 발생한 경우 오류 건수를 확인할 수 있습니다.
- 전체를 선택하면 변경 내역과
log()로 기록한 내용을 포함한 전체 결과를 확인할 수 있습니다.
6.3 되돌리기 및 결과 비우기
방금 작업 되돌리기
방금 작업 되돌리기 를 선택하면 현재 세션에서 마지막으로 저장한 작업 전체를 변경 전 상태로 되돌릴 수 있습니다.
이전 작업을 확인하거나 복원하려면 백업 / 복원 을 사용합니다.
결과 비우기
결과 비우기 를 선택하면 현재 실행 결과만 삭제됩니다.
작업 대상과 변환 스크립트는 그대로 유지되며, 실제 보고서에는 영향을 주지 않습니다.
7 백업과 복원
Bulk Editor 에서 ⚠실행(저장) 을 실행하면 저장하기 전의 원본 보고서가 자동으로 백업됩니다.
한 번의 실행은 하나의 작업(Job) 으로 관리되며, 백업 / 복원 에서 작업별 내역을 확인하고 필요한 보고서를 이전 상태로 복원할 수 있습니다.
각 작업에는 작업 일시와 사용자를 기준으로 작업 ID 가 부여되며, 작업에 사용한 변환 스크립트도 함께 보관됩니다.
7.1 백업 / 복원 화면
백업 / 복원 을 선택하면 이전 작업의 백업 내역을 확인할 수 있습니다.
화면은 작업 목록, 백업 파일, 변환 스크립트 영역으로 구성됩니다.
| 영역 | 설명 |
|---|---|
| 작업 목록 | 작업 ID, 작업자, 작업 일시, 백업된 보고서 수를 확인합니다. 최근 작업부터 표시됩니다. |
| 백업 파일 | 선택한 작업에서 백업된 보고서 목록을 확인하고 복원할 보고서를 선택합니다. |
| 변환 스크립트 | 해당 작업에 사용한 변환 스크립트를 확인합니다. |
작업이 많은 경우 보고서명으로 검색하여 해당 보고서가 포함된 작업만 확인할 수 있습니다.
7.2 보고서 복원
- 백업 / 복원 을 선택합니다.
- 왼쪽 작업 목록에서 복원할 작업을 선택합니다.
- 오른쪽에서 백업된 보고서와 작업 일시를 확인합니다.
- 일부 보고서만 복원하려면 대상 보고서를 체크한 후 선택 복원 을 선택합니다.
- 해당 작업의 보고서를 모두 복원하려면 전체 복원 을 선택합니다.
- 복원이 완료되면 보고서별 처리 결과를 확인합니다.
7.3 복원 작업 되돌리기
보고서를 복원할 때는 복원 직전의 현재 상태도 자동으로 백업됩니다.
따라서 잘못된 작업을 복원했거나 다시 복원 전 상태로 돌아가야 하는 경우, 복원 시 생성된 백업 작업을 이용하여 이전 상태로 되돌릴 수 있습니다.
복원 시 생성된 작업은 작업 ID 에 _RESTORE 가 표시되어 일반 작업과 구분할 수 있습니다.
7.4 이전 변환 스크립트 재사용
작업 목록에서 이전 작업을 선택하면 해당 작업에 사용한 변환 스크립트를 확인할 수 있습니다.
편집기로 불러오기 를 선택하면 해당 스크립트를 메인 화면의 변환 스크립트 편집기로 불러옵니다.
동일하거나 유사한 변경 작업을 다른 보고서에서 다시 적용할 때 사용할 수 있습니다.
8 문서 구조 보기
작업 대상의 🔍을 선택하거나 우클릭 메뉴에서 「문서 구조 보기」를 선택하면 해당 보고서의 문서 구조를 확인할 수 있습니다.
문서 구조는 읽기 전용으로 제공되며, 변환 스크립트를 작성하기 전에 보고서의 실제 속성 이름과 값, SQL 및 스크립트 내용을 확인할 때 사용합니다.
8.1 문서 구조 확인
왼쪽 트리에서 항목을 선택하면 오른쪽에 해당 내용을 표시합니다.
| 항목 | 표시 내용 |
|---|---|
| 보고서 | 보고서 전체 문서 |
| 문서 구조(Forms) | 폼과 컨트롤 구조 |
| Client Script | 클라이언트 스크립트 |
| Server Script | 서버 스크립트 목록 및 스크립트 내용 |
| DataSources | 데이터소스 목록 및 SQL |
문서 구조(Forms)에서는 폼 아래의 컨트롤을 계층 구조로 확인할 수 있습니다. Group, Tab, TableLayout 등 다른 컨트롤 안에 포함된 컨트롤도 함께 표시됩니다.
Server Script와 DataSources의 SQL은 변환 스크립트에서 확인하고 변경할 수 있는 상태로 표시됩니다.
8.2 검색
트리 상단의 검색창을 사용하여 원하는 항목을 찾을 수 있습니다.
검색어를 입력하고 Enter를 누르면 이름이 일치하는 항목을 중심으로 결과가 표시됩니다. 검색어를 지운 후 다시 Enter를 누르면 전체 문서 구조가 표시됩니다.
8.3 변환 스크립트 작성에 활용
문서 구조 보기에서 확인한 속성 이름과 값은 transform(doc)에서 보고서를 탐색하거나 변경할 조건을 작성할 때 사용할 수 있습니다.
예를 들어 특정 컨트롤의 속성을 일괄 변경하려는 경우, 먼저 문서 구조 보기에서 해당 컨트롤을 선택하여 속성 이름과 현재 값을 확인한 후 변환 스크립트를 작성할 수 있습니다.
9 JSON 비교
JSON 비교 에서는 변경 전·후의 JSON을 비교하여 차이점을 확인하고, 해당 변경을 적용하는 transform(doc) 스크립트를 자동으로 생성할 수 있습니다.
직접 속성 경로를 찾아 스크립트를 작성하기 어려운 경우, i-AUD Designer에서 원하는 변경을 먼저 적용한 후 변경 전·후 컨트롤을 비교하여 변환 스크립트를 만드는 용도로 활용할 수 있습니다.
9.1 JSON 비교
변경 전 JSON(A) 와 변경 후 JSON(B) 을 입력한 후 비교 실행 을 선택합니다.
비교가 완료되면 왼쪽에 차이 목록, 오른쪽에 자동 생성된 변환 스크립트가 표시됩니다.
총 6개 차이 (추가 0 / 삭제 0 / 변경 6) Elements[0].Text = "에어컨_판매정보" => "에어컨_판매정보(신)" Elements[0].Style.Type = 1 => 2 Elements[0].Style.Border.Color.R = 194 => 201 …
차이 목록에서는 변경된 속성의 경로와 변경 전·후 값을 확인할 수 있습니다.
- 값이 추가되거나 삭제된 경우 한쪽 값을 (없음)으로 표시합니다.
- 변경된 값은 해당 속성에 값을 지정하는 스크립트로 변환됩니다.
- 삭제된 속성은
delete를 사용하는 스크립트로 변환됩니다. - 배열은 항목의 순서를 기준으로 비교합니다.
9.2 Designer 컨트롤 비교
i-AUD Designer 에서 복사한 컨트롤을 이용하면 컨트롤의 변경 전·후 컨트롤을 비교하여 변환 스크립트를 생성할 수 있습니다.
- i-AUD Designer 에서 변경 전 컨트롤을 복사하여 변경 전 JSON(A) 에 붙여넣습니다.
- Designer 에서 원하는 속성을 변경합니다.
- 변경 후 컨트롤을 복사하여 변경 후 JSON(B) 에 붙여넣습니다.
- 비교 실행 을 선택합니다.
- 변경된 속성을 확인하고 자동 생성된 변환 스크립트를 확인합니다.
Designer 에서 복사한 컨트롤이 입력된 경우 컨트롤 비교 방식이 자동으로 적용됩니다.
/* 클립보드로 복사한 컨트롤 비교로 자동 생성된 변환 스크립트
조건과 값을 확인한 뒤 사용하세요. */
function transform(doc) {
walkAllControls(doc, function (ctl, form) {
if (ctl.Type === "Label") {
ctl.Style.Type = 2;
ctl.Style.Border.Color.R = 0;
ctl.Style.Border.Color.G = 0;
ctl.Style.Border.Color.B = 255;
log(form.Name + '/' + ctl.Name + ' 변경');
}
});
return true;
}
여러 컨트롤을 함께 복사한 경우에는 변경 전·후 컨트롤을 순서대로 비교하고, 같은 유형의 컨트롤을 기준으로 변환 스크립트를 생성합니다.
9.3 변환 스크립트 사용
비교가 완료되면 편집기로 보내기 를 선택하여 자동 생성된 스크립트를 메인 화면의 변환 스크립트 편집기로 가져올 수 있습니다.
편집기로 가져온 후에는 적용할 보고서를 선택하고 Dry-Run 으로 변경 내용을 확인한 후 실행합니다.
지우기 를 선택하면 입력한 JSON 과 비교 결과를 모두 삭제할 수 있습니다.
활용 예시
Designer에서 컨트롤의 속성을 직접 변경한 후, 변경 전·후 컨트롤을 JSON 비교에 붙여넣으면 어떤 속성을 변경해야 하는지 직접 찾지 않고도 변환 스크립트를 생성할 수 있습니다.
예를 들어 여러 보고서의 Label 테두리 색상을 동일하게 변경하려는 경우 다음과 같이 사용할 수 있습니다.
10 도움말
상단의 도움말 을 선택하면 변환 스크립트 작성 가이드가 팝업으로 표시됩니다.
다음과 같은 내용을 화면에서 바로 확인할 수 있습니다.
transform(doc)작성 방법과 반환값walkAllControls,eachOlapField,log기본 함수- 보고서 문서 구조
- 속성 변경 시 참고사항
- 자주 사용하는 변환 스크립트 예제
자세한 내용은 변환 스크립트 작성 을 참고하세요.
11 FAQ
| 기능 정보 |
|
|
|
|
|
|
|
|---|---|---|---|---|---|---|---|
| 시작 버전 정보 |
| ||||||






