반응형
SAP는 기업에서 가장 널리 사용되는 ERP 시스템 중 하나이며, 많은 업무가 SAP를 통해 이루어집니다. 하지만 반복적인 수작업이 많아 자동화의 필요성이 높아지고 있습니다. 본 가이드에서는 파이썬을 활용하여 SAP 작업을 자동화하는 방법을 초보자도 이해하기 쉽게 설명합니다. SAP GUI 스크립팅, PyRFC, BAPI를 활용한 자동화 기법과 실전 예제를 통해 SAP 업무를 보다 효율적으로 처리하는 방법을 배워봅시다.
SAP 자동화란?
SAP 자동화는 반복적인 SAP 작업을 프로그램을 이용해 자동으로 수행하는 기술입니다. SAP 자동화를 통해 업무 효율을 높이고, 수작업으로 인한 오류를 줄일 수 있습니다.
SAP 자동화는 크게 두 가지 방식으로 나뉩니다.
- SAP GUI 스크립팅: SAP의 기본 GUI를 제어하여 자동으로 작업을 수행
- SAP RFC 및 BAPI 연동: 파이썬을 활용해 SAP 시스템과 직접 데이터를 주고받음
SAP GUI 스크립팅을 활용한 자동화
SAP GUI 스크립팅은 사용자의 키보드 및 마우스 입력을 자동화하여 SAP에서 반복 작업을 수행할 수 있도록 해줍니다.
SAP GUI 스크립팅 설정 방법
- SAP GUI에서 설정 변경: SAP GUI 실행 후
Alt + F12
→ "옵션(Options)" 선택 → "스크립트 지원 활성화(Enable scripting)" 옵션 체크 - 파이썬과 SAP GUI 연결: SAP GUI 자동화를 위해
win32com.client
모듈을 사용
import win32com.client
sap_gui = win32com.client.GetObject("SAPGUI")
application = sap_gui.GetScriptingEngine
session = application.Children(0)
session.findById("wnd[0]/usr/txtRSYST-MANDT").text = "100"
session.findById("wnd[0]/usr/txtRSYST-BCODE").text = "사용자ID"
session.findById("wnd[0]/usr/pwdRSYST-BCODE").text = "비밀번호"
session.findById("wnd[0]").sendVKey(0)
SAP 트랜잭션 자동 실행
session.findById("wnd[0]/tbar[0]/okcd").text = "SE16N"
session.findById("wnd[0]").sendVKey(0)
PyRFC를 활용한 SAP 자동화
PyRFC는 SAP의 RFC(Remote Function Call)를 사용하여 파이썬에서 SAP 서버와 데이터를 주고받을 수 있는 라이브러리입니다.
PyRFC 설치 방법
pip install pyrfc
SAP 연결 설정
from pyrfc import Connection
conn = Connection(
user="사용자명",
passwd="비밀번호",
ashost="sap.example.com",
sysnr="00",
client="100"
)
print("SAP 연결 성공!")
BAPI를 활용한 SAP 데이터 조회
result = conn.call("BAPI_CUSTOMER_GETDETAIL", CUSTOMERID="000123456")
print(result)
실전 예제: SAP 데이터 엑셀 저장
SAP에서 데이터를 가져와 엑셀 파일로 저장하는 간단한 자동화 스크립트
import win32com.client
import pandas as pd
sap_gui = win32com.client.GetObject("SAPGUI")
application = sap_gui.GetScriptingEngine
session = application.Children(0)
session.findById("wnd[0]/tbar[0]/okcd").text = "SE16N"
session.findById("wnd[0]").sendVKey(0)
session.findById("wnd[0]/usr/ctxtDATABROWSE-TABLENAME").text = "KNA1"
session.findById("wnd[0]/tbar[1]/btn[8]").press()
session.findById("wnd[0]/tbar[1]/btn[45]").press()
import clipboard
data = clipboard.paste()
df = pd.DataFrame([row.split("\t") for row in data.split("\n")])
df.to_excel("sap_data.xlsx", index=False)
print("SAP 데이터가 엑셀로 저장되었습니다!")
결론
SAP 자동화는 업무 효율성을 크게 향상시킬 수 있는 중요한 기술입니다.
- GUI 스크립팅: 사용자의 키보드/마우스 입력을 자동화하여 쉽게 적용 가능
- PyRFC & BAPI: SAP 시스템과 직접 통신하여 대량의 데이터를 안정적으로 처리 가능
SAP 자동화는 기업에서 필수적인 업무 최적화 기술이므로, 파이썬을 활용하여 자신만의 자동화 스크립트를 만들어 보세요!
반응형