본문 바로가기
시스템 & 트랜잭션

[SAP ABAP] LSMW 사용법 — 14단계 대량 이관 + Batch Input Recording (LSMW·SHDB·SM35)

by Song.sh 2026. 5. 18.

SAP 시스템에 수백~수만 건의 마스터 데이터를 한 번에 올려야 하는 상황 은 신규 시스템 오픈, 자재 일괄 등록, 대량 입고 취소·재처리, 거래처 일괄 변경 등에서 자주 발생합니다. 매번 화면을 손으로 두드리기는 현실적으로 불가능합니다.

 

이럴 때 쓰는 SAP 표준 도구가 LSMW(Legacy System Migration Workbench) 입니다. 트랜잭션 LSMW 한 번이면 엑셀 같은 외부 데이터 파일을 SAP 화면에 자동으로 흘려넣어 대량 처리해 줍니다. ABAP 코드를 한 줄도 짜지 않아도 되는 게 가장 큰 강점입니다.

 

이 글은 LSMW 의 14단계 표준 절차, 4가지 입력 방식의 차이, 실무에서 가장 많이 쓰는 Batch Input Recording 방식의 사용법, 그리고 S/4HANA 환경에서의 대안인 Migration Cockpit 비교까지 정리한 메모입니다.


핵심 — LSMW 는 14단계 마법사로 외부 데이터를 SAP 화면에 자동 입력하는 도구

LSMW 의 본질은 "외부 파일(주로 엑셀·CSV) 의 각 행을 SAP 표준 화면에 한 번씩 자동으로 입력해 주는 자동화 도구" 입니다. 사용자가 ME21N(구매오더 생성) 화면을 100번 직접 클릭할 일을, 100행짜리 엑셀과 LSMW 프로젝트 하나로 끝낼 수 있습니다.

항목 내용
T-Code LSMW
주 용도 대량 마스터 / 트랜잭션 데이터 SAP 입력 · 정기 데이터 보정 작업
입력 데이터 엑셀(XLSX) · CSV · 고정폭 텍스트 등 외부 파일
코딩 필요 기본은 No-code (필드 매핑·변환 규칙은 폼 입력). 복잡한 변환은 ABAP 한 줄짜리 식 또는 폼 루틴 추가
SAP 버전 지원 ECC : 정식 지원 · S/4HANA : 사용 가능하지만 deprecated, LTMC / LTMOM(Migration Cockpit) 권장
프로젝트 구조 Project → Subproject → Object 3계층 (예: ZMM_MASTERZLIFNRZLIFNR_CREATE)

LSMW 의 4가지 입력 방식 중 무엇을 쓸지 먼저 결정해야 합니다.

방식 설명 선택 기준
Standard Batch / Direct Input SAP 가 미리 만든 표준 입력 프로그램 사용 (예: RMDATIND 자재 마스터) 표준 오브젝트(자재·고객·거래처 등) 대량 등록 · 가장 빠름
Batch Input Recording SHDB 로 화면 조작을 녹화해 그대로 재생 실무 가장 흔함 · CBO 화면 · 표준에 직접 지원 없는 케이스
BAPI 표준 BAPI 함수 호출로 처리 대량 빠른 처리 + 표준 BAPI 가 존재할 때 (예: BAPI_MATERIAL_SAVEDATA)
IDoc IDoc 파일을 통한 ALE / EDI 인터페이스 활용 시스템 간 인터페이스 통합 시

대부분의 실무 케이스는 Batch Input Recording 으로 해결합니다. 이 글의 단계별 설명도 Recording 방식을 기준으로 진행합니다.


1단계 — 프로젝트 / 서브프로젝트 / 오브젝트 생성

LSMW 작업은 Project → Subproject → Object 3계층 단위로 관리됩니다. 같은 Project 안에 여러 데이터 유형(자재·거래처·구매오더) 의 작업을 모아둘 수 있습니다.

LSMW → 진입
  Project    : ZMM_MIGRATION       (없으면 Create)
  Subproject : ZVENDOR              (없으면 Create)
  Object     : ZLIFNR_CREATE        (없으면 Create)
  → Execute

 

오브젝트가 결정되면 14단계 메뉴 화면으로 들어갑니다. 단계는 항상 1번부터 순서대로 진행하며, 앞 단계가 완료돼야 다음 단계가 열립니다.


