Python언어로 SAP ERP 연동하는 방법
1.
개요
ERP 시장 점유율 50%이상을 차지하여 사실상 독점을 하는 SAP ERP는 많은 기업에서
사용하는 경영관리 솔루션입니다
사용하는 경영관리 솔루션입니다
이렇다 보니 이 SAP ERP 기능을 확장하는 개발이 자주 있습니다
이러한 SAP ERP확장 Application은 주로 C언의 RFC와 java의 JCO connector등을 많이 이용하여
개발되어집니다
그렇지만 유연성이 뛰어나고 Global 하게는 잘 알려진(국내에 잘 알려지지 않았지만...) python으로
SAP ERP의 확장 기능을 개발하려면 무엇을 준비하고 환경은 어떻게 만들어야 하는지
먼저 시도한 내역을 공유하고자 합니다
물론 이 내역은 인터넷 검색으로 충분히 공유된 내역이지만 시간을 절약하기 위해
제가 성공한 방법을 정리 해 봤습니다
PC환경은
OS : win 10(x64) , python : 3.5.3(x64) ,
SAP RFC SDK(library)
7.20(x64) , PyRFC(x64)
2.
SAP연결을 하기 위해 준비할 사항
(참고:https://sap.github.io/PyRFC/install.html , http://sap.github.io/PyRFC)
SAP연결을 위해서는 C언어 RFC,
Java의 JCO처럼 SAP연결 library가 필요합니다
Python의 SAP연결 library는
python의 장점인 다른 언어(C언어) library를 사용하여
PyRFC라는 SAP연결 library를 만들어 제공합니다
따라서
우선 기존에 배포된 SAP RFC SDK( library)를 자신의
PC환경에 맞는(OS) 버젼으로 http://service.sap.com/rfc-library 다운 받아 설치 한다
[화면 켑춰내역이 안올라가네요]
한가지 주의 할 점은.. 다운로드 받은 파일(아마도 : NWRFC_42-20004568.SAR)은
SAR파일이므로 SAPCAR파일로 압축을 풀어야 한다
(sapcar도 support.sap.com에서 다운로드 받아야 한다)
즉, sapcar…
-xvf NWRFC_42-20004568.SAR로 압축하제 하면
nwrfcdsk폴더가
생성된다
SAP NW RFC Library version버전과 플렛폼 관련된 정보도 참고하세요r:
Platform
|
Python version
|
NetWeaver RFC
Library (SMP)
|
Filename (SMP)
|
Python egg
|
Windows
|
Python 2.7 (32bit)
|
Windows Server on
IA32 32bit
|
NWRFC_20-20004566.SAR
|
pyrfc-1.9.3-py2.7-win32.egg
|
Windows
|
Python 2.7 (64bit)
|
Windows on x64
64bit
|
NWRFC_20-20004568.SAR
|
pyrfc-1.9.3-py2.7-win-amd64.egg
|
Linux
|
Python 2.7 (64bit)
|
Linux on x86_64
64bit
|
NWRFC_20-20004565.SAR
|
pyrfc-1.9.3-py2.7-linux-x86_64.egg
|
Note
§ 버전에 주의 하고 , 32bit 와 64bit도 잘 참고하시기 바랍니다
SAP RFC
SDK( library)를 위한 nwrfcdsk폴더를 편의상 C:\아래 copy하여
생성하고 시스템 환경 변수인 “Path”에 “c:\nwrfcsdk\bin\와
c:\nwrfcsdk\bin\”을 추가합니다
[화면 켑춰내역이 안올라가네요]
자
이제 정상적으로 설치 되었는지 확인이 필요한데…
커맨드 창에서
c:\nwrfcsdk\bin폴더의 rfcexec.exe를
실행하여
아래와 같이 나오면 성공적으로
설치된 것이고,
메시지 창이 나타나면 잘 못 설치 된 것이다
(사실 저는 이 오뉴때문에 많이 고생 했음 ㅜㅜ)
각자
윈도우에 맞는 버전을 설치 합니다(python 은 3.x대를
권장합니다)
[화면 켑춰내역이 안올라가네요]
설치는
path 추가 체크 꼭 하시고 , “custom..” 으로 설치하여 설치 폴더를
C;\Python3xx로 지정하면 좋다
python설치가 끝났으면 PC 리부팅 하고 , python이 잘 실행되는 커맨드창에서
버젼정보와 ">>>" 나오면 설치가 정상적으로 완료된 것이다
[화면 켑춰내역이 안올라가네요]
추가적으로 easy_install과 pip도 잘 성치 되었는지 확인한다
[화면 켑춰내역이 안올라가네요]
자 이제 마지막으로 PyRFC를 설치 한다
압축 해제 해도
되고,
[화면 켑춰내역이 안올라가네요]
압축을 풀면 아마도 아래(PyRFC-master폴더)와 같은 파일과 폴더들이 보일 것이다
[화면 켑춰내역이 안올라가네요]
우라가 등록할 PyRFC는PyRFC-master폴더의 dist폴더에
있으므로
커맨드창에서 이 폴더로 이동하여 pyrfc-1.9.5-py3.5-win-amd64.egg이
존재 하는지 확인한다
커맨드 창에서 Easy_install pyrfc-1.9.5-py3.5-win-amd64.egg을
입력하여 설치 한다
[화면 켑춰내역이 안올라가네요]
이제 마지막으로 PyRFC가 잘 되었는지 확인 한다
커맨드 모드에서 c:\nwrfcsdk\bin>python 와 >>> from pyrfc import *를
순차적으로 입력하면
[화면 켑춰내역이 안올라가네요]
정상일때
c:\nwrfcsdk\bin>python
Python 3.5.3 (v3.5.3:1880cb95a742, Jan 16 2017, 16:02:32)
[MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright",
"credits" or "license" for more information.
>>> from pyrfc import *
>>>
[화면 켑춰내역이 안올라가네요]
오류일때
c:\nwrfcsdk\bin>python
Python 3.5.3
(v3.5.3:1880cb95a742, Jan 16 2017, 16:02:32) [MSC v.1900 64 bit (AMD64)] on
win32
Type
"help", "copyright", "credits" or
"license" for more information.
>>> from pyrfc import *
File
"<stdin>", line 1, in <module>
File
"C:\Python35\lib\site-packages\pyrfc-1.9.5-py3.5-win-amd64.egg\pyrfc\__init__.py",
line 22, in <module>
from pyrfc._pyrfc
import get_nwrfclib_version, Connection, TypeDescription, FunctionDescription,
Server
ImportError: DLL load failed: 지정된
모듈을 찾을 수 없습니다.
여기까지 python으로 SAP접속을 위한 pyRFC환경등록하는 방법을 공유합니다
화면 켐춰가 안되부분은 차차 보완 하도록 하겠습니다
저도 초보라 많은 것을 공유하지 못하지만 우선 공유드립니다
즐거운 하루 되세요!!
안녕하세요, SAP를 ERP로 사용중인 공공기관 현장설비 기술부서 감독자입니다.
답글삭제파이썬을 이용한 엑셀 및 SAP 자동화 프로그램 개발 관계로 해당 SDK가 필요한데,
본사에서만 보유중인 S-user로부터 권한 획득이 어려워 SAP One Support에 접속이 불가능한 상황입니다.
SDK 다운로드가 가능하신 상황이면 해당 프로그램을 메일로 송부받을 수 있을까요?
bins.sin@khnp.co.kr
bins_s@naver.com
연락주시면 정말 감사하겠습니다 ㅠㅠ...
대화보기
PyRFC 깃허브에서 다운 받았는데, dist라는 파일이 보이지 않는데, 어떻게 해야 할지 조언 부탁드립니다.
답글삭제