[파워빌더] 파워빌더와 SAP연동하기...
기존의 소스에서 발취하여 없는 변수나 자잔한 오류가 있을수 있습니다. ^^
준비 : SAP GUI를 설치 한다.
파워빌더 코딩 : sap 연결
OLEObject Sap_OLE
OLEObject SapConn
Sap_OLE = CREATE OLEObject // OLE 생성
li_ret = Sap_OLE.ConnectToNewObject("Sap.Functions.Unicode") //A SAP 컴포넌트와
연계
if
li_Ret
<> 0 then
Messagebox("확인", "SAP연결실패..")
return false
end
if
//Production
server (PRD)
SapConn = Sap_OLE.connection // SAP CONNECTION OLE 사용
/*
운영서버
*/
SapConn.ApplicationServer = "192.168.1.1" // SERVER IP
->
SapConn.SystemNumber = 00 // 디폴트
0
SapConn.user = "king" // SAP 사용자명
(실제 sap id)
SapConn.Password = "k1234" // SAP 페스워드
(실제 password)
SapConn.Client = "100" // CLIENT 번호
SapConn.Language = "KO" // LANGUAGE
"KO"
If
SapConn.logon(1, TRUE) <> True Then // LOGON
messagebox("SAP : ApplicationServer 로그인
에러 "," SAP ApplicationServer 로그인
에러입니다.")
setpointer(ARROW!)
lb_Return = false
else
lb_Return = true
End
if
Return
lb_Return
===================================================================
조회
Oleobject SAP_Rfc /* SAP Main 역활 */
Oleobject SAP_Table
/* 데이터를
받을 때 사용됨 */
SAP_Rfc = Sap_OLE.Add( "여기에
RFC 이름" ) /* RFC 이름
셋팅 */
/*
조회조건
셋팅 */
ll_args = UpperBound( args_cols[] )
for
i = 1 to ll_args
//SAP_Rfc.exports("IV_AUFNR",
"20000269")
SAP_Rfc.exports(args_cols[i], args_datas[i])
next
/*
조회하기. */
Boolean
lb_SAP_Rfc_CALL = false
lb_SAP_Rfc_CALL = SAP_Rfc.CALL
/* SEND */
if
lb_SAP_Rfc_CALL = true then
/* 아래
두가지는 상호 합의된 조회 결과에 대한 리턴값
*/
ls_ev_type = SAP_Rfc.imports("EV_TYPE").VALUE
ls_ev_msg =
SAP_Rfc.imports("EV_MSG").VALUE
if ls_ev_type <> 'S' then
Messagebox("SAP :: EV_TYPE :: " + ls_ev_type,
ls_ev_msg)
Return false
else
/*
테이블에
데이터 가져오기 */
SAP_Table = SAP_Rfc.TABLES.Item( "여기에
테이블 이름")
ll_Rcnt = SAP_Table.Rowcount
for
i
= 1 to ll_Rcnt
ls_data = SAP_Table.cell(i, "SAP의
컬럼이름")
ls_data = SAP_Table.cell(i, "SAP의
컬럼이름")
ls_data = SAP_Table.cell(i, "SAP의
컬럼이름")
ls_data = SAP_Table.cell(i, "SAP의
컬럼이름")
ls_data = SAP_Table.cell(i, "SAP의
컬럼이름")
next
end if
else
Messagebox("SAP_Rfc.CALL 오류", "RFC 실행
오류 :: " + String(SAP_Rfc.Exception) )
end
if
Destroy
SAP_Table
Destroy
SAP_Rfc
===========================================================
저장
Oleobject SAP_Rfc /* SAP Main 역활 */
Oleobject SAP_Table
/* 데이터를
받을 때 사용됨 */
SAP_Rfc = Sap_OLE.Add( "여기에
RFC 이름" ) /* RFC 이름
셋팅 */
/*
조회조건
셋팅 */
ll_args = UpperBound( args_cols[] )
for
i = 1 to ll_args
//SAP_Rfc.exports("IV_AUFNR",
"20000269")
SAP_Rfc.exports(args_cols[i], args_datas[i])
next
/*
조회하기. */
Boolean
lb_SAP_Rfc_CALL = false
lb_SAP_Rfc_CALL = SAP_Rfc.CALL
/* SEND */
if
lb_SAP_Rfc_CALL = true then
/* 아래
두가지는 상호 합의된 조회 결과에 대한 리턴값
*/
ls_ev_type = SAP_Rfc.imports("EV_TYPE").VALUE
ls_ev_msg =
SAP_Rfc.imports("EV_MSG").VALUE
if ls_ev_type = 'S' then
성공
else
실패
end if
else
Messagebox("SAP_Rfc.CALL 오류", "RFC 실행
오류 :: " + String(SAP_Rfc.Exception) )
end
if
Destroy
SAP_Table
Destroy
SAP_Rfc
준비 : SAP GUI를 설치 한다.
파워빌더 코딩 : sap 연결
OLEObject Sap_OLE
OLEObject SapConn
Sap_OLE = CREATE OLEObject // OLE 생성
li_ret = Sap_OLE.ConnectToNewObject("Sap.Functions.Unicode") //A SAP 컴포넌트와
연계
if
li_Ret
<> 0 then
Messagebox("확인", "SAP연결실패..")
return false
end
if
//Production
server (PRD)
SapConn = Sap_OLE.connection // SAP CONNECTION OLE 사용
/*
운영서버
*/
SapConn.ApplicationServer = "192.168.1.1" // SERVER IP
->
SapConn.SystemNumber = 00 // 디폴트
0
SapConn.user = "king" // SAP 사용자명
(실제 sap id)
SapConn.Password = "k1234" // SAP 페스워드
(실제 password)
SapConn.Client = "100" // CLIENT 번호
SapConn.Language = "KO" // LANGUAGE
"KO"
If
SapConn.logon(1, TRUE) <> True Then // LOGON
messagebox("SAP : ApplicationServer 로그인
에러 "," SAP ApplicationServer 로그인
에러입니다.")
setpointer(ARROW!)
lb_Return = false
else
lb_Return = true
End
if
Return
lb_Return
===================================================================
조회
Oleobject SAP_Rfc /* SAP Main 역활 */
Oleobject SAP_Table
/* 데이터를
받을 때 사용됨 */
SAP_Rfc = Sap_OLE.Add( "여기에
RFC 이름" ) /* RFC 이름
셋팅 */
/*
조회조건
셋팅 */
ll_args = UpperBound( args_cols[] )
for
i = 1 to ll_args
//SAP_Rfc.exports("IV_AUFNR",
"20000269")
SAP_Rfc.exports(args_cols[i], args_datas[i])
next
/*
조회하기. */
Boolean
lb_SAP_Rfc_CALL = false
lb_SAP_Rfc_CALL = SAP_Rfc.CALL
/* SEND */
if
lb_SAP_Rfc_CALL = true then
/* 아래
두가지는 상호 합의된 조회 결과에 대한 리턴값
*/
ls_ev_type = SAP_Rfc.imports("EV_TYPE").VALUE
ls_ev_msg =
SAP_Rfc.imports("EV_MSG").VALUE
if ls_ev_type <> 'S' then
Messagebox("SAP :: EV_TYPE :: " + ls_ev_type,
ls_ev_msg)
Return false
else
/*
테이블에
데이터 가져오기 */
SAP_Table = SAP_Rfc.TABLES.Item( "여기에
테이블 이름")
ll_Rcnt = SAP_Table.Rowcount
for
i
= 1 to ll_Rcnt
ls_data = SAP_Table.cell(i, "SAP의
컬럼이름")
ls_data = SAP_Table.cell(i, "SAP의
컬럼이름")
ls_data = SAP_Table.cell(i, "SAP의
컬럼이름")
ls_data = SAP_Table.cell(i, "SAP의
컬럼이름")
ls_data = SAP_Table.cell(i, "SAP의
컬럼이름")
next
end if
else
Messagebox("SAP_Rfc.CALL 오류", "RFC 실행
오류 :: " + String(SAP_Rfc.Exception) )
end
if
Destroy
SAP_Table
Destroy
SAP_Rfc
===========================================================
저장
Oleobject SAP_Rfc /* SAP Main 역활 */
Oleobject SAP_Table
/* 데이터를
받을 때 사용됨 */
SAP_Rfc = Sap_OLE.Add( "여기에
RFC 이름" ) /* RFC 이름
셋팅 */
/*
조회조건
셋팅 */
ll_args = UpperBound( args_cols[] )
for
i = 1 to ll_args
//SAP_Rfc.exports("IV_AUFNR",
"20000269")
SAP_Rfc.exports(args_cols[i], args_datas[i])
next
/*
조회하기. */
Boolean
lb_SAP_Rfc_CALL = false
lb_SAP_Rfc_CALL = SAP_Rfc.CALL
/* SEND */
if
lb_SAP_Rfc_CALL = true then
/* 아래
두가지는 상호 합의된 조회 결과에 대한 리턴값
*/
ls_ev_type = SAP_Rfc.imports("EV_TYPE").VALUE
ls_ev_msg =
SAP_Rfc.imports("EV_MSG").VALUE
if ls_ev_type = 'S' then
성공
else
실패
end if
else
Messagebox("SAP_Rfc.CALL 오류", "RFC 실행
오류 :: " + String(SAP_Rfc.Exception) )
end
if
Destroy
SAP_Table
Destroy
SAP_Rfc