홈 · 개발 참고자료

개발 참고자료

[파워빌더] 파워빌더와 SAP연동하기...

작성자
관리자
작성일
2021-07-14
조회
5511
분류
문서자료
기존의 소스에서 발취하여 없는 변수나 자잔한 오류가 있을수 있습니다. ^^






준비 : 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