문제

Python을 사용하여 SAP 데이터베이스를 쿼리할 수 있나요?

도움이 되었습니까?

해결책

Python SAP RFC 모듈 활동적이지 않은 것 같습니다 - 마지막 (중요하지 않은) 커밋 2년 전 – 하지만 여러분에게 도움이 될 수도 있습니다:

Pysaprfc는 SAP librfc(Windows의 경우 librfc32.dll, Linux의 경우 librfccm.so 또는 librfc.so)를 둘러싼 래퍼입니다.Thomas Heller의 뛰어난 ctypes 확장 패키지를 사용하여 librfc에 액세스하고 SAP 호환 데이터 유형을 정의합니다.

최신 SAP 버전은 Web Service 방법 - 당신은 만들 수 있습니다 SAP Web Service 그리고 그것을 소비하세요 Python.

SAP NetWeaver를 사용하면 개발자는 애플리케이션과 데이터 소스를 연결하여 웹 서비스를 사용하여 프로세스를 통합할 수 있습니다.

특히 개발자는 하나의 인프라를 사용하여 업계 표준 기반 방식으로 웹 서비스를 정의, 구현 및 사용할 수 있습니다.SAP NetWeaver는 동기식, 비동기식, 상태 저장 및 상태 비저장 웹 서비스 모델을 지원하므로 개발자는 다양한 통합 시나리오를 지원할 수 있습니다.

sapnwrfc 이것을 지지한다 SAP NetWeaver 기능성, 대체하다 이전 RFC SDK이며 적극적으로 유지 관리됩니다.

다른 팁

이제 Python RFC 커넥터를 다음과 같이 사용할 수 있습니다. SAP 오픈소스

SAP Database AKA(이전 이름)에 대해 이야기하고 있다면 SapDb, 그리고 지금은 MaxDB (한동안 MySql Inc에서도 배포되었으며, 지금 다시 SAP에서만 가능하며 그렇게 명명되었습니다. SAP MaxDB), 문서화된 여러 Python 액세스 모듈이 함께 제공됩니다. 여기.

이것이 "데이터베이스 엔진으로서의 SAP"에 첨부할 수 있는 유일한 의미입니다. 즉, SAP MaxDB에 액세스하려는 것입니다.다른 답변은 다른 가정을 하며 (내 생각에는) 또한 정확합니다.서로 다른 가정하에.

Sap은 데이터베이스 서버가 아닙니다.그러나 Python SAP RFC 모듈을 사용하면 대부분의 테이블을 아주 쉽게 쿼리할 수 있습니다.지원되지 않는 일부 SAP 기능(전 세계에서 사용 중)을 사용하고 있습니다.그리고 이 함수에는 필드 크기와 데이터 유형에 일부 제한이 있습니다.

SAP에는 이제 pyrfc라는 Python RFC 커넥터가 있습니다.이는 sapnwrfc를 대체합니다.

이는 다음에서 찾을 수 있습니다. https://github.com/SAP/PyRFC

"pyrfc Python 패키지는 SAP 원격 함수 호출(RFC) 프로토콜을 통해 Python에서 ABAP 모듈을 호출하고 ABAP에서 Python 모듈을 호출하는 편리한 방법을 위해 SAP NetWeaver RFC 라이브러리용 Python 바인딩을 제공합니다."

위에 언급한 대로 테이블을 읽거나 RFC 또는 BAPI 호출을 수행하려는 경우 유지 관리되지 않은 Python SAP RFC 모듈 또는 Piers Harding의 CPython을 사용할 수 있습니다. SAP RFC.테이블을 읽기 위한 RFC 호출은 RFC_GET_TABLE_ENTRIES 또는 RFC_READ_TABLE입니다. 여기서 전자가 선호되지만 고객에게 공개되지도 않습니다.

보다 공식적인 방법으로 Jython과 함께 SAP의 JCO 커넥터를 사용하거나 Ironpython과 함께 SAP의 .Net 커넥터를 사용할 수 있습니다.두 커넥터 모두 SAP 서비스 마켓플레이스에서 다운로드할 수 있으며 위에 나열된 두 가지 호출을 포함하여 RFC 기능을 호출할 수 있습니다.

위에서도 언급했듯이 백엔드 기능에 액세스하기 위해 SAP가 제안한 방법은 SAP의 방대한 SOA 인프라를 이용하는 것입니다.여기서 Jython을 다음과 같이 사용할 수 있습니다.Microsoft WCF가 포함된 Axis 라이브러리 또는 Ironpython.SAP에서 제공하는 서비스는 일반 테이블에 액세스하는 것을 허용하지 않으며 대신 서비스가 제공하는 것을 호출할 수 있습니다.SAP는 이미 약 3,000개의 서비스를 제공하고 있습니다(SDN의 ES Wiki 참조). 원격 지원 기능 모듈에 비즈니스 로직이 있으면 자체 서비스를 만드는 것은 실제로 매우 간단합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top