2단계 — 14단계 표준 절차 한눈에

LSMW 의 모든 작업은 다음 14단계로 표준화돼 있습니다. 한 번 익혀두면 자재든 거래처든 구매오더든 절차가 동일합니다.

단계 메뉴 이름 하는 일
1 Maintain Object Attributes 입력 방식 선택 (Standard · Recording · BAPI · IDoc) + Recording 이름 지정
2 Maintain Source Structures 엑셀 파일의 시트 / 데이터 그룹 정의 (헤더·아이템 등)
3 Maintain Source Fields 엑셀의 각 컬럼 정의 — 이름·타입·길이
4 Maintain Structure Relations 엑셀 구조와 SAP 입력 구조의 연결 관계 설정
5 Maintain Field Mapping 가장 중요한 단계 — 엑셀 컬럼을 SAP 필드에 1:1 매핑 + 변환 규칙
6 Maintain Fixed Values, Translations, User-Defined Routines 고정값·코드 변환표·사용자 정의 폼 루틴 (옵션 — 필요시만)
7 Specify Files 엑셀 파일 경로 지정 (Frontend: 로컬 / Application Server: 서버)
8 Assign Files 파일을 Source Structure 에 연결
9 Read Data 파일을 LSMW 내부로 읽기
10 Display Read Data 읽은 데이터 검토 (잘 읽혔는지 확인)
11 Convert Data 필드 매핑·변환 규칙 적용해 SAP 입력 형태로 변환
12 Display Converted Data 변환된 데이터 검토
13 Import Data (Run BDC / BAPI) 실제 SAP 화면에 입력 실행 — Batch Input 세션 생성 후 SM35 로 실행
14 Display Logs 실행 결과 로그 확인 — 성공·실패 건수 / 에러 메시지

처음 한 번 만들어 두면 같은 오브젝트로 같은 엑셀 형식의 데이터를 반복 처리할 때는 단계 7~14 만 빠르게 돌리면 됩니다.


3단계 — Batch Input Recording 생성 (SHDB 연계)

Recording 방식의 핵심은 "SAP 화면에서 1건을 사람이 직접 클릭·입력해 두면, 그 행동을 그대로 녹화해서 매번 재생" 한다는 것입니다. SHDB 트랜잭션이 그 녹화 기능을 담당합니다.

SHDB → New Recording → 이름 ZREC_ME21N
  → 시작 트랜잭션 : ME21N (구매오더 생성 예시)
  → SAP 가 ME21N 화면을 띄움
  → 거래처·자재·수량 등 1건을 끝까지 입력 + 저장
  → 녹화 종료 → 저장

 

녹화가 끝나면 LSMW 1단계에서 이 Recording 이름(ZREC_ME21N) 을 지정합니다. LSMW 가 녹화된 화면 흐름을 그대로 따라가며 엑셀의 각 행 데이터를 화면에 자동 입력하게 됩니다.

 


4단계 — 필드 매핑과 파일 실행 (단계 5 · 7 · 13 핵심)

가장 작업 시간이 많이 드는 부분이 단계 5 (Field Mapping) 입니다. SAP 가 자동으로 매핑 후보를 제시하지만, 엑셀 컬럼 이름과 SAP 필드 이름이 다르면 수동으로 연결해야 합니다.

LSMW → 5. Maintain Field Mapping → Execute
  → 좌측: SAP 필드 (BSART · LIFNR · MATNR · MENGE · WERKS 등)
  → 우측: 엑셀 컬럼 (DOC_TYPE · VENDOR · MATERIAL · QTY · PLANT)
  → 각 SAP 필드 더블클릭 → Assign Source Field
  → 변환 규칙 필요시 Rule (Transfer · Constant · Move · Translation · ABAP)

 

필수 매핑 후 단계 7 에서 엑셀 파일 위치를 지정합니다.

LSMW → 7. Specify Files → Execute
  Frontend file : C:\temp\PO_MIGRATION.xlsx        (또는 .txt / .csv)
  Delimiter     : Tab / Semicolon / Comma (CSV 일 때)
  Field names   : "Field names at start of file" 체크 (헤더가 있을 때)

마지막 단계 13 에서 Batch Input 세션을 생성합니다.

