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연결 librarypython의 장점인 다른 언어(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\lib폴더에서 있는 아래 두개의 파일을 
          c:\nwrfcsdk\bin폴더로 copy한다
                    libsapucum.dll ,   sapnwrfc.dll

         자 이제 정상적으로 설치 되었는지 확인이 필요한데
         커맨드 창에서 c:\nwrfcsdk\bin폴더의 rfcexec.exe를 실행하여 
        아래와 같이 나오면 성공적으로 설치된 것이고
        메시지 창이 나타나면 잘 못 설치 된 것이다
        (사실 저는 이 오뉴때문에 많이 고생 했음 ㅜㅜ)

3.     python설치하기(https://www.python.org/downloads/windows/)
각자 윈도우에 맞는 버전을 설치 합니다(python 3.x대를 권장합니다)

[화면 켑춰내역이 안올라가네요] 

설치는 path 추가 체크 꼭 하시고 , “custom..” 으로 설치하여 설치 폴더를
C;\Python3xx로 지정하면 좋다
python설치가 끝났으면 PC 리부팅 하고 , python이 잘 실행되는 커맨드창에서 
버젼정보와 ">>>" 나오면 설치가 정상적으로 완료된 것이다

[화면 켑춰내역이 안올라가네요] 

추가적으로 easy_install pip도 잘 성치 되었는지 확인한다

[화면 켑춰내역이 안올라가네요] 

4.     PyRFC설치하기 (참고: https://github.com/SAP/PyRFC)
         자 이제 마지막으로 PyRFC를 설치 한다
         PyRFChttps://github.com/SAP/PyRFC에서 다운로드 클릭하여 다운받고 
        압축 해제 해도 되고
          github설치 커맨드 창에서 “Git clone https://github.com/SAP/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환경등록하는 방법을 공유합니다
화면 켐춰가 안되부분은 차차 보완 하도록 하겠습니다
저도 초보라 많은 것을 공유하지 못하지만 우선 공유드립니다

즐거운 하루 되세요!!

댓글

  1. 안녕하세요, SAP를 ERP로 사용중인 공공기관 현장설비 기술부서 감독자입니다.
    파이썬을 이용한 엑셀 및 SAP 자동화 프로그램 개발 관계로 해당 SDK가 필요한데,
    본사에서만 보유중인 S-user로부터 권한 획득이 어려워 SAP One Support에 접속이 불가능한 상황입니다.
    SDK 다운로드가 가능하신 상황이면 해당 프로그램을 메일로 송부받을 수 있을까요?

    bins.sin@khnp.co.kr
    bins_s@naver.com

    연락주시면 정말 감사하겠습니다 ㅠㅠ...
    대화보기

    답글삭제
  2. PyRFC 깃허브에서 다운 받았는데, dist라는 파일이 보이지 않는데, 어떻게 해야 할지 조언 부탁드립니다.

    답글삭제

댓글 쓰기

이 블로그의 인기 게시물