SAP에서 NON-SAP의 시스템((WINDOWS SERVER 2003 R2) 에 접속하여 프로그램을 실행하려고 합니다.
RFC로 구성을 할려고 합니다.
NON-SAP에서 SAP으로의 RFC는 (비주얼베이직 기준)
아래의 OCX를 이용하여 SAP에 접속하여 RFC를 실행할 수 있습니다.
------------------------------------------------------------------
C:Program FilesSAPFrontEndSAPguiwdtfuncs.ocx
' C:Program FilesSAPFrontEndSAPguiWDTAOCX.OCX
'-----------------------------------------------------------------
Private Sub Command1_Click()
Dim sapConn As New SAPFunctions
Dim oFunc As New SAPFunctionsOCX.Function
Dim oTbl As New Table
Dim oRow As Row
Dim i As Long
'-------------------------------------------------------------
' SAP 연결
'-------------------------------------------------------------
sapConn.Connection.user = "아이디"
sapConn.Connection.Password = "비밀번호"
sapConn.Connection.client = "310"
sapConn.Connection.ApplicationServer = "아이피"
sapConn.Connection.language = "KO"
sapConn.Connection.SystemNumber = "02"
그런데 그와 반대로 SAP 에서 NON-SAP의 프로그램을 실행하는 RFC를 구성할려고 하는데
NON-SAP 시스템에 접속을 해야 할것이고 접속을 할려면 ID와 PASSWORD가 있어야 할것입니다.
sm59에서 SAP과 SAP 사이의 RFC는 ID와 PASSWORD를 설정하는 게 있습니다만 TCP/IP를 이용하는데는 ID와
PASSWORD를 설정하는곳이 없는것 같습니다.
UNIX에선 rhosts, hosts에 설정하는 예가 있는것 같습니다. 혹시 windows 시스템에서는 어떻게 설정을 해야 하는지요
sm59에서 connection이 안됩니다.
고수님들 좀 도와 주십시요.. 아니면 혹시 설정된 화면이라도 좀 올려 주시면 감사하겠습니다.
즐밥하세요..
댓글 3
-
DBnoid
2008.11.24 18:47
-
activeman
2008.11.24 20:00
DBnoid님 답변감사합니다..
그런데 제가 알고 싶은것은 "서버프로그램은 Non-SAP단에서 항상 접속되어 붙어있으면서 접속되는순간 Program ID를 등록합니다."
에서 서버프로그램이 Non-SAP단에 항상 접속되어 있다는 것인데요.. 이걸 어떻게 처리하는가 하는것입니다.
client 에서 sap으로 rfc하는것은 sap에 접속을 하는 구문이 프로그램되어 있어서 sap으로 접속이 가능합니다만.
sap에서 non-sap으로 접속할때 PID를 호출하는데 이때 non-sap으로 접속할려면 ID,password 같은게 필요하지 않나 하는겁니다.
그럼..그런것은 어디에서 설정을 해줘야 하는지 그게 궁금하다는 겁니다...
-
DBnoid
2008.11.28 05:56
제가 경험한 바에 의하면 저는 자금관련 거래내역을 수신받아처리하고 Server P/G 은 이체데이터를 던져주는 용도로 활용했는데요
저는 RFC만 처리하고 상대방 개발자가 VC++로 개발을 같이 했습니다.
우선 궁금해 하시는 부분은 이해를 했는데요...
보통 저희가 Interface를 하면 DB상에 데이터를 넣치요... SAP를 DB에 직접입력을 권장하지 않으니 RFC를 쓰는것이고요
SAP에서 Server P/G로 인터널 테이블 형태든 데이터를 던지면 서버프로그램이 데이터셋을 받겠죠
Server P/G은 SAP쪽도 연결되어있구(SAPGUI깔리고 RFC통해서) 받을걸 ODBC등의 접속을 통해 일반적인 프로그램을
처리하듯이 해당 DB에 넣어주는 프로그램을 덧붙이는것에 불과 한거 같은데요... 제가 같이 개발하면서 이해하진 못했지만
소스의 흐름은 그러했습니다.
궁금해 하시는 부분에 조금이나마 도움이 되었길...
정확히 이해한게 맞는지 모르겠지만 일단 미흡한 경험으로 대답을 드립니다.
우선, 위에서 말씀하여 구현하신 RFC는 클라이언트 RFC에 해당된다고 생각됩니다.
Client에서 콜을 하여 SAP에 자료를 던져주는 형태겠지요
필요로 하시는 것이 SAP의 자료를 SAP단에서 특정시점에 Non-SAP으로 줄려고 할때 RFC의 서버프로그램을
작성하셔아 할듯 합니다.
서버프로그램은 Non-SAP단에서 항상 접속되어 붙어있으면서 접속되는순간 Program ID를 등록합니다.
RFC Destination단에 PID를 등록해 주시면 됩니다.
그러면 자동으로 SAP에 등록이 되고 SAP내에서 RFC를 콜하여 해당 PID를 통해 던져주면
RFC를 통해 원하는 데이터를 Non-SAP으로 처리하는 프로그램에 전달하여 주고
해당 프로그램에서는 다시 그것에 대한 하부 처리를 하는것으로 알고 있습니다.