현업에서 마스터 데이터나 대량 트랜잭션을 처리할 때, 엑셀 파일을 SAP 내부 테이블로 읽어들이는 작업은 빠지지 않습니다. 대표적으로 두 가지 함수 모듈이 쓰이는데, 각각 장단점이 뚜렷해서 상황에 맞게 골라야 합니다.
TEXT_CONVERT_XLS_TO_SAPALSM_EXCEL_TO_INTERNAL_TABLE업로드할 행 수에 제한이 없는 것이 가장 큰 장점입니다. 대량 건을 한 번에 읽어야 할 때 유용합니다.
행 수 제한이 없는 대신, 한글이 깨지는 현상이 보고됩니다. 다만 환경에 따라 멀쩡할 때도 있어, 도입 전 실제 데이터로 인코딩을 꼭 테스트해 보는 것이 안전합니다.
함수가 정상 실행되면 엑셀의 각 행이 아래처럼 내부 테이블로 들어옵니다.
업로드된 행이 구조체 필드로 매핑된 모습. (자재코드·값은 익명 예시)
읽어올 시작/종료 행과 열을 지정할 수 있어 직관적입니다.
이 함수는 결과가 행/열/값 형태(alsmex_tabline)로 떨어지므로, 이후 원하는 구조체로 매핑하는 후처리가 필요합니다.
요약하면 — 대량이면 TEXT_CONVERT_XLS_TO_SAP(인코딩만 확인), 소량을 범위 지정해 깔끔하게 읽으려면 ALSM_EXCEL_TO_INTERNAL_TABLE 이 무난합니다.
엑셀 업로드를 LSMW나 BDC(레코딩)로 처리하려다 막히는 경우가 있습니다. 표준 트랜잭션에 코딩 블록(Coding Block)이 추가되어 있으면, 자동화(레코딩)를 막기 위한 목적으로 동작하여 LSMW/BDC 레코딩 자체가 되지 않을 수 있습니다.
이럴 때는 위에서 소개한 함수 모듈로 데이터를 읽어 BAPI나 표준 트랜잭션 로직을 직접 호출하는 방식으로 우회하는 것을 고려합니다.
:::info 코딩 블록 추가 여부와 동작은 시스템 설정·릴리스(S/4HANA 등)에 따라 다를 수 있으니, 실제 시스템에서 확인하세요.
Disclaimer — 이 포스트는 AI(Claude)를 활용하여 작성된 초안을 바탕으로 검수 및 보완하여 작성되었습니다. 내용 중 오류나 오타가 있다면 댓글로 알려주시면 감사하겠습니다.