Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 15

R/3 System과 타 System과의 연동

차례
연동 방안.....................................................................................................................2
R/3에서 데이터를 작성 후 그룹웨어에서 결재를 진행하는 방안.....................................2
RFC(Remote Function Call).........................................................................................3
RFC 개요..............................................................................................................3
RFC 구성..............................................................................................................4
BAPI(Business API)...................................................................................................10
장점....................................................................................................................10
단점....................................................................................................................10
노츠 연동...................................................................................................................11
연동 기술............................................................................................................11
환경 설정............................................................................................................11
연동 방법............................................................................................................11
DMS 연동..................................................................................................................14
환경 설정............................................................................................................14
문서 내려 받기.....................................................................................................14
문서 올리기.........................................................................................................14

1 Y1000
연동 방안
R/3에서 데이터를 작성 후 그룹웨어에서 결재를 진행하는 방안.
일반적으로 R/3와 그룹웨어간 결재 관련 연동은 아래와 같은 방법을 이용하여 서로 데이터를 주
고 받습니다.

4. 상세 정보
6. GW결재 진행 7 최종 승인
RFC 호출
5. 기안

5 상태 변경 7 상태 변경
RFC 호출 RFC 호출

GroupWare
R/
3
3 GW호출

1. 문서 작성
2. 저장 7 상태 변경

그림의 각 단계에서 아래와 같은 작업이 이루어집니다.


1. R/3에서 문서를 작성한다.
2. 문서를 저장한다.
3. 그룹웨어를 호출한다. 호출시에 일종의 KEY값을 넘겨준다.
4. 받은 KEY값을 이용하여 그에 해당하는 RFC를 호출해서 상세 정보를 가져온다.
5. 그룹웨어 기안과 동시에 R/3쪽 상태도 기안으로 변경하고 그룹웨어 결재를 진행한다.
6. 그룹웨어 결재 진행중에는 R/3와 연동하지 않는다(반려시에는 연동).
7. 최종 승인이 나면 상태 변경 RFC를 호출해서 최종 승인상태로 바꿔준다.

2 Y1000
RFC(Remote Function Call)
RFC 개요
R/3는 아래와 같은 구조로 구성되어 있습니다.

Presentation Server Application Server

Database
Server
Presentation Server Application Server

Table을 포함한 각종 데이터가 DataBase Server에 저장이 되어 있습니다. SAPGUI라 불리우


는 Presentation Server에서 받은 명령을 Application Server로 전송하게 되고 Application
Server에서는 명령에 해당하는 Data를 DataBase Server에서 가져와 사용자의 요구에 맞는
형태로 가공하여 다시 Presentation Server로 보내주게 됩니다.

일반적으로 Database Server에 있는 Data에 접근, 가공할 때는 OPEN-SQL이라 부르는 SAP


에서 제공한 SQL문을 사용하게 됩니다. 이 OPEN-SQL은 Database Server DB의 종류와 상관
없이 자체 문법이 있고 R/3에서는 알아서 DB에 맞게 처리해 줍니다. 또한 ABAP은 OPEN-SQL
을 수행하는 과정과 더불어 비즈니스 로직을 수행할 수 있게끔 코딩이 가능하므로 직접
Database Server에 접근해서 값을 변경하기 보다는 OPEN-SQL문을 이용해서 작업을 처리하
는 것이 데이터 일관성을 유지하기가 용이합니다.

RFC란 타 시스템과 데이터를 주고 받기 위해 R/3에서 제공하는 함수의 한 형태로 R2, R3와 같


은 SAP 쪽 시스템은 물론 다른 여타의 시스템에서도 쉽게 호출이 가능한 형태로 API를 제공함
으로서 ABAP이나 R/3의 구조를 모르는 타 시스템 개발자들도 쉽게 R/3와 연동을 가능하게 해
줍니다.

