SAP ALE IDOC EDI-Kor_10.2.2 File Transfer Protocol(FTP)

10.2.2 File Transfer Protocol(FTP)

또 다른 통신방식은 File Transfer Protocol(FTP)이다. outbound 시나리오에서 프로그램 RSEOUT00을 실행하면, IDOC database 상에 모아져 있던 IDOC을 file형태로 만들어 낸다. 이렇게 하면 ASCII file형태의 IDOC이 생성되는데, 이 file은 FTP를 통하여 외부시스템으로 전송될 수 있다. 여러분은 이를 위해 file port를 정의해야 한다는 것을 유념하기 바란다. inbound 처리인 경우에, 프로그램 RSEINB00을 사용하거나 transaction WE16을 사용하여, file형태의 IDOC을 SAP 내부로 전송할 수 있는데, 이렇게 하면 IDOC database 상에 IDOC이 생성되게 된다. 그런 다음, 다른 inbound function module을 사용하여 IDOC 자료를 application에 반영하게 된다. 테스트 목적으로 outbound file형태의 IDOC을 inbound file형태의 IDOC으로 변환하고자 하면, transaction WE12를 사용하거나 transaction WEDI à [Test] à [Inbound Processing of Modified Outbound File]를 사용할 수 있다. [그림 10-5]를 참조하라. 앞에서 배운 것처럼, file을 이용한 통신은 기본적으로 EDI에서 사용된다.

SAP ALE IDOC EDI-Kor_10.3 IDOC 처리방식(Processing Option)

10.3 IDOC 처리방식(Processing Option)

SAP는 우리에게 inbound에서 뿐만 아니라 outbound에서 IDOC을 처리하는데 사용할 수 있는 여러 가지 처리방식을 제공해 준다. 이러한 처리방식은 ALE interface의 처리성능에 있어서 중요한 역할을 하고 있다. 우리가 사용할 수 있는 처리방식(processing option)은 크게 보면 세 가지 분류할 수 있는데, (1) 처리시점(dispatch control), (2) 처리순서(Processing Mode), (3) 처리단위(Unit of Transfer)가 그것이다. 처리시점(Dispatch Control)이란 생성된IDOC을 어느 시점에 처리하느냐 하는 것이다. 처리순서(Processing Mode)란 생성된 IDOC을 순차적으로 처리하느냐, 아니면 병렬적으로 처리하느냐 하는 것이다. 처리단위(Unit of Transfer)란 생성된 IDOC을 처리하는 단위가 몇 개이냐 하는 것이다. 이러한 처리방식(processing option)들에 대하여 탐구해 보자.

SAP ALE IDOC EDI-Kor_07.2 Outbound 처리

7.2 Outbound 처리

ALE/EDI outbound처리에서 SAP가 기본적으로 제공하고 있는 기능 중의 하나는 IDOC을 생성해 주는 것인데, 여기에는 IDOC을 통하여 master data를 송신하고, 생성된 IDOC을 port로 보내고, 처리과정에서 오류가 발생하면 IDOC을 재처리하는 작업들이 포함되어 있다.

