r3 system과 타 system과의 연동

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 Y1000 1

Upload: jauin

Post on 17-Nov-2014

870 views

Category:

Documents


2 download

DESCRIPTION

sap rfc

TRANSCRIPT

Page 1: R3 System과 타 System과의 연동

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

Y10001

Page 2: R3 System과 타 System과의 연동

연동 방안R/3에서 데이터를 작성 후 그룹웨어에서 결재를 진행하는 방안.

일반적으로 R/3와 그룹웨어간 결재 관련 연동은 아래와 같은 방법을 이용하여 서로 데이터를

주고 받습니다.

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

1. R/3에서 문서를 작성한다.

2. 문서를 저장한다.

3. 그룹웨어를 호출한다. 호출시에 일종의 KEY값을 넘겨준다.

4. 받은 KEY값을 이용하여 그에 해당하는 RFC를 호출해서 상세 정보를 가져온다.

5. 그룹웨어 기안과 동시에 R/3쪽 상태도 기안으로 변경하고 그룹웨어 결재를 진행한다.

6. 그룹웨어 결재 진행중에는 R/3와 연동하지 않는다(반려시에는 연동).

7. 최종 승인이 나면 상태 변경 RFC를 호출해서 최종 승인상태로 바꿔준다.

Y1000

GroupWare

1. 문서 작성2. 저장

4. 상세 정보

RFC 호출5. 기안

3 GW호출

5 상태 변경 RFC 호출

7 최종 승인6. GW결재 진행

7 상태 변경

7 상태 변경 RFC 호출

R/3

2

Page 3: R3 System과 타 System과의 연동

RFC(Remote Function Call)RFC 개요

R/3는 아래와 같은 구조로 구성되어 있습니다.

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 구조에 대해 깊게 알

필요가 없이 쉽게 소기의 목적을 달성할 수 있습니다.

Y1000

Presentation Server Application ServerDatabase

Server

Presentation Server Application Server

3

Page 4: R3 System과 타 System과의 연동

RFC 구성

RFC 조회

T-CODE SE37을 하면 아래와 같이 함수 작성기가 나옵니다. 찾고자 하는 함수의 이름을

기록하고 조회 단추를 누릅니다.

Y10004

Page 5: R3 System과 타 System과의 연동

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

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

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

Y10005

Page 6: R3 System과 타 System과의 연동

RFC 속성

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

Y10006

Page 7: R3 System과 타 System과의 연동

Import Parameter

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

있고 한건의 데이터일 수도 있습니다.

Pass Value가 지정되어 있어야 값을 받을 수 있습니다.

Y10007

Page 8: R3 System과 타 System과의 연동

Export Parameter

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

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

Y10008

Page 9: R3 System과 타 System과의 연동

Table Parameter

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

받아올 때 사용합니다.

Y10009

Page 10: R3 System과 타 System과의 연동

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

예를 들자면 아래와 같다.

Business Object BAPI RFC

PurchaseRequisition

(구매 요청)

CreateFromData

GetDetail

GetItems

GetItemsForRelease

GetReleaseInfo

BAPI_REQUISITION_CREATE

BAPI_REQUISITION_GETDETAIL

BAPI_REQUISITION_GETITEMS

BAPI_REQUISITION_GETITEMSREL

BAPI_REQUISITION_GETRELINFO

장점

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

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

단점

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

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

복잡해진다.

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

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

결정해야 한다.

Y100010

Page 11: R3 System과 타 System과의 연동

노츠 연동연동 기술

- 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)

Y100011

Page 12: R3 System과 타 System과의 연동

일반적인 연동 순서

- 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")

'*-- 함수 지정

Set rfcFunction = _

New RFCfunction(objServer, "BAPI_REQUISITION_GETDETAIL")

Y100012

Page 13: R3 System과 타 System과의 연동

'*-- 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

Y100013

Page 14: R3 System과 타 System과의 연동

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: 제목

Table Paramter(Import)

- documentfiles-storagecategory: 저장소 범주*

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

- documentfiles-wsapplication: 파일 확장자

- documentfiles-checkedin: 'X'.

Y100014

Page 15: R3 System과 타 System과의 연동

Export Parameter

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

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

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

Y100015