page no.
| Showpageid |
|---|
1 개요
Bulk Editor 는 여러 보고서의 설정, SQL, 스크립트를 한 번에 변경할 수 있는 관리자 도구입니다.
변경 내용을 실제로 적용하기 전에 미리 확인(Dry-Run) 할 수 있으며, 변경 시 원본 보고서를 자동으로 백업합니다.
필요한 경우 작업 단위로 변경 전 상태로 되돌릴 수 있습니다.
컬럼 정렬 통일, Connection Code 교체, 테이블명 변경처럼 여러 보고서에 동일한 변경 사항을 일괄 적용해야 하는 경우에 사용할 수 있습니다.
Bulk Editor 의 작업은 다음 순서로 진행합니다.
변경 및 복원
Bulk Editor 는 보고서를 변경하기 전에 결과를 미리 확인할 수 있으며, 실제 저장 시 원본 보고서를 자동으로 백업합니다.
| 기능 | 설명 |
|---|---|
| 미리 확인(Dry-Run) | 보고서를 저장하지 않고 변경될 내용만 확인합니다. 여러 번 실행해도 원본 보고서는 변경되지 않습니다. |
| 스크립트 검사 | 실행 전에 변환 스크립트의 오류를 확인합니다. |
| 자동 백업 | 변경 내용을 저장하기 전에 원본 보고서를 자동으로 백업합니다. |
| 변경 충돌 확인 | 작업 중 다른 사용자가 같은 보고서를 수정한 경우 저장하지 않고 해당 보고서를 오류로 표시합니다. |
| 되돌리기 | 마지막으로 저장한 작업을 메인 화면에서 변경 전 상태로 되돌릴 수 있습니다. |
| 복원 시 백업 | 되돌리기를 실행할 때 현재 상태도 자동으로 백업하여 필요한 경우 복원 이전 상태로 다시 되돌릴 수 있습니다. |
| 경고 | ||||
|---|---|---|---|---|
| ||||
[실행(저장)] 을 선택하면 서버에 저장된 원본 보고서에 변경 내용이 적용됩니다. 운영 중인 보고서를 변경하는 경우에는 먼저 Dry-Run 으로 변경 내용을 확인하세요. 여러 보고서를 일괄 변경할 때에는 일부 보고서를 대상으로 먼저 실행하여 결과를 확인한 후 적용 범위를 넓히는 것을 권장합니다. |
2 빠른 시작
Bulk Editor 는 다음 순서로 사용할 수 있습니다.
- 대상 선택 을 선택하여 변경할 보고서를 체크한 후 선택 추가 를 선택합니다.
- ② 변환 스크립트 영역에 transform(doc) 함수를 작성합니다. 처음 사용하는 경우 예제 에서 원하는 작업과 유사한 예제를 불러온 후 필요한 부분을 수정하는 것을 권장합니다.
- Dry-Run(저장 안 함) 을 선택하여 변경 내용을 미리 확인합니다. ③ 실행 결과 에서 보고서별 변경 전·후 내용을 확인할 수 있습니다.
- 변경 내용이 올바른지 확인한 후 ⚠ 실행 (저장) 을 선택하여 실제 보고서에 적용합니다.
- 적용한 내용을 되돌리려면 ↺ 방금 작업 되돌리기 를 사용합니다. 이전 작업의 백업을 확인하거나 복원하려면 백업 / 복원 을 사용합니다.
| 정보 | ||||
|---|---|---|---|---|
| ||||
먼저 보고서 1건을 대상으로 대상 선택 →Dry-Run → 실행 → 되돌리기 까지 진행해 보는 것을 권장합니다. 작업 결과와 복원 방법을 확인한 후 여러 보고서에 적용하세요. |
3 메인 화면
메인 화면에서는 작업 대상을 선택하고 변환 스크립트를 작성한 후, 변경 내용을 미리 확인하거나 실제 보고서에 적용할 수 있습니다.
📌 화면 구성
3.1 상단 도구 모음
상단 도구 모음에서는 Bulk Editor 의 주요 기능을 실행할 수 있습니다.
| 버튼 | 설명 |
|---|---|
| 도움말 | 변환 스크립트 작성 방법과 사용 예제를 확인합니다. |
| 백업 / 복원 | 이전 작업의 백업 내역을 확인하거나 보고서를 변경 전 상태로 복원합니다. |
| JSON 비교 | 변경 전·후 JSON을 비교하여 변환 스크립트를 생성합니다. |
| Dry-Run(저장 안 함) | 보고서를 저장하지 않고 변환 스크립트를 실행하여 변경될 내용을 확인합니다. |
| ⚠실행(저장) | 변경 내용을 확인한 후 원본 보고서를 백업하고 실제 보고서에 저장합니다. |
「대상 선택」, 「대상 비우기」는 상단 도구 모음이 아닌 ① 작업 대상 영역에서 사용할 수 있습니다.
3.2 작업 단계
화면 상단에는 현재 작업 진행 상태를 확인할 수 있도록 ①~④ 단계가 표시됩니다.
| 단계 | 설명 |
|---|---|
| ① 대상 선택 | 작업할 보고서를 선택한 상태 |
| ② 변환 스크립트 | 변환 스크립트가 작성된 상태 |
| ③ Dry-Run 검증 | 현재 선택한 보고서와 변환 스크립트로 Dry-Run을 완료한 상태 |
| ④ 실행 (저장) | 현재 선택한 보고서에 변경 내용을 저장한 상태 |
| 정보 | ||||
|---|---|---|---|---|
| ||||
Dry-Run 이후 작업 대상을 변경하거나 변환 스크립트를 수정하면 ③ Dry-Run 검증과 ④ 실행 (저장) 상태가 초기화됩니다. 변경된 내용으로 다시 Dry-Run을 실행하여 결과를 확인하세요. |
3.3 작업 대상
① 작업 대상 영역에서는 Bulk Editor로 변경할 보고서를 확인하고 선택할 수 있습니다.
| 항목 | 설명 |
|---|---|
| 선택 | 체크한 보고서만 Dry-Run 및 실행 대상에 포함됩니다. 보고서를 처음 추가하면 자동으로 선택되며, 저장이 완료된 보고서는 선택이 자동으로 해제됩니다. |
| 보고서 명 | 작업 대상 보고서의 이름을 표시합니다. |
| 상태 | 보고서별 처리 상태를 표시합니다. |
| 🔍 문서 구조 보기 | 해당 보고서의 문서 구조를 확인합니다. |
| 🎨 디자이너 실행 | 해당 보고서를 i-AUD Designer에서 엽니다. |
보고서의 처리 상태는 다음과 같이 표시됩니다.
| 상태 | 설명 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 아직 작업을 실행하지 않은 상태 | ||||||||
| 작업을 실행하고 있는 상태 | ||||||||
| 변환 스크립트를 실행했지만 변경되는 내용이 없는 상태 | ||||||||
| Dry-Run 결과 변경될 내용이 확인된 상태 | ||||||||
| 변경 내용이 정상적으로 저장된 상태 | ||||||||
| 변환 스크립트 실행 중 오류가 발생한 상태 | ||||||||
| 변경 내용을 보고서에 저장하지 못한 상태 |
작업 대상 영역 상단에는 전체 보고서 수와 현재 선택된 보고서 수가 표시됩니다.
등록된 작업 대상이 없는 경우에는 +대상 선택 을 선택하여 보고서를 추가할 수 있습니다.
| 정보 | ||||
|---|---|---|---|---|
| ||||
보고서 목록에서 항목을 마우스 오른쪽 버튼으로 클릭하면 「디자이너 실행」, 「문서 구조 보기」 기능을 사용할 수 있습니다. |
4 작업 대상 선택
대상 선택 을 선택하면 폴더와 보고서 목록을 확인할 수 있는 팝업이 열립니다.
- 왼쪽 폴더 영역에서 작업할 폴더를 선택합니다.
- 선택한 폴더에 포함된 보고서가 오른쪽 목록에 표시됩니다.
- 필요한 경우 검색창에 보고서명 또는 보고서 코드를 입력하여 목록을 검색합니다.
- 작업 대상으로 추가할 보고서를 체크합니다.
- 선택 N건 추가 를 선택하여 체크한 보고서를 작업 대상에 추가합니다.
- 다른 폴더의 보고서를 추가하려면 같은 방법으로 반복합니다. 작업 대상 선택이 끝나면 닫기를 선택합니다.
검색 중에도 이미 체크한 보고서는 선택 상태가 유지됩니다.
여러 폴더에서 보고서를 추가할 수 있으며, 이미 작업 대상에 추가된 보고서는 중복으로 추가되지 않습니다.
| 정보 | ||||
|---|---|---|---|---|
| ||||
폴더와 보고서 목록에는 현재 로그인한 사용자가 접근할 수 있는 보고서만 표시됩니다. 작업 대상으로 선택할 수 있는 항목은 모듈 코드가 SD, SC 인 i-AUD 보고서이며, 목록의 아이콘으로 보고서 유형을 확인할 수 있습니다. |
5 변환 스크립트 작성
변환 스크립트는 transform(doc) 함수에 작성합니다. doc 에는 작업 대상 보고서의 전체 문서 정보가 JSON 형태로 전달되며, 선택한 보고서마다 transfomr(doc) 함수가 한 번씩 실행됩니다.
SQL 과 서버스크립트도 doc 을 통해 조회하고 변경할 수 있습니다.
암호화된 항목은 편집 가능한 상태로 전달되며, 저장할 때 자동으로 다시 암호화되므로 스크립트에서 암·복호화를 직접 처리할 필요는 없습니다.
처음 사용하는 경우에는 편집기 오른쪽 위 「예제」에서 작업과 유사한 예제를 불러와 필요한 조건과 값만 수정하는 것을 권장합니다.
기본 스크립트
편집기를 처음 열면 다음 스크립트가 기본으로 제공됩니다.
| 코드 블럭 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
function transform(doc) {
walkAllControls(doc, function (ctl, form) {
var isGrid =
ctl.Type === 'DataGrid' ||
ctl.Type === 'GroupGrid' ||
ctl.Type === 'TreeGrid';
if (!isGrid) { return; }
(ctl.Columns || []).forEach(function (col) {
if (!col.Name || col.Name.indexOf('ITEM_NAME') === -1) { return; }
// ITEM_NAME 컬럼을 왼쪽 정렬로 변경 (기본값이므로 키를 삭제한다)
delete col.TextPosition;
log(form.Name + '/' + ctl.Name + '/' + col.Name + ' → 왼쪽 정렬');
});
});
return true;
} |
반환값과 처리 결과
transform(doc) 의 반환값과 실제 변경 여부에 따라 보고서의 처리 결과가 결정됩니다.
| 경우 | 처리 결과 |
|---|---|
return true + 문서 변경 | 저장 대상이 됩니다. Dry-Run에서는 변경 예정, 실행 시에는 백업 후 저장됩니다. |
return false | 해당 보고서를 저장하지 않습니다. |
| 변경된 내용 없음 | 반환값과 관계없이 저장하지 않습니다. |
| 함수 실행 중 오류 발생 | 해당 보고서는 오류로 처리하고 다음 보고서의 작업을 계속합니다. |
| 정보 | ||||
|---|---|---|---|---|
| ||||
return true 를 사용하더라도 실제 문서 내용이 변경되지 않았다면 저장되지 않습니다. |
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 에서는 보고서를 저장하지 않고 변경 예정으로 표시합니다. 실행에서는 원본 보고서를 백업한 후 변경 내용을 저장합니다.
- 작업이 완료되면 변경, 스킵, 오류 건수를 확인할 수 있습니다.
| 정보 | ||||
|---|---|---|---|---|
| ||||
실제 보고서에 적용하기 전에 Dry-Run 을 실행하여 대상 보고서와 변경 내용을 확인하는 것을 권장합니다. |
6.1 실행 결과 확인
③ 실행 결과에서는 보고서별 변경 내용과 처리 상태를 확인할 수 있습니다.
변경 내용은 다음과 같이 변경된 위치, 이전 값, 변경 후 값으로 표시됩니다.
경로 = 이전값 ⇒ 새값
보고서 한 건에서 변경된 항목이 많은 경우 최대 30건까지 표시되며, 나머지는 ... 외 n건 으로 표시됩니다.
| 상태 | 설명 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Dry-Run에서 변경 내용이 확인된 상태입니다. 실제 보고서에는 저장되지 않습니다. | ||||||||
| 변경 전 원본을 백업한 후 변경 내용이 정상적으로 저장된 상태입니다. | ||||||||
| 변경된 내용이 없거나 transform(doc)이 false를 반환하여 저장하지 않은 상태입니다. | ||||||||
| 작업 대상 보고서를 불러오지 못한 상태입니다. | ||||||||
| 변환 스크립트 실행 중 오류가 발생한 상태입니다. | ||||||||
| 변경 내용을 저장하지 못한 상태입니다. 다른 사용자의 동시 수정으로 인한 충돌도 포함됩니다. |
log() 로 기록한 내용과 변경된 항목의 상세 내용도 실행 결과에서 확인할 수 있습니다.
6.2 결과 필터
실행 결과 상단에는 처리 결과별 건수와 필터가 표시됩니다.
필터를 선택하면 해당 결과에 포함된 보고서만 확인할 수 있습니다.
- Dry-Run 후에는 변경 예정, 변경 없음 등의 결과가 표시됩니다.
- API Open
- UI Open
- Read Only
- Not Use
- Hidden
- Not Recommend
- 해당 없음
7.0.610.20260820-11
| hidden | true |
|---|
| title | BCRM 정보 |
|---|
page no.
| Showpageid |
|---|
1 개요
Bulk Editor 는 여러 보고서의 설정, SQL, 스크립트를 한 번에 변경할 수 있는 관리자 도구입니다.
변경 내용을 실제로 적용하기 전에 미리 확인(Dry-Run) 할 수 있으며, 변경 시 원본 보고서를 자동으로 백업합니다.
필요한 경우 작업 단위로 변경 전 상태로 되돌릴 수 있습니다.
컬럼 정렬 통일, Connection Code 교체, 테이블명 변경처럼 여러 보고서에 동일한 변경 사항을 일괄 적용해야 하는 경우에 사용할 수 있습니다.
Bulk Editor 의 작업은 다음 순서로 진행합니다.
변경 및 복원
Bulk Editor 는 보고서를 변경하기 전에 결과를 미리 확인할 수 있으며, 실제 저장 시 원본 보고서를 자동으로 백업합니다.
- 실행 후에는 변경·저장, 스킵 등의 결과가 표시됩니다.
- 오류가 발생한 경우 오류 건수를 확인할 수 있습니다.
- 전체를 선택하면 변경 내역과
log()로 기록한 내용을 포함한 전체 결과를 확인할 수 있습니다.
6.3 되돌리기 및 결과 비우기
방금 작업 되돌리기
방금 작업 되돌리기 를 선택하면 현재 세션에서 마지막으로 저장한 작업 전체를 변경 전 상태로 되돌릴 수 있습니다.
이전 작업을 확인하거나 복원하려면 백업 / 복원 을 사용합니다.
결과 비우기
결과 비우기 를 선택하면 현재 실행 결과만 삭제됩니다.
작업 대상과 변환 스크립트는 그대로 유지되며, 실제 보고서에는 영향을 주지 않습니다.
| 참고사항 | ||||
|---|---|---|---|---|
| ||||
[실행(저장)] 을 선택하면 서버에 저장된 원본 보고서에 변경 내용이 적용됩니다. 운영 중인 보고서를 변경하는 경우에는 먼저 Dry-Run 으로 변경 내용을 확인하세요. 여러 보고서를 일괄 변경할 때에는 일부 보고서를 대상으로 먼저 실행하여 결과를 확인한 후 적용 범위를 넓히는 것을 권장합니다. |
2 빠른 시작
Bulk Editor 는 다음 순서로 사용할 수 있습니다.
| |
최신 보고서를 기준으로 다시 작업하려면 해당 보고서를 다시 선택하여 Dry-Run 부터 실행하세요. |
7 백업과 복원
Bulk Editor 에서 ⚠실행(저장) 을
선택하여 실제 보고서에 적용합니다.| 정보 | ||||
|---|---|---|---|---|
| ||||
먼저 보고서 1건을 대상으로 대상 선택 →Dry-Run → 실행 → 되돌리기 까지 진행해 보는 것을 권장합니다. 작업 결과와 복원 방법을 확인한 후 여러 보고서에 적용하세요. |
3 메인 화면
메인 화면에서는 작업 대상을 선택하고 변환 스크립트를 작성한 후, 변경 내용을 미리 확인하거나 실제 보고서에 적용할 수 있습니다.
📌 화면 구성
3.1 상단 도구 모음
상단 도구 모음에서는 Bulk Editor 의 주요 기능을 실행할 수 있습니다.
「대상 선택」, 「대상 비우기」는 상단 도구 모음이 아닌 ① 작업 대상 영역에서 사용할 수 있습니다.
3.2 작업 단계
화면 상단에는 현재 작업 진행 상태를 확인할 수 있도록 ①~④ 단계가 표시됩니다.
| 정보 | ||||
|---|---|---|---|---|
| ||||
Dry-Run 이후 작업 대상을 변경하거나 변환 스크립트를 수정하면 ③ Dry-Run 검증과 ④ 실행 (저장) 상태가 초기화됩니다. 변경된 내용으로 다시 Dry-Run을 실행하여 결과를 확인하세요. |
3.3 작업 대상
① 작업 대상 영역에서는 Bulk Editor로 변경할 보고서를 확인하고 선택할 수 있습니다.
보고서의 처리 상태는 다음과 같이 표시됩니다.
상태 title 대기
상태 colour Blue title 변경 예정
작업 대상 영역 상단에는 전체 보고서 수와 현재 선택된 보고서 수가 표시됩니다.
등록된 작업 대상이 없는 경우에는 +대상 선택 을 선택하여 보고서를 추가할 수 있습니다.
| 정보 | ||||
|---|---|---|---|---|
| ||||
보고서 목록에서 항목을 마우스 오른쪽 버튼으로 클릭하면 「디자이너 실행」, 「문서 구조 보기」 기능을 사용할 수 있습니다. |
4 작업 대상 선택
대상 선택 을 선택하면 폴더와 보고서 목록을 확인할 수 있는 팝업이 열립니다.
- 왼쪽 폴더 영역에서 작업할 폴더를 선택합니다.
- 선택한 폴더에 포함된 보고서가 오른쪽 목록에 표시됩니다.
- 필요한 경우 검색창에 보고서명 또는 보고서 코드를 입력하여 목록을 검색합니다.
- 작업 대상으로 추가할 보고서를 체크합니다.
- 선택 N건 추가 를 선택하여 체크한 보고서를 작업 대상에 추가합니다.
- 다른 폴더의 보고서를 추가하려면 같은 방법으로 반복합니다. 작업 대상 선택이 끝나면 닫기를 선택합니다.
검색 중에도 이미 체크한 보고서는 선택 상태가 유지됩니다.
여러 폴더에서 보고서를 추가할 수 있으며, 이미 작업 대상에 추가된 보고서는 중복으로 추가되지 않습니다.
| 정보 | ||||
|---|---|---|---|---|
| ||||
폴더와 보고서 목록에는 현재 로그인한 사용자가 접근할 수 있는 보고서만 표시됩니다. 작업 대상으로 선택할 수 있는 항목은 모듈 코드가 SD, SC 인 i-AUD 보고서이며, 목록의 아이콘으로 보고서 유형을 확인할 수 있습니다. |
5 변환 스크립트 작성
변환 스크립트는 transform(doc) 함수에 작성합니다. doc 에는 작업 대상 보고서의 전체 문서 정보가 JSON 형태로 전달되며, 선택한 보고서마다 transfomr(doc) 함수가 한 번씩 실행됩니다.
SQL 과 서버스크립트도 doc 을 통해 조회하고 변경할 수 있습니다.
암호화된 항목은 편집 가능한 상태로 전달되며, 저장할 때 자동으로 다시 암호화되므로 스크립트에서 암·복호화를 직접 처리할 필요는 없습니다.
처음 사용하는 경우에는 편집기 오른쪽 위 「예제」에서 작업과 유사한 예제를 불러와 필요한 조건과 값만 수정하는 것을 권장합니다.
기본 스크립트
편집기를 처음 열면 다음 스크립트가 기본으로 제공됩니다.
| 코드 블럭 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
function transform(doc) {
walkAllControls(doc, function (ctl, form) {
var isGrid =
ctl.Type === 'DataGrid' ||
ctl.Type === 'GroupGrid' ||
ctl.Type === 'TreeGrid';
if (!isGrid) { return; }
(ctl.Columns || []).forEach(function (col) {
if (!col.Name || col.Name.indexOf('ITEM_NAME') === -1) { return; }
// ITEM_NAME 컬럼을 왼쪽 정렬로 변경 (기본값이므로 키를 삭제한다)
delete col.TextPosition;
log(form.Name + '/' + ctl.Name + '/' + col.Name + ' → 왼쪽 정렬');
});
});
return true;
} |
반환값과 처리 결과
transform(doc) 의 반환값과 실제 변경 여부에 따라 보고서의 처리 결과가 결정됩니다.
return true + 문서 변경return false| 정보 | ||||
|---|---|---|---|---|
| ||||
return true 를 사용하더라도 실제 문서 내용이 변경되지 않았다면 저장되지 않습니다. |
5.1 기본 함수
transform(doc) 안에서는 다음 함수를 별도로 선언하지 않고 사용할 수 있습니다.
walkAllControls(doc, cb)cb(ctl, form)을 호출합니다.eachOlapField(doc, cb)iOLAPView.Fields를 순회하며 cb(fld, grid, form)을 호출합니다.log(메시지)walkAllControls 가 탐색하는 컨테이너
ChildElements[]TabItems[].Controls[]Controls[]Rows[].Cells[].InnerControlOLAP 필드 주요 속
fld.Area0 숨김 · 1 행 · 2 열 · 3 필터 · 4 데이터fld.Category1 디멘젼 · 2 메저fld.CreateType0 일반 필드 · 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.TextPositioncol.HeaderPositionfld.TextAlignmentfld.HeaderAlignment색상 변경 시 Style.Type 확인
컨트롤의 색상을 직접 변경하려면 Style.Type에 따라 적용 방식을 확인해야 합니다.
Style.Type01Style.BoxStyle에 스타일 이름 지정2Style.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 예제 스크립트
편집기 오른쪽 위 「예제」 에서 자주 사용하는 변환 작업의 예제 스크립트를 불러올 수 있습니다.
예제를 선택하면 확인 후 현재 편집기의 내용이 선택한 예제로 변경됩니다. 목록에서 원하는 예제를 검색할 수도 있습니다.
※ 예제는 추가되거나 삭제될 실행하면 저장하기 전의 원본 보고서가 자동으로 백업됩니다.
한 번의 실행은 하나의 작업(Job) 으로 관리되며, 백업 / 복원 에서 작업별 내역을 확인하고 필요한 보고서를 이전 상태로 복원할 수 있습니다.
각 작업에는 작업 일시와 사용자를 기준으로 작업 ID 가 부여되며, 작업에 사용한 변환 스크립트도 함께 보관됩니다.
7.1 백업 / 복원 화면
백업 / 복원 을 선택하면 이전 작업의 백업 내역을 확인할 수 있습니다.
화면은 작업 목록, 백업 파일, 변환 스크립트 영역으로 구성됩니다.
| 영역 | 설명 |
|---|---|
| 작업 목록 | 작업 ID, 작업자, 작업 일시, 백업된 보고서 수를 확인합니다. 최근 작업부터 표시됩니다. |
| 백업 파일 | 선택한 작업에서 백업된 보고서 목록을 확인하고 복원할 보고서를 선택합니다. |
| 변환 스크립트 | 해당 작업에 사용한 변환 스크립트를 확인합니다. |
작업이 많은 경우 보고서명으로 검색하여 해당 보고서가 포함된 작업만 확인할 수 있습니다.
7.2 보고서 복원
- 백업 / 복원 을 선택합니다.
- 왼쪽 작업 목록에서 복원할 작업을 선택합니다.
- 오른쪽에서 백업된 보고서와 작업 일시를 확인합니다.
- 일부 보고서만 복원하려면 대상 보고서를 체크한 후 선택 복원 을 선택합니다.
- 해당 작업의 보고서를 모두 복원하려면 전체 복원 을 선택합니다.
- 복원이 완료되면 보고서별 처리 결과를 확인합니다.
| 경고 | ||||
|---|---|---|---|---|
| ||||
복원을 실행하면 현재 보고서의 내용이 백업된 시점의 내용으로 변경됩니다. 백업 이후 i-AUD Designer 등에서 추가로 수정한 내용도 함께 변경되므로, 복원하기 전에 보고서명과 작업 일시를 확인하세요. |
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)에서 보고서를 탐색하거나 변경할 조건을 작성할 때 사용할 수 있습니다.
예를 들어 특정 컨트롤의 속성을 일괄 변경하려는 경우, 먼저 문서 구조 보기에서 해당 컨트롤을 선택하여 속성 이름과 현재 값을 확인한 후 변환 스크립트를 작성할 수 있습니다.
1 개요
Bulk Editor 는 여러 보고서의 설정, SQL, 스크립트를 한 번에 변경할 수 있는 관리자 도구입니다.
변경 내용을 실제로 적용하기 전에 미리 확인(Dry-Run) 할 수 있으며, 변경 시 원본 보고서를 자동으로 백업합니다.
필요한 경우 작업 단위로 변경 전 상태로 되돌릴 수 있습니다.
컬럼 정렬 통일, Connection Code 교체, 테이블명 변경처럼 여러 보고서에 동일한 변경 사항을 일괄 적용해야 하는 경우에 사용할 수 있습니다.
Bulk Editor 의 작업은 다음 순서로 진행합니다.
변경 및 복원
Bulk Editor 는 보고서를 변경하기 전에 결과를 미리 확인할 수 있으며, 실제 저장 시 원본 보고서를 자동으로 백업합니다.
| 경고 | ||||
|---|---|---|---|---|
| ||||
[실행(저장)] 을 선택하면 서버에 저장된 원본 보고서에 변경 내용이 적용됩니다. 운영 중인 보고서를 변경하는 경우에는 먼저 Dry-Run 으로 변경 내용을 확인하세요. 여러 보고서를 일괄 변경할 때에는 일부 보고서를 대상으로 먼저 실행하여 결과를 확인한 후 적용 범위를 넓히는 것을 권장합니다. |
2 빠른 시작
Bulk Editor 는 다음 순서로 사용할 수 있습니다.
- 대상 선택 을 선택하여 변경할 보고서를 체크한 후 선택 추가 를 선택합니다.
- ② 변환 스크립트 영역에 transform(doc) 함수를 작성합니다. 처음 사용하는 경우 예제 에서 원하는 작업과 유사한 예제를 불러온 후 필요한 부분을 수정하는 것을 권장합니다.
- Dry-Run(저장 안 함) 을 선택하여 변경 내용을 미리 확인합니다. ③ 실행 결과 에서 보고서별 변경 전·후 내용을 확인할 수 있습니다.
- 변경 내용이 올바른지 확인한 후 ⚠ 실행 (저장) 을 선택하여 실제 보고서에 적용합니다.
- 적용한 내용을 되돌리려면 ↺ 방금 작업 되돌리기 를 사용합니다. 이전 작업의 백업을 확인하거나 복원하려면 백업 / 복원 을 사용합니다.
| 정보 | ||||
|---|---|---|---|---|
| ||||
먼저 보고서 1건을 대상으로 대상 선택 →Dry-Run → 실행 → 되돌리기 까지 진행해 보는 것을 권장합니다. 작업 결과와 복원 방법을 확인한 후 여러 보고서에 적용하세요. |
3 메인 화면
메인 화면에서는 작업 대상을 선택하고 변환 스크립트를 작성한 후, 변경 내용을 미리 확인하거나 실제 보고서에 적용할 수 있습니다.
📌 화면 구성
3.1 상단 도구 모음
상단 도구 모음에서는 Bulk Editor 의 주요 기능을 실행할 수 있습니다.
「대상 선택」, 「대상 비우기」는 상단 도구 모음이 아닌 ① 작업 대상 영역에서 사용할 수 있습니다.
3.2 작업 단계
화면 상단에는 현재 작업 진행 상태를 확인할 수 있도록 ①~④ 단계가 표시됩니다.
| 정보 | ||||
|---|---|---|---|---|
| ||||
Dry-Run 이후 작업 대상을 변경하거나 변환 스크립트를 수정하면 ③ Dry-Run 검증과 ④ 실행 (저장) 상태가 초기화됩니다. 변경된 내용으로 다시 Dry-Run을 실행하여 결과를 확인하세요. |
3.3 작업 대상
① 작업 대상 영역에서는 Bulk Editor로 변경할 보고서를 확인하고 선택할 수 있습니다.
보고서의 처리 상태는 다음과 같이 표시됩니다.
상태 title 대기
상태 colour Blue title 변경 예정
작업 대상 영역 상단에는 전체 보고서 수와 현재 선택된 보고서 수가 표시됩니다.
등록된 작업 대상이 없는 경우에는 +대상 선택 을 선택하여 보고서를 추가할 수 있습니다.
| 정보 | ||||
|---|---|---|---|---|
| ||||
보고서 목록에서 항목을 마우스 오른쪽 버튼으로 클릭하면 「디자이너 실행」, 「문서 구조 보기」 기능을 사용할 수 있습니다. |
4 작업 대상 선택
대상 선택 을 선택하면 폴더와 보고서 목록을 확인할 수 있는 팝업이 열립니다.
- 왼쪽 폴더 영역에서 작업할 폴더를 선택합니다.
- 선택한 폴더에 포함된 보고서가 오른쪽 목록에 표시됩니다.
- 필요한 경우 검색창에 보고서명 또는 보고서 코드를 입력하여 목록을 검색합니다.
- 작업 대상으로 추가할 보고서를 체크합니다.
- 선택 N건 추가 를 선택하여 체크한 보고서를 작업 대상에 추가합니다.
- 다른 폴더의 보고서를 추가하려면 같은 방법으로 반복합니다. 작업 대상 선택이 끝나면 닫기를 선택합니다.
검색 중에도 이미 체크한 보고서는 선택 상태가 유지됩니다.
여러 폴더에서 보고서를 추가할 수 있으며, 이미 작업 대상에 추가된 보고서는 중복으로 추가되지 않습니다.
| 정보 | ||||
|---|---|---|---|---|
| ||||
폴더와 보고서 목록에는 현재 로그인한 사용자가 접근할 수 있는 보고서만 표시됩니다. 작업 대상으로 선택할 수 있는 항목은 모듈 코드가 SD, SC 인 i-AUD 보고서이며, 목록의 아이콘으로 보고서 유형을 확인할 수 있습니다. |
5 변환 스크립트 작성
변환 스크립트는 transform(doc) 함수에 작성합니다. doc 에는 작업 대상 보고서의 전체 문서 정보가 JSON 형태로 전달되며, 선택한 보고서마다 transfomr(doc) 함수가 한 번씩 실행됩니다.
SQL 과 서버스크립트도 doc 을 통해 조회하고 변경할 수 있습니다.
암호화된 항목은 편집 가능한 상태로 전달되며, 저장할 때 자동으로 다시 암호화되므로 스크립트에서 암·복호화를 직접 처리할 필요는 없습니다.
처음 사용하는 경우에는 편집기 오른쪽 위 「예제」에서 작업과 유사한 예제를 불러와 필요한 조건과 값만 수정하는 것을 권장합니다.
기본 스크립트
편집기를 처음 열면 다음 스크립트가 기본으로 제공됩니다.
| 정보 | ||||
|---|---|---|---|---|
| ⑪ 문서 구조 확인 예제를 사용하세요. 보고서를 변경하지 않고 폼, 컨트롤, 데이터소스 등의 구조를 ③ 실행 결과에서 확인할 수 있습니다.
6 Dry-Run 과 실행
변환 스크립트를 작성한 후 Dry-Run으로 변경 내용을 미리 확인하고, 결과가 올바르면 실행하여 실제 보고서에 적용합니다.
Dry-Run 과 실행은 선택된 보고서를 한 건씩 처리하며, 실제 저장 여부에 차이가 있습니다.
- 변환 스크립트에 오류가 있는지 확인합니다. 오류가 있으면 작업을 시작하지 않습니다.
- 선택한 보고서에 transform(doc) 을 실행합니다.
- 변경된 내용이 있는지 확인합니다. 변경 내용이 없거나 return false 인 보고서는 저장 대상에서 제외됩니다.
- 변경된 내용이 있으면 ③ 실행 결과에 변경 전·후 내용을 표시합니다.
- Dry-Run 에서는 보고서를 저장하지 않고 변경 예정으로 표시합니다. 실행에서는 원본 보고서를 백업한 후 변경 내용을 저장합니다.
- 작업이 완료되면 변경, 스킵, 오류 건수를 확인할 수 있습니다.
| 정보 | ||||
|---|---|---|---|---|
| ||||
실제 보고서에 적용하기 전에 Dry-Run 을 실행하여 대상 보고서와 변경 내용을 확인하는 것을 권장합니다. |
6.1 실행 결과 확인
③ 실행 결과에서는 보고서별 변경 내용과 처리 상태를 확인할 수 있습니다.
변경 내용은 다음과 같이 변경된 위치, 이전 값, 변경 후 값으로 표시됩니다.
경로 = 이전값 ⇒ 새값
보고서 한 건에서 변경된 항목이 많은 경우 최대 30건까지 표시되며, 나머지는 ... 외 n건 으로 표시됩니다.
| 상태 | ||||
|---|---|---|---|---|
|
transform(doc)이 false를 반환하여 저장하지 않은 상태입니다.log() 로 기록한 내용과 변경된 항목의 상세 내용도 실행 결과에서 확인할 수 있습니다.
6.2 결과 필터
실행 결과 상단에는 처리 결과별
6.1 실행 결과 확인
③ 실
- API Open
- UI Open
- Read Only
- Not Use
- Hidden
- Not Recommend
- 해당 없음
7.0.610.20260820-11
| hidden | true |
|---|
| title | BCRM 정보 |
|---|
page no.
| Showpageid |
|---|
먼저 「문서 구조 보기」 에서 대상 보고서의 구조와 값을 확인하세요. 실제 보고서에 저장된 속성을 기준으로 변환 조건을 작성할 수 있습니다. |
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) { var isGrid = if (ctl.Type === 'DataGrid' ||"Label") { ctl.Style.Type === 'GroupGrid' || 2; ctl.TypeStyle.Border.Color.R === 'TreeGrid'0; if (!isGrid) { return; } (ctl.Columns || []).forEach(function (col) {ctl.Style.Border.Color.G = 0; if (!col.Name || col.Name.indexOf('ITEM_NAME') === -1) { return; }ctl.Style.Border.Color.B = 255; // ITEM_NAME 컬럼을 왼쪽 정렬로 변경 (기본값이므로 키를 삭제한다) delete col.TextPosition; log(form.Name + '/' + ctl.Name + '/' + col.Name + ' → 왼쪽 정렬' 변경'); }); }); return true; } |
반환값과 처리 결과
transform(doc) 의 반환값과 실제 변경 여부에 따라 보고서의 처리 결과가 결정됩니다.
return true + 문서 변경return false여러 컨트롤을 함께 복사한 경우에는 변경 전·후 컨트롤을 순서대로 비교하고, 같은 유형의 컨트롤을 기준으로 변환 스크립트를 생성합니다.
| 정보 | ||||
|---|---|---|---|---|
| ||||
return true 를 사용하더라도 실제 문서 내용이 변경되지 않았다면 저장되지 않습니다. |
5.1 기본 함수
transform(doc) 안에서는 다음 함수를 별도로 선언하지 않고 사용할 수 있습니다.
walkAllControls(doc, cb)cb(ctl, form)을 호출합니다.eachOlapField(doc, cb)iOLAPView.Fields를 순회하며 cb(fld, grid, form)을 호출합니다.log(메시지)walkAllControls 가 탐색하는 컨테이너
ChildElements[]TabItems[].Controls[]Controls[]Rows[].Cells[].InnerControlOLAP 필드 주요 속
fld.Area0 숨김 · 1 행 · 2 열 · 3 필터 · 4 데이터fld.Category1 디멘젼 · 2 메저fld.CreateType0 일반 필드 · 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.TextPositioncol.HeaderPositionfld.TextAlignmentfld.HeaderAlignment색상 변경 시 Style.Type 확인
컨트롤의 색상을 직접 변경하려면 Style.Type에 따라 적용 방식을 확인해야 합니다.
Style.Type01Style.BoxStyle에 스타일 이름 지정2Style.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 예제 스크립트
편집기 오른쪽 위 「예제」 에서 자주 사용하는 변환 작업의 예제 스크립트를 불러올 수 있습니다.
예제를 선택하면 확인 후 현재 편집기의 내용이 선택한 예제로 변경됩니다. 목록에서 원하는 예제를 검색할 수도 있습니다.
※ 예제는 추가되거나 삭제될 수 있습니다.
| 정보 | ||||
|---|---|---|---|---|
| ||||
어떤 속성을 변경해야 할지 모르는 경우 ⑪ 문서 구조 확인 예제를 사용하세요. 보고서를 변경하지 않고 폼, 컨트롤, 데이터소스 등의 구조를 ③ 실행 결과에서 확인할 수 있습니다. ⑰ 미사용 데이터소스 확인, ⑱ 컨트롤 이름 규칙 확인도 보고서를 변경하지 않는 점검용 예제입니다. |
6 Dry-Run 과 실행
변환 스크립트를 작성한 후 Dry-Run으로 변경 내용을 미리 확인하고, 결과가 올바르면 실행하여 실제 보고서에 적용합니다.
Dry-Run 과 실행은 선택된 보고서를 한 건씩 처리하며, 실제 저장 여부에 차이가 있습니다.
- 변환 스크립트에 오류가 있는지 확인합니다. 오류가 있으면 작업을 시작하지 않습니다.
- 선택한 보고서에 transform(doc) 을 실행합니다.
- 변경된 내용이 있는지 확인합니다. 변경 내용이 없거나 return false 인 보고서는 저장 대상에서 제외됩니다.
- 변경된 내용이 있으면 ③ 실행 결과에 변경 전·후 내용을 표시합니다.
- Dry-Run 에서는 보고서를 저장하지 않고 변경 예정으로 표시합니다. 실행에서는 원본 보고서를 백업한 후 변경 내용을 저장합니다.
- 작업이 완료되면 변경, 스킵, 오류 건수를 확인할 수 있습니다.
| 정보 | ||||
|---|---|---|---|---|
| ||||
실제 보고서에 적용하기 전에 Dry-Run 을 실행하여 대상 보고서와 변경 내용을 확인하는 것을 권장합니다. |
6.1 실행 결과 확인
③ 실행 결과에서는 보고서별 변경 내용과 처리 상태를 확인할 수 있습니다.
변경 내용은 다음과 같이 변경된 위치, 이전 값, 변경 후 값으로 표시됩니다.
경로 = 이전값 ⇒ 새값
보고서 한 건에서 변경된 항목이 많은 경우 최대 30건까지 표시되며, 나머지는 ... 외 n건 으로 표시됩니다.
| 상태 | ||||
|---|---|---|---|---|
|
transform(doc)이 false를 반환하여 저장하지 않은 상태입니다.log() 로 기록한 내용과 변경된 항목의 상세 내용도 실행 결과에서 확인할 수 있습니다.
6.2 결과 필터
실행 결과 상단에는 처리 결과별
6.1 실행 결과 확인
③ 실
| |
자동 생성된 스크립트는 비교한 컨트롤의 유형과 변경 값을 기준으로 작성됩니다. 여러 보고서에 적용하기 전에 |
9.3 변환 스크립트 사용
비교가 완료되면 편집기로 보내기 를 선택하여 자동 생성된 스크립트를 메인 화면의 변환 스크립트 편집기로 가져올 수 있습니다.
편집기로 가져온 후에는 적용할 보고서를 선택하고 Dry-Run 으로 변경 내용을 확인한 후 실행합니다.
지우기 를 선택하면 입력한 JSON 과 비교 결과를 모두 삭제할 수 있습니다.
| 정보 | ||||
|---|---|---|---|---|
| ||||
스크립트를 생성한 후 변경 전 JSON(A) 또는 변경 후 JSON(B)을 수정하면 기존 스크립트를 편집기로 보낼 수 없습니다. 입력 내용을 수정한 경우 비교 실행 을 다시 선택하여 변환 스크립트를 새로 생성하세요. |
활용 예시
Designer에서 컨트롤의 속성을 직접 변경한 후, 변경 전·후 컨트롤을 JSON 비교에 붙여넣으면 어떤 속성을 변경해야 하는지 직접 찾지 않고도 변환 스크립트를 생성할 수 있습니다.
예를 들어 여러 보고서의 Label 테두리 색상을 동일하게 변경하려는 경우 다음과 같이 사용할 수 있습니다.
10 도움말
상단의 도움말 을 선택하면 변환 스크립트 작성 가이드가 팝업으로 표시됩니다.
다음과 같은 내용을 화면에서 바로 확인할 수 있습니다.
transform(doc)작성 방법과 반환값walkAllControls,eachOlapField,log기본 함수- 보고서 문서 구조
- 속성 변경 시 참고사항
- 자주 사용하는 변환 스크립트 예제
자세한 내용은 변환 스크립트 작성 을 참고하세요.
11 FAQ
| 펼치기 | ||
|---|---|---|
| ||
변환 스크립트의 조건과 대상 보고서의 실제 구조가 일치하는지 확인하세요. 예를 들어 기본 스크립트는 컬럼명에 「문서 구조 보기」또는 ⑪ 문서 구조 확인 예제를 이용하여 실제 속성 이름과 값을 확인한 후 스크립트의 조건을 확인하세요. |
| 펼치기 | ||
|---|---|---|
| ||
암호화된 SQL과 서버 스크립트는 변환 스크립트에서 편집할 수 있는 상태로 제공되며, 저장할 때 자동으로 다시 암호화됩니다. 변환 스크립트에서 암호화 또는 복호화를 별도로 처리할 필요는 없습니다. |
| 펼치기 | ||
|---|---|---|
| ||
아니요. 오류가 발생한 보고서는 오류로 처리하고 나머지 보고서의 작업은 계속 진행합니다. 작업이 완료된 후 ③ 실행 결과에서 오류가 발생한 보고서와 내용을 확인할 수 있습니다. 필요한 경우 해당 보고서만 다시 선택하여 Dry-Run부터 실행하세요. |
| 펼치기 | ||
|---|---|---|
| ||
실제 변경 내용이 없는 보고서는 저장되지 않습니다. 다만 기존 문자열에 새로운 내용을 추가하는 방식의 스크립트는 반복 실행할 경우 같은 내용이 중복될 수 있습니다. 이러한 경우에는 이미 적용되었는지 확인하는 조건을 추가하는 것을 권장합니다. |
| 펼치기 | ||
|---|---|---|
| ||
이미 작업이 진행 중인 경우에는 새로운 Dry-Run 또는 실행을 시작하지 않으며 안내 메시지가 표시됩니다. 현재 작업이 완료된 후 다시 실행하세요. |
| 펼치기 | ||
|---|---|---|
| ||
상단의 백업 / 복원 에서 이전 작업과 백업된 보고서를 확인할 수 있습니다. 작업별로 백업된 보고서와 작업 일시, 사용한 변환 스크립트를 확인할 수 있으며 필요한 보고서를 선택하여 복원할 수 있습니다. 자세한 내용은 백업과 복원을 참고하세요. |
| 펼치기 | ||
|---|---|---|
| ||
네. 복원을 실행하기 전의 현재 상태도 자동으로 백업됩니다. 복원 이전 상태로 다시 되돌리려면 백업 / 복원 에서 |
| 기능 정보 |
|
|
|
|
|
|
|
|---|---|---|---|---|---|---|---|
| 시작 버전 정보 |
| ||||||
| 페이지 속성 | |||||||
|---|---|---|---|---|---|---|---|
| |||||||
|