RFC는 여러모로 장점을 가지고 있는데, ABAP개발자의 측면에서 보았을 때 개발이 쉽고, R/3
시스템 측면에서는 매우 빠르며 효율적이고, 타 시스템 개발자의 측면에서는 접근하기 쉽다는
장점이 있습니다.
R/3는 전사적 자원 관리를 하기 위한 데이터의 집합뿐만 아니라 그 데이터를 처리하기 위한 비
즈니스 로직까지 같이 포함되어 있는 상태이기 때문에 ABAP개발자가 작성해준 RFC를 호출함
으로서 타 시스템 개발자는 비즈니스 로직이나 ABAP 언어, R/3 구조에 대해 깊게 알 필요가 없
이 쉽게 소기의 목적을 달성할 수 있습니다.

3 Y1000
RFC 구성
RFC 조회
T-CODE SE37을 하면 아래와 같이 함수 작성기가 나옵니다. 찾고자 하는 함수의 이름을 기록하
고 조회 단추를 누릅니다.

4 Y1000
RFC는 아래 그림과 같이 간단하게 나타낼 수 있습니다.

외부 개발자는 함수의 이름과 주고 받을 파라미터를 파악해서 함수 호출시에 값을 넘겨주고 함


수 수행 후 값을 넘겨 받아서 그룹웨어 양식에 적절히 출력해준다.

5 Y1000
RFC 속성
Attributes에 가서 Remote-enabled module로 지정되어 있어야 외부에서 호출이 됩니다.

6 Y1000
Import Parameter

Import Parameter는 함수를 수행하기 위해 받는 값을 받을 변수입니다. 하나의 변수일 수도


있고 한건의 데이터일 수도 있습니다.
Pass Value가 지정되어 있어야 값을 받을 수 있습니다.

7 Y1000
Export Parameter

Export Parameter는 함수 수행후 변수나 한건의 데이터를 받을 때 씁니다. 보통 RETURN 변


수를 이용해서 함수 성공 여부를 외부에 전달 합니다.

8 Y1000
Table Parameter

Table Parameter는 여러건의 데이터를 주고 받을 때 쓰는 파라미터입니다. 주로 항목 정보를


받아올 때 사용합니다.

9 Y1000
BAPI(Business API)
R/3의 여러 업무를 개체화 하여 RFC 함수를 method 형태로 붙인 것.

예를 들자면 아래와 같다.


Business Object BAPI RFC
PurchaseRequisition CreateFromData BAPI_REQUISITION_CREATE
(구매 요청) GetDetail BAPI_REQUISITION_GETDETAIL

GetItems BAPI_REQUISITION_GETITEMS

GetItemsForRelease BAPI_REQUISITION_GETITEMSREL

GetReleaseInfo BAPI_REQUISITION_GETRELINFO

… …

장점
- 표준 BAPI를 사용하면 개발에 신경 쓸 필요가 없다.

- Business Object에 대한 객체 지향 프로그래밍을 할 수 있다.

단점
- 표준이 아닌 개발시에 적절하지 않다.

- RFC 뿐만 아니라 Business Object까지 개발해야 하므로 개발 과정이 조금 더 복잡해


진다.

- 표준 BAPI 사용시 사용법을 잘 파악해야 한다.

Business Object를 거치지 않고도 RFC를 호출 할 수 있으므로 BAPI의 개발 여부는 신중히 결


정해야 한다.

10 Y1000
노츠 연동
연동 기술
- LotusScript Extention for SAP
LotusScript를 이용하여 RFC를 호출함.

환경 설정
SAPGUI 설치
- SAPGUI 설치할 때 개발관련 툴만 설치한다.

- System 변수 Path에 SAPGUI 설치 경로 추가한다.

LotusScript Extention for SAP 설치


nlsxrfc.dll
- C:\WINNT\System32 에 복사

- 아래 레지스트리 추가
위치: HKEY_LOCALE_MACHINE\ SOFTWARE\ Lotus\ Components\
LotusScriptExtensions\ 2.0
문자열: RFC : C:\WINNT\System32\nlsxrfc.dll

