DJ메탈짱™의 Free Style

[ASP] SAP의 조회(SELECT) Function호출 (함수) 본문

일(job)/MS(Microsoft)

[ASP] SAP의 조회(SELECT) Function호출 (함수)

뽀&쏭 2016. 1. 11. 16:29



이름 : F_CallRFC

             내용 : SAP 함수 호출

             ' – sFName  : 함수이름

             ' - sInId : Import parameter (조건필드)  

             ' - sInValue : Import parameter value (조건값)

             ' - sOut  : Export parameter

             ' – IsTable : Y(Table) / N(export parameter)

             Function F_CallRFC(sFName, sInId, sInValue, sOut, IsTable)            

                           Dim sResultSet   함수결과값 반환(테이블)

                           Dim RFCFNC

            

                      ' SAP연결 실패시 함수 종료

                           If Not sSapResult then

                                        Exit Function

                           End if

                          

                           함수 호ㅗ출 실행  결과값  바인딩

                           Set RFCFNC = SAPFNC.Add(sFName)

                           조건절 추가

                           If sInId <> "" Then

                                        RFCFNC.Exports(sInId) = sInValue

                           End If

 

                           sSapResult = RFCFNC.Call()

                           If sSapResult <> True Then                                   

                                        Call DisplayMsg("SAP Function Call Error!!")

                                        Call CloseSAP()

                                        Response.End

                                        Exit Function

                           Else      

                                        If IsTable Then ' RecordSet(Table) 반환

                                                     Set sResultSet = RFCFNC.tables.Item(sOut)

                                                     Set o_Msg = RFCFNC.Imports("O_MSG")  

' response.write                                         "<br>count        :" & sResultSet.rows.count

                                        Else ' Export Parameter 반환

                                                     Set sResultSet = RFCFNC.Imports(sOut)

                                                     Set o_Msg = RFCFNC.Imports("O_MSG")

                                                     ' call debugw("result",o_Msg)

                                        End If

                           End If

                          

                           객체초기화

                           set RFCFNC = nothing     

                           함수호출 결과 반환

                           Set F_CallRFC = sResultSet          

             End Function

===========================================================

ASP에서 함수 호출하는 방법!!!
 ' SAP 접속정보 (ASP에서 SAP 접속하기. (DCOM 아님) 게시물 참고)
 Call SAPConnection()

 ' 로그인한 사용자의 권한정보 반환
 Set RsAuth = F_CallRFC("함수명","I_PERNR",USER_PERNR,"O_AUTH",True)

  ' SAP연동방법 변경으로 인해 아래와 같이 레코드가 없는 경우 비교필요함.(사원정보는 (레코드행,컬럼명) 지정

 ' 테이블 형태로 반환되돌록 함수 마지막 파라미터를 True로 했기 때문에 레코드 표시.

  If RsAuth.RowCount > 0 Then

Auth = RsAuth(1,"AUTHORITY")

  Else

          Auth = ""

  End If

 

  if Auth = "" or isNull(Auth) Then

          Auth ="N"

  End if

 

  If RsAuth.RowCount > 0 Then

          auth_bldg_code = RsAuth(1,"BLDG")

          auth_bldg_name = RsAuth(1,"BTEXT")

          auth_kostl_code = RsAuth(1,"KOSTL")

          auth_kostl_name = RsAuth(1,"KTEXT")

  End If

===========================================================================================

' False로 호출하면 하나의 값만 반환되므로 아래와 같이 활용함.
Set
 O_KOSTL = F_CallRFC("함수명","I_PERNR",USER_PERNR,"O_KOSTL",False)

Response.Write "반환된결과값:" & O_KOSTL