프로그램 RBDMIDOC은 change pointer에 근거하여 master data IDOC을 생성하기 위해서 사용된다. [그림 7-1]을 참조하라. 이 프로그램은 master data에 대한 message type을 유일한 parameter로 사용한다. 특정 message type에 대하여 이 프로그램을 실행하면, 그 message type에 대한 change pointer에 근거하여 IDOC을 생성해 내고, 수신시스템으로 IDOC을 전송해 준다. 앞에서 이야기한 것처럼, changer pointer란 SAP 시스템에 있는 특정 application자료에서 발생하는 변경사항을 기록해 주는 object이다. 수신시스템은 customer distribution model에 의해서 결정된다. 수신시스템을 나타내는 logical system에 대해서 유효한 partner profile이 정의되고, 그 outbound parameter에서 message type, 그에 대응되는 IDOC type, port 등에 대한 정보가 정확하게 정의되어 있어야 한다. 만약 여러분이 어떤 master data message type에 대하여 ‘IDOC reduction’을 위한 설정을 하고, 그것을 활성화(activate)하였다면, 이 프로그램을 이용하여 ‘reduction message type’에 대한 IDOC을 생성할 수도 있다는 것에 유의하라(제 4장에 있는 IDOC reduction을 보라). 프로그램 RBDMIDOC이 일단 지정된 message type에 대한 change pointer를 처리한 후에는, 그 change pointer를 “processed” flag로 표기한다. 여러분이 아는 것처럼, 이 flag는 table BDCPS에서 관리되고 있다. 그리고 난 다음, 이 프로그램은 생성된 ‘master IDOC’과 ‘communication IDOC’의 숫자에 대한 안내 메시지를 보여 줄 것이다. 실제로 생성된 communication IDOC의 숫자와 master IDOC의 숫자는 customer distribution model의 message flow에서 지정된 logical system과 filter object에 따라 서로 달라질 수 있다는 것에 유의하라. 이 프로그램은 transaction BD21를 사용하거나, transaction BALE à [Services] à [Change Pointers] à [Process]를 통해서도 실행할 수 있다. 프로그램 RBDMIDOC은, 지정된 message type에 대한 모든 change pointer를 모아서 IDOC이 한꺼번에 생성할 수 있도록 하기 위해서, scheduling job으로 만들어 주기적으로 실행할 수도 있다. 이 작업은 master data에서 발생하는 모든 변동사항을 다른 R/3 시스템이나 외부시스템으로 전송하여, 시스템들을 서로 동기화할 필요가 있는 경우에 더욱 유용하다.

SAP ALE IDOC EDI-Kor_06.4 Interface 작동

6.4 Interface 작동

우리는 outbound EDI 대금청구서(invoice, ANSI X12 “810”)에 대하여 필요한 설정을 모두 완료했기 때문에, 이제 IDOC을 생성하고, 그들을 EDI subsystem으로 전송하는 테스트 작업을 해보자. 이 작업을 완료하기 위해서, 먼저 우리는 특정 고객(customer), 임의의 자재(material)와 수량으로 판매주문(sales order)(transaction VA01)을 하나 생성한다. 그 다음으로 그 판매주문(sales order)에 대하여 납품(delivery, transaction VL01)을 생성한다. 납품 품목(delivery item)에 대하여 picking 작업을 완료하고 “post goods issue”를 처리한다. transaction VF01을 실행하여, 앞에서 우리가 생성한 납품 번호(delivery number)에 대하여 대금청구 문서(billing document)를 생성한다. 일단 transaction VF01에서 SD 문서, 즉 위의 납품 번호(delivery number)가 “processed” 상태가 되면, 대금청구 문서(billing document) 화면에서 메뉴 [Hearder] à [Output]으로 가라. 앞에서 우리가 설정한 대로, output type ZBIL에 대하여 output record가 생성되어 있는지를 점검하라. [그림 6-9]을 참조하라. 여러분은 output type ZBIL에 대하여, [Medium] 필드에는 “6”, [Partner function] 필드에는 “PY”, [Partner] 필드에는 payer의 고객 번호(customer number)가 지정되어 있고, output에 대한 status가 표시되어 있는 자료를 볼 수 있을 것이다. [Status] 필드는 세 가지 값을 가질 수 있다 : “0”은 아직 처리되지 않았음을 나타내고, “1”은 성공적으로 처리되었음을 나타내며, “2”는 처리되었지만 오류가 발생한 것을 나타낸다.

SAP ALE IDOC EDI-Kor_06.3 Port와 Partner Profile설정

6.3 Port와 Partner Profile설정

우리는 application에서 output determination 설정을 완료했기 때문에, 이제 EDI에 대한 기술적인 설정을 진행해 보기로 하자. 이러한 작업에는 port정의, partner profile 생성, external partner number에 대한 상호참조를 위하여 table EDPAR에 자료를 입력하는 작업 등이 여기에 포함되어 있다.

