출판된 한글판 도서
ERP SAP R/3 ALE, EDI & IDOC 기술 |
Original Book Contents
2.3.6 Interface 작동
이제까지 outbound Material Master interface를 위한 ALE 설정을 완료했으므로, 지금부터 우리는 interface를 테스트해보는 흥미로운 작업를 진행해 나갈 것이다. 이 interface를 작동해 보는 방법에는 몇가지가 있다. 즉 우리가 Material Master IDOC을 직접 ‘송신’하는 방법을 사용하거나, 아니면 master에서 발생하는 변동사항을 포착하고, 그 변동사항을 IDOC으로 변환하는 방법을 사용할 수도 있다. 그외에 세 번째 방안으로 master data를 끌어 오는 방법이 있는데, 이 방법에서는 참조 R/3 시스템에게 Material Master자료를 송신해 주도록 요청하는 방법을 사용한다. 이 방법에서는 message type MATFET를 사용한다.
● Master Data의 송신
master data를 송신하는 첫 번째 방법은 표준 ALE 프로그램을 이용하여 IDOC을 직접 ‘송신’하는 것이다. 이 경우에, 그 IDOC type의 모든 segment는 master data의 database에 있는 자료들로 채워지고, 송신할려고 선택한 모든 master record에 대하여 각각 하나의 IDOC이 생성될 것이다. 이렇게 하기 위해서는 다음 작업을 수행한다. [그림 2-17]을 참조하라.
n transaction BD10을 사용하거나 시작메뉴 [Tools] à [ALE] à [Master Data Distribution] à [Cross-Application] à [Material] à [Send]를 실행한다.
n 송신하고자 하는 단일 자재(material)나 또는 자재(material)의 범위를 지정한다.
n [Message type] 필드에 “MATMAS”를 지정한다.
n [Logical system] 필드에 “EX1MATMAS3”를 지정한다.
n 프로그램을 실행시킨다.
n 여러분은 실제로 생성된 IDOC 숫자를 보여주는 안내 메시지를 보게 될 것이다. 여기서는 Master IDOC과 Communication IDOC 의 숫자를 보여준다. Master IDOC이란 그 application object에서 필요로 하는 모든 자료를 포함하고 있는 IDOC으로서, SAP의 memory에서만 존재하고, 실제로 송신되는 IDOC은 아니며, 이를 근거로 하여 communication IDOC이 생성된다. Communication IDOC이란 우리가 외부시스템이나 다른 R/3 시스템으로 송신하는 실제의 IDOC을 말한다. 이러한 communication IDOC은 SAP의 IDOC database에 저장된다. 예를 들면, customer distribution model에서 두 개의 logical system이 message type MATMAS를 수신하도록 지정되어 있다면, 송신하기 위해서 선택된 각각의 자재(material)에 대하여 두 개의 communication IDOC이 생성될 것이다.
여러분은 transaction BD10을 실행하거나 프로그램 RBDSEMAT를 실행하면, 이 화면에 곧바로 도달할 수 있다. 만약 여러분이 대량의 Material Master 자료를 송신하려고 한다면, server group과 Number of Materials per process라는 parameter를 사용하면 도움이 될 것이다(이러한 개념에 대해서는 제 10장의 “ALE 최적화”에서 상세하게 설명될 것이다).
그림 2‑17 Master Data 직접 송신
● Change Pointer를 IDOC으로 변환하기
master data를 송신하는 두 번째 방법은 master data에서 발생하는 모든 변동사항을 포착하고, ALE 프로그램으로 하여금 이러한 change pointer들을 이용하여 IDOC을 생성하게 하는 것이다. 이를 위해서는 이전에 설명한 것처럼, general level에서 뿐만 아니라 그 message type에 대해서도 change pointer 생성이 활성화(activate)되도록 ALE 설정을 해야 한다. [그림 2-18]을 참조하라.
n transaction MM01, MM02, MM06을 사용하여 자재(material)를 생성하고, 수정하고, 삭제표시를 한다.
n transaction BALE à [Services] à [Change Pointers] à [Process]를 실행시킨다.
n [Message type] 필드에 “MATMAS”를 입력한다.
n 프로그램을 실행시킨다.
n 그러면 여러분은 실제 생성된 IDOC 숫자를 보여주는 안내 메시지를 보게 될 것이다.
일단 change pointer를 처리하여 IDOC을 생성하고 나면, 동일한 변경사항에 대하여 IDOC이 중복하여 생성되지 않도록 하기 위해서 그 change pointer를 “처리완료”로 표시한다. 하지만 동일한 자재(material)에 대하여 또 다시 변경이 발생한다면, 명백하게 새로운 change pointer에 근거하여 새로운 IDOC이 또다시 생성될 것이다. 이때 생성되는 IDOC은필수(mandatory) segment와 Material Master 중에서 실제 변경된 field가 포함되어 있는 segment만 포함하고 있다는 것을 유념할 필요가 있다.
여러분은 transaction BD21을 실행하거나 프로그램 RBDMIDOC을 실행하면, 이 작업을 할 수 있는 화면에 곧바로 도달할 수 있다. 만약 주기적으로 master data를 대량으로 변경한다면, change pointer database의 크기가 너무 커져서 시스템의 성능을 저하시킬 가능성도 있다. 따라서 이러한 table들을 관리하고, change pointer에서 master data IDOC을 생성해 주는 ALE 프로그램들과 function module들의 성능을 향상시키기 위해서, 여러분은 프로그램 RBDCPCLR을 이용할 수가 있다. 상세한 내용에 대해서는 제 7장을 읽어 보기 바란다.
그림 2‑18 Change Pointer를 이용한 Master IDOC송신
● IDOC과 IDOC Status정보 조회:
지금까지는 IDOC을 생성했는데, 이제는 생성된 IDOC을 조회해 보고, 우리의 테스트 결과를 점검해 보자. 확인해보는 방법은 다음과 같다. [그림 2-19], [그림 2-20], [그림 2-21], [그림 2-22]를 참조하라.
n transaction WEDI à [IDOC] à [IDOC List]을 실행한다.
n 그러면 조회하고자 하는 IDOC에 대한 선택조건을 입력할 수 있는 화면이 나타날 것이다. message type, 수신자의 partner number, 선택일자, 기타의 선택조건을 입력한다.
n 프로그램을 실행시킨다.
n 여러분은 앞에서 입력한 선택조건에 맞는 IDOC들에 대한 정보를 보여주는 조회화면을 볼 수 있을 것이다. 이 화면 왼쪽에서는 IDOC의 status와 전달방향(direction-inbound 또는 outbound)별로 소계와 총계자료를 표시해 주고, 화면 오른쪽에서는 status와 message type별로 IDOC 통계자료를 보여준다.
n message type MATMAS가 있는 행을 double-click하거나, 그 행을 click한 다음, 목록 위에 있는 [IDOC Display] 버튼을 누른다.
n 그러면 이전 화면에서 선택한 message type에 대한 모든 IDOC 목록을 보여주는 화면이 나타난다. 화면 상의 필드는 다음과 같다 : IDOC 번호(이 번호는 IDOC을 식별하는 고유한 번호이며, 내부적으로 번호가 부여된다), status, 수신 partner, IDOC type, message type, IDOC 생성일시, 전달방향(direction), port.
n 화면에서 조회하고자 하는 IDOC이 있는 행을 double-click하거나, 그 행을 click한 다음 [IDOC Display] 버튼을 누른다.
n 그러면 선택된 IDOC에 대한 상세정보를 보여주는 화면이 나타난다. 이 화면 왼쪽에는 control record가 가장 위에 있고, data record와 status record가 계층적으로 표시되어 있으며, 화면 오른쪽에서는 control record에 대한 상세정보가 위에 표시되어 있고, 아래에서는 data record에 대한 상세정보를 확인할 수 있다.
n 화면 오른쪽 위에 있는 control record 상세정보에서는 message type, IDOC type, 수신자 상세정보(partner number, partner type, port) 등과 같은 EDIDC 정보를 확인할 수 있다.
n 화면 왼쪽에 있는 data record 계층구조를 확장해 보면, 자료가 채워져 있는 IDOC segment들이 계층적으로 표시되어 있는 것을 확인해 볼 수 있다. 또한 data record에 있는 segment들 중 하나를 click하면, 오른쪽 아래에서 그 선택된 segment에 대한 상세정보를 확인해 볼 수 있다. 여기서는 그 segment 내에 포함되어 field 이름과 그 값을 표시해 주는 목록자료가 나타난다.
n 화면 오른쪽에 있는 status record에서는 그 IDOC이 지금까지 거쳐온 여러 상태들에 대한 정보를 확인해 볼 수 있는데, 최근의 status 정보가 제일 처음에 나타나 있다. 또한 각각의 status record에는 그와 관련된 구체적인 message 정보가 나타나 있다.
IDOC status record는 table EDIDS에 저장되어 있는데, 이는 그 IDOC의 처리상태에 대한 이력정보를 나타내 준다. 이러한 정보는 외부로는 전달되지 않고, 단지 R/3 시스템 내에서만 관리되고, 조회될 수 있다. SAP의 API를 사용하여 이러한 status record정보를 조회해 볼 수도 있다. status code 목록에 대한 정보를 보려면 부록 C를 참조하기 바란다.
IDOC을 조회해 보기 위해서는 transaction WE02 또는 transaction WE05를 사용하거나, transaction WEDI à [IDOC] à [IDoc Lists]을 사용하거나, transaction BALE à [Monitoring] à [Status Monitor for ALE Messages]를 사용할 수 있다.
그림 2‑19 IDOC자료의 조회 -- 선택조건
그림 2‑20 IDOC자료의 조회--IDOC 개요
그림 2‑21 IDOC자료의 조회—IDOC 목록
|
그림 2‑22 IDOC자료의 조회—IDOC 상세
● Message Function:
master data IDOC type의 모든 segment는 처음에 “MSGFN”이라는 field를 가지고 있다. 이 3 byte 길이의 Message Function이라는 field는 IDOC을 수신하는 시스템에서 취해야 하는 action을 보여 준다. 예를 들면 “009”라는 것은 그 segment 내에 포함되어 있는 모든 자료가 원본 message라는 것을 나타내며, 이는 이 자료가 새로이 생성되었다는 것을 의미한다. MSGFN에서 나타날 수 있는 값들의 전체 목록을 살펴 보려면 [표 2-1]을 참조하면 된다. 동일한 IDOC 내에서 segment가 다르면, message function 값이 달라 질 수 있다. 예를 들면, segment E1MARAM에서 MSGFN = “004”라는 값을 가질 때(이는 그 material에 대해 하나 또는 그 이상의 기본 자료가 변경되었다는 것을 의미한다), 필수 segment인 E1MAKTM에서는 MSGFN = “018”(이는 그 자료가 재송신된다는 것을 표시한다)이라는 값을 가지고 있을 수 있다. 마찬가지로 master data를 직접 전송하는 ALE 송신 프로그램(Material Master의 경우는 프로그램 RBDSEMAT)를 통하여 master data가 송신될 때는, 그 IDOC의 segment들에 있는 message function field는 “005”(대체) 라는 값을 가지고 있을 것이다.
Message Function | 설명 |
003 | Delete: Message contains objects to be deleted |
004 | Change: Message contains changes |
005 | Replace: This message replaces previous messages |
009 | Original: First message for process |
018 | Wait/Adjust: Data should be imported |
023 | Resend |
표 2‑1 Message Function(MSGFN) 값
● Non-R/3 시스템으로의 IDOC 전송:
partner profile에서 outbound parameter를 설정할 때 우리가 했던 작업중의 하나가 output mode에서 “Collect IDOCs”을 선택한 것이었다. 지금까지 우리는 Material Master에 대하여 MATMAS03 IDOC을 생성하는 작업을 했기 때문에, 이제는 그것들을 이전에 정의한 port를 통하여 외부시스템으로 전송할 필요가 있다(이 port는 partner profile의 outbound parameter에서 지정되었다). 이렇게 하기 위해서는 다음 작업들을 수행한다. [그림 2-23]을 참조하라.
n 프로그램 RSEOUT00을 실행시킨다.
n 선택조건으로 message type, 수신자 partner 정보, 기타 내용을 입력한다.
n 프로그램을 실행한다.
n 여러분은 처리를 위해 선택된 IDOC 숫자를 보여주는 안내 메시지를 보게 될 것이다.
n file server 상에서 생성된 file을 확인해 보라. 그 자료들은 ASCII(text)형식으로 되어 있을 것이다. 그 file에는 port 정의에서 지정한 형식의 file 이름이 부여되어 있을 것이다. 각각의 EDIDC record와 각각의 IDOC 자료의 segment들은 그 file안에서 하나의 record로서 포함되어 있을 것이다.
n 이 file은 Non-R/3 시스템에 있는 다른 프로그램에 의해서 외부시스템이 요구하는 형태의 format으로 변환되어 처리될 수 있다. 이러한 변환작업은 mapping 도구을 사용하여 처리할 수 있는데, 여기에 대해서는 제 6장에서 다루기로 하겠다.
IDOC 조회를 통하여 이런 IDOC들에 대한 상태를 점검해 보기 바란다. 여러분은 그 IDOC들이 status “03”(Data passed to port OK)으로 되어 있는 것을 확인할 수 있을 것이다
그림 2‑23 생성된 IDOC의 송신