페이지 트리
메타 데이터의 끝으로 건너뛰기
메타 데이터의 시작으로 이동

이 페이지의 이전 버전을 보고 있습니다. 현재 버전 보기.

현재와 비교 페이지 이력 보기

« 이전 버전 2 다음 »


page no.  181338149

Start Release No : 7.0.610.20260820-11 / Update Release No : 

작성자 : 김예슬  / 검수자 : 

1 개요

Bulk Editor 는 여러 보고서의 설정, SQL, 스크립트를 한 번에 변경할 수 있는 관리자 도구입니다.

변경 내용을 실제로 적용하기 전에 미리 확인(Dry-Run) 할 수 있으며, 변경 시 원본 보고서를 자동으로 백업합니다.

필요한 경우 작업 단위로 변경 전 상태로 되돌릴 수 있습니다.

컬럼 정렬 통일, Connection Code 교체, 테이블명 변경처럼 여러 보고서에 동일한 변경 사항을 일괄 적용해야 하는 경우에 사용할 수 있습니다.


Bulk Editor 의 작업은 다음 순서로 진행합니다.

변경 및 복원

Bulk Editor 는 보고서를 변경하기 전에 결과를 미리 확인할 수 있으며, 실제 저장 시 원본 보고서를 자동으로 백업합니다.

기능설명
미리 확인(Dry-Run)보고서를 저장하지 않고 변경될 내용만 확인합니다. 여러 번 실행해도 원본 보고서는 변경되지 않습니다.
스크립트 검사실행 전에 변환 스크립트의 오류를 확인합니다.
자동 백업변경 내용을 저장하기 전에 원본 보고서를 자동으로 백업합니다.
변경 충돌 확인작업 중 다른 사용자가 같은 보고서를 수정한 경우 저장하지 않고 해당 보고서를 오류로 표시합니다.
되돌리기마지막으로 저장한 작업을 메인 화면에서 변경 전 상태로 되돌릴 수 있습니다.
복원 시 백업되돌리기를 실행할 때 현재 상태도 자동으로 백업하여 필요한 경우 복원 이전 상태로 다시 되돌릴 수 있습니다.

⚠️ 실행 전 확인

[실행(저장)] 을 선택하면 서버에 저장된 원본 보고서에 변경 내용이 적용됩니다.

운영 중인 보고서를 변경하는 경우에는 먼저 Dry-Run 으로 변경 내용을 확인하세요.

여러 보고서를 일괄 변경할 때에는 일부 보고서를 대상으로 먼저 실행하여 결과를 확인한 후 적용 범위를 넓히는 것을 권장합니다.

2 빠른 시작

Bulk Editor 는 다음 순서로 사용할 수 있습니다.

  1. 대상 선택 을 선택하여 변경할 보고서를 체크한 후 선택 추가 를 선택합니다.
  2. ② 변환 스크립트 영역에 transform(doc) 함수를 작성합니다. 처음 사용하는 경우 예제 에서 원하는 작업과 유사한 예제를 불러온 후 필요한 부분을 수정하는 것을 권장합니다.
  3. Dry-Run(저장 안 함) 을 선택하여 변경 내용을 미리 확인합니다. ③ 실행 결과 에서 보고서별 변경 전·후 내용을 확인할 수 있습니다.
  4. 변경 내용이 올바른지 확인한 후 ⚠ 실행 (저장) 을 선택하여 실제 보고서에 적용합니다.
  5. 적용한 내용을 되돌리려면 ↺ 방금 작업 되돌리기 를 사용합니다. 이전 작업의 백업을 확인하거나 복원하려면 백업 / 복원 을 사용합니다.

💡 처음 사용하는 경우

먼저 보고서 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 작업 대상 선택

대상 선택 을 선택하면 폴더와 보고서 목록을 확인할 수 있는 팝업이 열립니다.

  1. 왼쪽 폴더 영역에서 작업할 폴더를 선택합니다.
  2. 선택한 폴더에 포함된 보고서가 오른쪽 목록에 표시됩니다.
  3. 필요한 경우 검색창에 보고서명 또는 보고서 코드를 입력하여 목록을 검색합니다.
  4. 작업 대상으로 추가할 보고서를 체크합니다.
  5. 선택 N건 추가 를 선택하여 체크한 보고서를 작업 대상에 추가합니다.
  6. 다른 폴더의 보고서를 추가하려면 같은 방법으로 반복합니다. 작업 대상 선택이 끝나면 닫기를 선택합니다.