연동 방법
RFC Class 이용 선언
- Agent 또는 Script library (Options)에 UseLSX "*RFC" 추가

- DMS와 문서를 주고 받기 위해서는 아래와 같은 코드를 (Declarations)에 추가해준다.


Declare Sub RfcAllowStartProgram Lib "Librfc32" (Byval pname As String)

11 Y1000
일반적인 연동 순서
- R/3 로그온(rfcServer 개체를 만든다.)

- 함수 선언(rfcServer 개체를 이용하여 함수를 지정한다.)

- Import Parameter 지정

- 함수 호출

- Export Parameter 해석

R/3 로그온

Dim objServer As RfcServer

Set objServer = New rfcServer

objServer.Destination = "KHNP"

objServer.HostName= "XXX.XXX.XXX.XXX" ‘ R/3 Server IP

objServer.System = Val("00")

objServer.Client = "700"

objServer.User = "userid"

objServer.Language = "KO"

objServer.Password = "password"

If objServer.Logon() Then

Print "로그온 성공"

Else

Print "R/3에 로그온을 못 했습니다."

End If

함수 호출

‘*-- DMS 연동을 하려면 아래 코드추가.

RfcAllowStartProgram("saphttp;sapftp")

'*-- 함수 지정

12 Y1000
Set rfcFunction = _

New RFCfunction(objServer, "BAPI_REQUISITION_GETDETAIL")

'*-- Import Parameters

rfcFunction.Exports("NUMBER").Value = "2000000021"

'*-- 함수 호출

If rfcFunction.Call = True Then

SetREQUISITION_ITEMS = _

rfcFunction.Tables("REQUISITION_ITEMS")

Set aRETURN = rfcFunction.Tables("RETURN")

'*-- Error 확인

Forall tblRow In aRETURN.Rows

If tblRow.GetCell("TYPE") = "E" Then

re_type = "E"

re_msg = tblRow.GetCell("MESSAGE")

End If

End Forall

Else

re_type = "E"

re_msg = "함수를 호출하지 못했습니다."

End If

Set rfcFunction = Nothing

13 Y1000
DMS 연동
환경 설정
- SAPftp.exe, SAPhttp.exe 가 있는 폴더를 찾아 경로에 추가시켜줘야 함.
(기본적으로 C:\Program Files\SAP\FrontEnd\SAPgui)

문서 내려 받기
함수: BAPI_DOCUMENT_CHECKOUTVIEW2
Input Parameter
- DOCUMENTTYPE: 문서 유형(예: AB7, TU3).

- DOCUMENTNUMBER: 문서 번호.

- DOCUMENTPART: 문서 부분.

- DOCUMENTVERSION: 문서 버전.

- GETHEADER: “X”

- ORIGINALPATH: 파일을 내려받고자 하는 경로.

Table Parameter(Export)
- DOCUMENTFILES-DOCFILE: 내려받은 파일 이름.

문서 올리기
함수: BAPI_DOCUMENT_CREATE2
Input Parameter
- documentdata-documenttype: 문서 유형*

- documentdata-documentnumber: 문서 번호

- documentdata-documentversion: 문서 버전

- documentdata-documentpart: 문서 부분

- documentdata-statusintern: 문서 상태(내부)*

- documentdata-statusextern: 문서 상태(외부)*

- documentdata-laboratory: 사업소 구분*

- documentdata-description: 제목

14 Y1000
Table Paramter(Import)
- documentfiles-storagecategory: 저장소 범주*

- documentfiles-docfile: 파일 이름(경로 포함)

- documentfiles-wsapplication: 파일 확장자

- documentfiles-checkedin: 'X'.

Export Parameter
- Return-tyep: E 또는 A가 아니면 Commit Work를 해야 문서가 DMS에 저장된다.

* 표시는 DMS관리자에게 의뢰.


문서 상태는 BAPI_DOCUMENT_GETSTATUSLIST 함수를 이용해서 찾을 수 있음.

15 Y1000

You might also like