LSMW → 13. Import Data → Execute
  → Session Name : ZSES_PO_001
  → Keep session? : ☑ (실패 시 재실행을 위해 유지)
  → 세션 생성 완료
SM35 → 세션 이름 선택 → Process → Foreground / Display Errors Only / Background 중 선택

 

처음에는 Display Errors Only 또는 Foreground(눈으로 확인) 로 1~2 건 테스트 후, 결과 확인되면 Background 로 전체를 돌리는 패턴이 안전합니다.


5단계 — LSMW vs Migration Cockpit (S/4HANA 환경)

S/4HANA 부터는 LSMW 가 deprecated 되었고, SAP 가 Migration Cockpit 을 신규 표준으로 밀고 있습니다. 두 도구의 사용 결정은 시스템 버전에 따라 달라집니다.

항목 LSMW Migration Cockpit (LTMC / LTMOM)
T-Code LSMW LTMC(실행) · LTMOM(오브젝트 모델링)
지원 SAP 버전 ECC 정식 · S/4HANA 호환만 (deprecated) S/4HANA 정식 (1610+) · ECC 미지원
입력 방식 Standard · Recording · BAPI · IDoc 사전 정의된 Migration Object (Material · Customer · Vendor 등)
UI SAP GUI 14단계 라디오 메뉴 Fiori 웹 UI · 직관적 위저드
CBO 화면 지원 Recording 으로 자유롭게 처리 표준 오브젝트만 — CBO 는 Custom Object 추가 작업 필요
실무 추천 ECC 환경 · CBO 화면 입력 · 한 번성 작업 S/4HANA 환경 · 표준 마스터 이관 · 신규 시스템 오픈

회사가 ECC 6.0 을 운영 중이라면 LSMW 가 여전히 1순위 도구입니다. S/4HANA 로 이미 전환된 환경이라면 Migration Cockpit 을 우선 검토하고, 표준 오브젝트로 커버 안 되는 부분만 LSMW Recording 으로 보완하는 패턴이 일반적입니다.


흔히 빠뜨리는 함정

엑셀 1행에 헤더가 있는데 단계 7에서 체크 누락

엑셀의 첫 행이 컬럼 이름이라면 단계 7 에서 Field names at start of file 체크가 필수입니다. 누락 시 첫 행이 데이터로 인식되어 헤더 이름이 실제 SAP 필드에 입력됩니다.

Recording 중 메시지창 뜨면 녹화에 박힘

녹화 도중 "정보 메시지", "경고 메시지" 등 팝업이 뜬 채로 진행하면 그 팝업까지 녹화되어 매 행마다 재현됩니다. 깨끗한 환경에서 녹화하거나, 녹화 후 메시지 처리 코드를 추가 분기해야 합니다.

Frontend vs Application Server 파일 위치 혼동

단계 7 에서 Frontend(개인 PC) 와 Application Server(SAP 서버 디렉토리) 를 혼동해 경로 못 찾는 경우. 대량 / 백그라운드 실행 시 반드시 Application Server 에 업로드 후 사용합니다 (AL11 로 서버 디렉토리 확인).

Background 실행 시 권한 누락

SM35 에서 Background 로 실행하면 BTC 작업 권한이 필요합니다. 권한 부족 시 세션이 멈추므로 사전에 베이시스에 확인합니다.

단계 13 실행 전 단계 11(Convert) 미수행

단계 11 Convert Data 를 건너뛰고 단계 13 으로 가면 변환되지 않은 원본 데이터로 세션이 생성됩니다. 항상 9 → 10 → 11 → 12 → 13 순서로 진행하고, 단계 12 에서 변환 결과를 눈으로 한 번 확인합니다.

필드 매핑에서 같은 이름 자동 매핑 맹신

SAP 가 자동으로 매핑 후보를 제시하지만, 같은 이름이라도 의미가 다른 경우 가 있습니다 (예: DATE 가 발주일인지 납기일인지). 매핑 화면에서 각 필드 매핑 결과를 한 번 더 검토합니다.

한 번 만든 LSMW 프로젝트의 트랜스포트 관리

LSMW 프로젝트는 클라이언트별 데이터입니다. 운영기에 배포하려면 Extras → Export Project 로 트랜스포트 요청을 생성하거나, 프로젝트를 직접 다시 만드는 방식 중 정책에 맞게 선택합니다.

에러 세션 무한 누적