6.3.1 EDI Subsystem 호출과 Output Mode

outbound 시나리오에서 SAP port와 EDI subsystem 간의 통신에 대한 기본개념을 이해해 보자. port 정의에서 우리가 처리한 설정사항은 file이 전송되는(생성되는) 시점, file이 생성되는 위치, file 이름 등을 동기식 RFC(synchronous RFC)를 통하여 EDI subsystem에게 알려주는 역할을 한다. SAP는 이미 동일한 이름의 file이 있으면, 기존의 IDOC file에 새로운 자료를 append하지 않고 기존 자료를 덮어 쒸우기 때문에, 동적인 file 이름(dynamic file name)을 사용하는 것이 좋다. 이러한 동적인 파일 이름을 사용하게 되면, outbound port 정의에서 지정된 function module에 따라 원하는 형태의 file이름이 생성될 수 있다.

SAP ALE IDOC EDI-Kor_03.2.6 Outbound Interface – Interface 작동

3.2.6 Interface 작동

구매주문(purchase order) outbound IDOC을 생성하기 위해서 필요한 모든 설정을 완료했기 때문에, 이제는 interface를 테스트해보는 흥미로운 작업를 진행해 나갈 것이다. 이러한 작업은 세 가지 단계로 이루어진다.

1. 구매주문(purchase order)을 생성하거나 수정한다. output type ZNEU에 대하여 output(message)이 생성되어 있는지를 확인하라.

2. IDOC을 생성하기 위해서 앞에서 생성된 output을 처리한다.

3. 생성된 IDOC을 외부시스템으로 전송한다.

구매주문(purchase order)을 생성하기 위해서는 transaction ME21N을 사용하거나, SAP의 시작메뉴 [Logistics] à [Material Management] à [Purchasing] à [Purchasing Order] à [Create] à [Vendor/Supplying Plant Known]을 실행한다. 또한 여러분은 transaction ME25(Vendor unknown)을 사용할 수도 있다. 구매주문(purchase order)을 생성할 때는 message control에서 지정한 그 Document Type을 사용한다. 다른 말로 하면, output determination 설정에서 condition record를 생성할 때 사용된 구매주문(purchase order)의 Document Type을 사용한다. 구매주문(purchase order)에 대하여 자재 번호, 물량, plant, storage location, 단가, 기타 이와 유사한 것들을 입력한다. 이때 구매품목(line item)이 accept되었는지를 반드시 확인할 필요가 있다. output record가 생성되었는지를 확인하기 위해서는 다음 작업을 수행한다. [그림 3-14]를 참조하라.

SAP ALE IDOC EDI-Kor_02.4.8 Interface 작동

.4.8 Interface 작동

지금까지 우리는 R/3와 R/3 간을 interface하기 위해서 필요한 시스템 설정을 완료했으므로, 이제는 이 interface를 실제로 실행하고, 그 결과를 이해하는 방법에 대하여 공부해 보기로 하자. 또한 우리는 통신상태를 monitoring해 볼 수 있는 기술을 배울 것이며, 나중에는 R/3와 R/3 간에 ALE 통신을 할 때의 performance문제에 대해서도 토론할 것이다.

● 자료의 송신:

SAP는 IDOC을 송신해 주고, 처리해 주는 표준 프로그램을 기본적으로 제공해 준다. 우리가 수신시스템으로 자료를 보낼 때 사용할 프로그램은 Characteristics Master를 송신하는 프로그램 RBDSECHR과 Class Master를 송신하는 프로그램 RBDSECLS이다. 여기서 한 가지 유념해야 할 것은, characteristics은 class에 포함되어 있기 때문에, 즉 class는 characteristics를 포장한 것과 같기 때문에, Class Master보다 Characteristics Master자료가 먼저 송신되어야 한다는 것이다. 먼저 첫 번째 단계로, 송신시스템에서 characteristics IDOC을 생성해 보기로 하겠다.