검색 중에도 이미 체크한 보고서는 선택 상태가 유지됩니다.

여러 폴더에서 보고서를 추가할 수 있으며, 이미 작업 대상에 추가된 보고서는 중복으로 추가되지 않습니다.

📌 표시되는 보고서

폴더와 보고서 목록에는 현재 로그인한 사용자가 접근할 수 있는 보고서만 표시됩니다.

작업 대상으로 선택할 수 있는 항목은 모듈 코드가 SD, SC 인 i-AUD 보고서이며, 목록의 아이콘으로 보고서 유형을 확인할 수 있습니다.

5 변환 스크립트 작성

변환 스크립트는 transform(doc) 함수에 작성합니다. doc 에는 작업 대상 보고서의 전체 문서 정보가 JSON 형태로 전달되며, 선택한 보고서마다 transfomr(doc) 함수가 한 번씩 실행됩니다.

SQL 과 서버스크립트도 doc 을 통해 조회하고 변경할 수 있습니다.

암호화된 항목은 편집 가능한 상태로 전달되며, 저장할 때 자동으로 다시 암호화되므로 스크립트에서 암·복호화를 직접 처리할 필요는 없습니다.

처음 사용하는 경우에는 편집기 오른쪽 위 「예제」에서 작업과 유사한 예제를 불러와 필요한 조건과 값만 수정하는 것을 권장합니다.

기본 스크립트

편집기를 처음 열면 다음 스크립트가 기본으로 제공됩니다.