여러 번 실행하면 SM35 에 실패한 세션이 계속 쌓입니다. 주기적으로 SM35 → 세션 선택 → Delete 로 정리합니다.


전체 코드 — 복사용 통합본 (선택 사항)

LSMW 자체는 No-code 도구라 ABAP 코드 본문이 필요한 글은 아닙니다. 다만 단계 5 (Field Mapping) 에서 변환 규칙으로 ABAP 식을 넣을 때 자주 쓰는 패턴 한 줄짜리 예시를 정리해 둡니다.

* 1) 고정값 대입 — 모든 행을 같은 회사코드로
EKKO-BUKRS = '1000'.

* 2) 조건부 값 — 자재 prefix 에 따라 다른 플랜트
IF SOURCE_FIELDS-MATERIAL CP 'A*'.
  EKPO-WERKS = '0001'.
ELSEIF SOURCE_FIELDS-MATERIAL CP 'B*'.
  EKPO-WERKS = '0002'.
ELSE.
  EKPO-WERKS = '9999'.
ENDIF.

* 3) Alpha conversion (선행 0 추가) — 거래처 번호
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  EXPORTING
    input  = SOURCE_FIELDS-VENDOR
  IMPORTING
    output = EKKO-LIFNR.

* 4) 날짜 포맷 변환 — '20260518' → '2026-05-18' (역방향은 그대로 사용)
DATA(lv_in) = SOURCE_FIELDS-DOC_DATE.
EKKO-BEDAT = lv_in.

* 5) 텍스트 대문자 변환
TRANSLATE SOURCE_FIELDS-TEXT TO UPPER CASE.
EKKO-IHREZ = SOURCE_FIELDS-TEXT.

이러한 ABAP 식은 LSMW 의 Rule → ABAP 옵션으로 필드별로 넣을 수 있으며, 복잡한 변환은 단계 6 의 사용자 정의 폼 루틴(FORM) 으로 분리합니다.


요약

단계 작업 핵심
1 입력 방식 결정 Standard · Recording · BAPI · IDoc 중 선택 — Recording 이 가장 흔함
2 14단계 절차 1~6(설계) → 7~8(파일) → 9~12(읽기·변환·검토) → 13~14(실행·로그)
3 Recording 생성 SHDB 로 1건 화면 녹화 → LSMW 1단계에서 지정
4 핵심 매핑·실행 단계 5(매핑) · 7(파일) · 13(SM35 세션 생성) 3개가 작업 시간의 80%
5 버전별 선택 ECC : LSMW · S/4HANA : LTMC(Migration Cockpit) 우선

LSMW 는 대량 데이터 이관을 ABAP 코딩 없이 처리할 수 있는 SAP 표준 도구로, 14단계 마법사 형태로 표준화돼 있어 한 번 익혀두면 자재·거래처·구매오더 등 어떤 대상이든 같은 패턴으로 작업할 수 있습니다. 실무에서 가장 흔히 쓰는 입력 방식은 Batch Input Recording 으로, SHDB 녹화 → LSMW 매핑 → SM35 실행의 3단계로 정형화됩니다. S/4HANA 환경이라면 Migration Cockpit(LTMC · LTMOM) 이 신규 표준이지만, CBO 화면 처리나 ECC 환경에서는 LSMW 가 여전히 1순위 선택지입니다.


Disclaimer — 이 포스트는 실무 정리 노트를 바탕으로 AI 보조로 정리되었습니다.

LSMW · SHDB · SM35 · AL11 트랜잭션과 LTMC · LTMOM Migration Cockpit 은 SAP NetWeaver / S/4HANA 표준 기능으로 별도 라이선스 없이 사용 가능합니다. LSMW 는 ECC 환경에서는 정식 지원되지만 S/4HANA 에서는 deprecated 상태로, SAP 의 권장 경로는 Migration Cockpit 사용입니다. 다만 S/4HANA on-premise 일부 버전에서는 LSMW 가 여전히 작동하며, 운영 정책과 시스템 버전에 따라 사용 가능 여부를 사전에 확인하시기 바랍니다. 대량 데이터 처리 시 운영 시간대를 피하고, 배치 작업 권한(BTC) 과 트랜잭션 별 권한 오브젝트를 사전에 베이시스에 확인하는 절차를 권장합니다.