transform(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, AddInChildElements[]
TabTabItems[].Controls[]
iGrid (MX-Grid)Controls[]
TableLayoutRows[].Cells[].InnerControl

OLAP 필드 주요 속

속성
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.HeaderPosition
OLAP 필드fld.TextAlignmentfld.HeaderAlignment

색상 변경 시 Style.Type 확인

컨트롤의 색상을 직접 변경하려면 Style.Type에 따라 적용 방식을 확인해야 합니다.

Style.Type의미색상 적용
0컨트롤 기본 스킨직접 지정한 색상이 적용되지 않음
1공통 BoxStyle 사용Style.BoxStyle에 스타일 이름 지정
2직접 지정Style.Background.Color 등의 속성 사용

색상을 변경했지만 화면에 적용되지 않는 경우 Style.Type0 또는 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 과 실행은 선택된 보고서를 한 건씩 처리하며, 실제 저장 여부에 차이가 있습니다.


  1. 변환 스크립트에 오류가 있는지 확인합니다. 오류가 있으면 작업을 시작하지 않습니다.
  2. 선택한 보고서에 transform(doc) 을 실행합니다.
  3. 변경된 내용이 있는지 확인합니다. 변경 내용이 없거나 return false 인 보고서는 저장 대상에서 제외됩니다.
  4. 변경된 내용이 있으면 ③ 실행 결과에 변경 전·후 내용을 표시합니다.
  5. Dry-Run 에서는 보고서를 저장하지 않고 변경 예정으로 표시합니다. 실행에서는 원본 보고서를 백업한 후 변경 내용을 저장합니다.
  6. 작업이 완료되면 변경, 스킵, 오류 건수를 확인할 수 있습니다.

💡 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


page no.  181338149

Start Release No : 7.0.610.20260820-11 / Update Release No : 

작성자 : 김예슬  / 검수자 : 

1 개요

Bulk Editor 는 여러 보고서의 설정, SQL, 스크립트를 한 번에 변경할 수 있는 관리자 도구입니다.

변경 내용을 실제로 적용하기 전에 미리 확인(Dry-Run) 할 수 있으며, 변경 시 원본 보고서를 자동으로 백업합니다.

필요한 경우 작업 단위로 변경 전 상태로 되돌릴 수 있습니다.

컬럼 정렬 통일, Connection Code 교체, 테이블명 변경처럼 여러 보고서에 동일한 변경 사항을 일괄 적용해야 하는 경우에 사용할 수 있습니다.


Bulk Editor 의 작업은 다음 순서로 진행합니다.

변경 및 복원

Bulk Editor 는 보고서를 변경하기 전에 결과를 미리 확인할 수 있으며, 실제 저장 시 원본 보고서를 자동으로 백업합니다.

기능설명
미리 확인(Dry-Run)보고서를 저장하지 않고 변경될 내용만 확인합니다. 여러 번 실행해도 원본 보고서는 변경되지 않습니다.
스크립트 검사실행 전에 변환 스크립트의 오류를 확인합니다.
자동 백업변경 내용을 저장하기 전에 원본 보고서를 자동으로 백업합니다.
변경 충돌 확인작업 중 다른 사용자가 같은 보고서를 수정한 경우 저장하지 않고 해당 보고서를 오류로 표시합니다.
되돌리기마지막으로 저장한 작업을 메인 화면에서 변경 전 상태로 되돌릴 수 있습니다.
복원 시 백업되돌리기를 실행할 때 현재 상태도 자동으로 백업하여 필요한 경우 복원 이전 상태로 다시 되돌릴 수 있습니다.

⚠️ 실행 전 확인

[실행(저장)] 을 선택하면 서버에 저장된 원본 보고서에 변경 내용이 적용됩니다.

운영 중인 보고서를 변경하는 경우에는 먼저 Dry-Run 으로 변경 내용을 확인하세요.

여러 보고서를 일괄 변경할 때에는 일부 보고서를 대상으로 먼저 실행하여 결과를 확인한 후 적용 범위를 넓히는 것을 권장합니다.

2 빠른 시작

Bulk Editor 는 다음 순서로 사용할 수 있습니다.

  1. 대상 선택 을 선택하여 변경할 보고서를 체크한 후 선택 추가 를 선택합니다.
  2. ② 변환 스크립트 영역에 transform(doc) 함수를 작성합니다. 처음 사용하는 경우 예제 에서 원하는 작업과 유사한 예제를 불러온 후 필요한 부분을 수정하는 것을 권장합니다.
  3. Dry-Run(저장 안 함) 을 선택하여 변경 내용을 미리 확인합니다. ③ 실행 결과 에서 보고서별 변경 전·후 내용을 확인할 수 있습니다.
  4. 변경 내용이 올바른지 확인한 후 ⚠ 실행 (저장) 을 선택하여 실제 보고서에 적용합니다.
  5. 적용한 내용을 되돌리려면 ↺ 방금 작업 되돌리기 를 사용합니다. 이전 작업의 백업을 확인하거나 복원하려면 백업 / 복원 을 사용합니다.

💡 처음 사용하는 경우

먼저 보고서 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 작업 대상 선택

대상 선택 을 선택하면 폴더와 보고서 목록을 확인할 수 있는 팝업이 열립니다.

  1. 왼쪽 폴더 영역에서 작업할 폴더를 선택합니다.
  2. 선택한 폴더에 포함된 보고서가 오른쪽 목록에 표시됩니다.
  3. 필요한 경우 검색창에 보고서명 또는 보고서 코드를 입력하여 목록을 검색합니다.
  4. 작업 대상으로 추가할 보고서를 체크합니다.
  5. 선택 N건 추가 를 선택하여 체크한 보고서를 작업 대상에 추가합니다.
  6. 다른 폴더의 보고서를 추가하려면 같은 방법으로 반복합니다. 작업 대상 선택이 끝나면 닫기를 선택합니다.

검색 중에도 이미 체크한 보고서는 선택 상태가 유지됩니다.

여러 폴더에서 보고서를 추가할 수 있으며, 이미 작업 대상에 추가된 보고서는 중복으로 추가되지 않습니다.

📌 표시되는 보고서

폴더와 보고서 목록에는 현재 로그인한 사용자가 접근할 수 있는 보고서만 표시됩니다.

작업 대상으로 선택할 수 있는 항목은 모듈 코드가 SD, SC 인 i-AUD 보고서이며, 목록의 아이콘으로 보고서 유형을 확인할 수 있습니다.

5 변환 스크립트 작성

변환 스크립트는 transform(doc) 함수에 작성합니다. doc 에는 작업 대상 보고서의 전체 문서 정보가 JSON 형태로 전달되며, 선택한 보고서마다 transfomr(doc) 함수가 한 번씩 실행됩니다.

SQL 과 서버스크립트도 doc 을 통해 조회하고 변경할 수 있습니다.

암호화된 항목은 편집 가능한 상태로 전달되며, 저장할 때 자동으로 다시 암호화되므로 스크립트에서 암·복호화를 직접 처리할 필요는 없습니다.

처음 사용하는 경우에는 편집기 오른쪽 위 「예제」에서 작업과 유사한 예제를 불러와 필요한 조건과 값만 수정하는 것을 권장합니다.

기본 스크립트

편집기를 처음 열면 다음 스크립트가 기본으로 제공됩니다.

transform(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, AddInChildElements[]
TabTabItems[].Controls[]
iGrid (MX-Grid)Controls[]
TableLayoutRows[].Cells[].InnerControl

OLAP 필드 주요 속

속성
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.HeaderPosition
OLAP 필드fld.TextAlignmentfld.HeaderAlignment

색상 변경 시 Style.Type 확인

컨트롤의 색상을 직접 변경하려면 Style.Type에 따라 적용 방식을 확인해야 합니다.

Style.Type의미색상 적용
0컨트롤 기본 스킨직접 지정한 색상이 적용되지 않음
1공통 BoxStyle 사용Style.BoxStyle에 스타일 이름 지정
2직접 지정Style.Background.Color 등의 속성 사용

색상을 변경했지만 화면에 적용되지 않는 경우 Style.Type0 또는 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 과 실행은 선택된 보고서를 한 건씩 처리하며, 실제 저장 여부에 차이가 있습니다.


  1. 변환 스크립트에 오류가 있는지 확인합니다. 오류가 있으면 작업을 시작하지 않습니다.
  2. 선택한 보고서에 transform(doc) 을 실행합니다.
  3. 변경된 내용이 있는지 확인합니다. 변경 내용이 없거나 return false 인 보고서는 저장 대상에서 제외됩니다.
  4. 변경된 내용이 있으면 ③ 실행 결과에 변경 전·후 내용을 표시합니다.
  5. Dry-Run 에서는 보고서를 저장하지 않고 변경 예정으로 표시합니다. 실행에서는 원본 보고서를 백업한 후 변경 내용을 저장합니다.
  6. 작업이 완료되면 변경, 스킵, 오류 건수를 확인할 수 있습니다.

💡 Dry-Run을 먼저 실행하세요

실제 보고서에 적용하기 전에 Dry-Run 을 실행하여 대상 보고서와 변경 내용을 확인하는 것을 권장합니다.

6.1 실행 결과 확인

③ 실행 결과에서는 보고서별 변경 내용과 처리 상태를 확인할 수 있습니다.

변경 내용은 다음과 같이 변경된 위치, 이전 값, 변경 후 값으로 표시됩니다.

경로 = 이전값 ⇒ 새값

보고서 한 건에서 변경된 항목이 많은 경우 최대 30건까지 표시되며, 나머지는 ... 외 n건 으로 표시됩니다.

상태설명

변경 예정

Dry-Run에서 변경 내용이 확인된 상태입니다. 실제 보고서에는 저장되지 않습니다.

저장 완료

변경 전 원본을 백업한 후 변경 내용이 정상적으로 저장된 상태입니다.

변경 없음 / 스킵

변경된 내용이 없거나 transform(doc)이 false를 반환하여 저장하지 않은 상태입니다.

조회 실패

작업 대상 보고서를 불러오지 못한 상태입니다.

오류

변환 스크립트 실행 중 오류가 발생한 상태입니다.

저장 실패

변경 내용을 저장하지 못한 상태입니다. 다른 사용자의 동시 수정으로 인한 충돌도 포함됩니다.

log() 로 기록한 내용과 변경된 항목의 상세 내용도 실행 결과에서 확인할 수 있습니다.

6.2 결과 필터

실행 결과 상단에는 처리 결과별 

6.1 실행 결과 확인

③ 실

기능 정보
  • API Open
  • UI Open
  • Read Only
  • Not Use
  • Hidden
  • Not Recommend
  • 해당 없음
시작 버전 정보
  • 7.0.610.20260820-11


page no.  181338149

Start Release No : 7.0.610.20260820-11 / Update Release No : 

작성자 : 김예슬  / 검수자 : 

1 개요

Bulk Editor 는 여러 보고서의 설정, SQL, 스크립트를 한 번에 변경할 수 있는 관리자 도구입니다.

변경 내용을 실제로 적용하기 전에 미리 확인(Dry-Run) 할 수 있으며, 변경 시 원본 보고서를 자동으로 백업합니다.

필요한 경우 작업 단위로 변경 전 상태로 되돌릴 수 있습니다.

컬럼 정렬 통일, Connection Code 교체, 테이블명 변경처럼 여러 보고서에 동일한 변경 사항을 일괄 적용해야 하는 경우에 사용할 수 있습니다.


Bulk Editor 의 작업은 다음 순서로 진행합니다.

변경 및 복원

Bulk Editor 는 보고서를 변경하기 전에 결과를 미리 확인할 수 있으며, 실제 저장 시 원본 보고서를 자동으로 백업합니다.

기능설명
미리 확인(Dry-Run)보고서를 저장하지 않고 변경될 내용만 확인합니다. 여러 번 실행해도 원본 보고서는 변경되지 않습니다.
스크립트 검사실행 전에 변환 스크립트의 오류를 확인합니다.
자동 백업변경 내용을 저장하기 전에 원본 보고서를 자동으로 백업합니다.
변경 충돌 확인작업 중 다른 사용자가 같은 보고서를 수정한 경우 저장하지 않고 해당 보고서를 오류로 표시합니다.
되돌리기마지막으로 저장한 작업을 메인 화면에서 변경 전 상태로 되돌릴 수 있습니다.
복원 시 백업되돌리기를 실행할 때 현재 상태도 자동으로 백업하여 필요한 경우 복원 이전 상태로 다시 되돌릴 수 있습니다.

⚠️ 실행 전 확인

[실행(저장)] 을 선택하면 서버에 저장된 원본 보고서에 변경 내용이 적용됩니다.

운영 중인 보고서를 변경하는 경우에는 먼저 Dry-Run 으로 변경 내용을 확인하세요.

여러 보고서를 일괄 변경할 때에는 일부 보고서를 대상으로 먼저 실행하여 결과를 확인한 후 적용 범위를 넓히는 것을 권장합니다.

2 빠른 시작

Bulk Editor 는 다음 순서로 사용할 수 있습니다.

  1. 대상 선택 을 선택하여 변경할 보고서를 체크한 후 선택 추가 를 선택합니다.
  2. ② 변환 스크립트 영역에 transform(doc) 함수를 작성합니다. 처음 사용하는 경우 예제 에서 원하는 작업과 유사한 예제를 불러온 후 필요한 부분을 수정하는 것을 권장합니다.
  3. Dry-Run(저장 안 함) 을 선택하여 변경 내용을 미리 확인합니다. ③ 실행 결과 에서 보고서별 변경 전·후 내용을 확인할 수 있습니다.
  4. 변경 내용이 올바른지 확인한 후 ⚠ 실행 (저장) 을 선택하여 실제 보고서에 적용합니다.
  5. 적용한 내용을 되돌리려면 ↺ 방금 작업 되돌리기 를 사용합니다. 이전 작업의 백업을 확인하거나 복원하려면 백업 / 복원 을 사용합니다.

💡 처음 사용하는 경우

먼저 보고서 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 작업 대상 선택

대상 선택 을 선택하면 폴더와 보고서 목록을 확인할 수 있는 팝업이 열립니다.

  1. 왼쪽 폴더 영역에서 작업할 폴더를 선택합니다.
  2. 선택한 폴더에 포함된 보고서가 오른쪽 목록에 표시됩니다.
  3. 필요한 경우 검색창에 보고서명 또는 보고서 코드를 입력하여 목록을 검색합니다.
  4. 작업 대상으로 추가할 보고서를 체크합니다.
  5. 선택 N건 추가 를 선택하여 체크한 보고서를 작업 대상에 추가합니다.
  6. 다른 폴더의 보고서를 추가하려면 같은 방법으로 반복합니다. 작업 대상 선택이 끝나면 닫기를 선택합니다.

검색 중에도 이미 체크한 보고서는 선택 상태가 유지됩니다.

여러 폴더에서 보고서를 추가할 수 있으며, 이미 작업 대상에 추가된 보고서는 중복으로 추가되지 않습니다.

📌 표시되는 보고서

폴더와 보고서 목록에는 현재 로그인한 사용자가 접근할 수 있는 보고서만 표시됩니다.

작업 대상으로 선택할 수 있는 항목은 모듈 코드가 SD, SC 인 i-AUD 보고서이며, 목록의 아이콘으로 보고서 유형을 확인할 수 있습니다.

5 변환 스크립트 작성

변환 스크립트는 transform(doc) 함수에 작성합니다. doc 에는 작업 대상 보고서의 전체 문서 정보가 JSON 형태로 전달되며, 선택한 보고서마다 transfomr(doc) 함수가 한 번씩 실행됩니다.

SQL 과 서버스크립트도 doc 을 통해 조회하고 변경할 수 있습니다.

암호화된 항목은 편집 가능한 상태로 전달되며, 저장할 때 자동으로 다시 암호화되므로 스크립트에서 암·복호화를 직접 처리할 필요는 없습니다.

처음 사용하는 경우에는 편집기 오른쪽 위 「예제」에서 작업과 유사한 예제를 불러와 필요한 조건과 값만 수정하는 것을 권장합니다.

기본 스크립트

편집기를 처음 열면 다음 스크립트가 기본으로 제공됩니다.

transform(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, AddInChildElements[]
TabTabItems[].Controls[]
iGrid (MX-Grid)Controls[]
TableLayoutRows[].Cells[].InnerControl

OLAP 필드 주요 속

속성
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.HeaderPosition
OLAP 필드fld.TextAlignmentfld.HeaderAlignment

색상 변경 시 Style.Type 확인

컨트롤의 색상을 직접 변경하려면 Style.Type에 따라 적용 방식을 확인해야 합니다.

Style.Type의미색상 적용
0컨트롤 기본 스킨직접 지정한 색상이 적용되지 않음
1공통 BoxStyle 사용Style.BoxStyle에 스타일 이름 지정
2직접 지정Style.Background.Color 등의 속성 사용

색상을 변경했지만 화면에 적용되지 않는 경우 Style.Type0 또는 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 과 실행은 선택된 보고서를 한 건씩 처리하며, 실제 저장 여부에 차이가 있습니다.


  1. 변환 스크립트에 오류가 있는지 확인합니다. 오류가 있으면 작업을 시작하지 않습니다.
  2. 선택한 보고서에 transform(doc) 을 실행합니다.
  3. 변경된 내용이 있는지 확인합니다. 변경 내용이 없거나 return false 인 보고서는 저장 대상에서 제외됩니다.
  4. 변경된 내용이 있으면 ③ 실행 결과에 변경 전·후 내용을 표시합니다.
  5. Dry-Run 에서는 보고서를 저장하지 않고 변경 예정으로 표시합니다. 실행에서는 원본 보고서를 백업한 후 변경 내용을 저장합니다.
  6. 작업이 완료되면 변경, 스킵, 오류 건수를 확인할 수 있습니다.

💡 Dry-Run을 먼저 실행하세요

실제 보고서에 적용하기 전에 Dry-Run 을 실행하여 대상 보고서와 변경 내용을 확인하는 것을 권장합니다.

6.1 실행 결과 확인

③ 실행 결과에서는 보고서별 변경 내용과 처리 상태를 확인할 수 있습니다.

변경 내용은 다음과 같이 변경된 위치, 이전 값, 변경 후 값으로 표시됩니다.

경로 = 이전값 ⇒ 새값

보고서 한 건에서 변경된 항목이 많은 경우 최대 30건까지 표시되며, 나머지는 ... 외 n건 으로 표시됩니다.

상태설명

변경 예정

Dry-Run에서 변경 내용이 확인된 상태입니다. 실제 보고서에는 저장되지 않습니다.

저장 완료

변경 전 원본을 백업한 후 변경 내용이 정상적으로 저장된 상태입니다.

변경 없음 / 스킵

변경된 내용이 없거나 transform(doc)이 false를 반환하여 저장하지 않은 상태입니다.

조회 실패

작업 대상 보고서를 불러오지 못한 상태입니다.

오류

변환 스크립트 실행 중 오류가 발생한 상태입니다.

저장 실패

변경 내용을 저장하지 못한 상태입니다. 다른 사용자의 동시 수정으로 인한 충돌도 포함됩니다.

log() 로 기록한 내용과 변경된 항목의 상세 내용도 실행 결과에서 확인할 수 있습니다.

6.2 결과 필터

실행 결과 상단에는 처리 결과별 

6.1 실행 결과 확인

③ 실

기능 정보
  • API Open
  • UI Open
  • Read Only
  • Not Use
  • Hidden
  • Not Recommend
  • 해당 없음
시작 버전 정보
  • 7.0.610.20260820-11

  • 레이블 없음