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.2.1 Transactional Remote Function Call(tRFCs)

10.2.1 Transactional Remote Function Call(tRFCs)

transactional RFC 통신의 경우에, 송신시스템에서 프로세서가 시작되면, 하나의 message가 tRFC Queue에 기록된다. 그 다음 tRFC queue에 있는 자료는 네트워크를 통하여 수신시스템으로 전송되는데, 수신시스템에도 tRFC queue가 있어서, 그 자료는 그곳에 기록된다. 송신시스템에서의 tRFC queue는 table ARFCSSTATE와 table ARFCSDATA로 구성되어 있고, 수신시스템에서는 table ARFCRSTATE와 table ARFCRDATA로 구성되어 있다. table xxxSTATE는 송신시스템과 수신시스템 각각에 있어서 tRFC call에 대한 status정보를 포함하고 있고, 반면 table xxxDATA는 호출되어야 하는 function module 목록과 그들에 대한 parameter 값을 함께 포함하고 있다.

SAP ALE IDOC EDI-Kor_04.2.1 새로운 Segment와 Extension Type의 생성

4.2.1 새로운 Segment와 Extension Type의 생성

먼저 table ADRC에 있는 field들 중에서 우리의 새로운 segment Z1ADRCX에 추가하고자 하는 field를 결정하자. 우리는 name, street, city, region, 그리고 country에 대한 field를 추가하고자 한다. contact person의 business address을 구성하는 이러한 기본적인 field에 추가하여, address number를 파악하기 위한 몇 개의 field를 추가하고자 한다. ADRNR은 address 자체를 식별해주는 고유한 key로서, table ADRC와 같은 SAP table 상에 있는 field이다. 이 field는 다른 table에서 address에 대한 전체의 내용을 얻기 위해서 table ADRC을 참조할 때도 상호 참조된다. 여기서 정의되는 segment는 master data에 대한 IDOC type에 있는 segment이기 때문에, 새로운 segment의 처음 field로 MSGFN(message function)을 사용할 것이다. Message function field는 수신시스템에게 그 segment에 대하여 어떠한 조치를 취해야 하는지를 알려주는 역할을 한다(더 상세한 내용에 대해서는 제 2장을 참조하기 바란다). 새로운 segment에 값을 보충해 주기 위해서 앞으로 우리가 작성할 프로그램 코드를 보면 알 수 있겠지만, 이 새로운 segment에 있는 message function의 값은 parent segment인 E1KNVKM의 그것과 동일하다. 결국 segment Z1ADRCX에는 모두 합하여 11개 field가 들어가도록 할 것이다. 그 field들에 대한 상세내용에 대해서는 [표 4-1]을 참조하기 바란다.

SAP ALE IDOC EDI-Kor_04.2.2 IDOC Type을 Message Type에 연결하기

4.2.2 IDOC Type을 Message Type에 연결하기

다음 단계는 앞에서 우리가 생성한 새로운 IDOC type을 그에 대응되는 message type에 연결하는 것이다. 이러한 연결관계는 partner profile에 있는 parameter에서 특정 상대시스템에 대하여 사용될 message type과 IDOC type을 지정해 줄 때 참조되기 때문에, 이 연결작업은 매우 중요하다. message type을 연결하기 위해서는 다음 작업들을 수행한다. [그림 4-7]을 참조하라.

SAP ALE IDOC EDI-Kor_04.2.3 IDOC Extension Type 점검

4.2.3 IDOC Extension Type 점검

extension type이 일관성(consistency)있게 정의되어 있는지를 점검하기 전에, 반드시 그 extension type을 ‘release’하는 것이 매우 중요하다. 이렇게 하기 위해서는 다음 작업들을 수행한다.

n transaction WE30을 실행을 실행하거나, transaction WEDI à [Development] à [IDOC Types]을 실행한다.

n [Object name] 필드에 “ZDEBMASX”를 입력하고, “Extension type” 선택버튼을 선택한다.

n 메뉴 [Edit] à [Set Release]를 실행한다.

n release할 것인지를 물어오는 팝업화면이 나타나면, [Yes] 버튼을 누른다.

n 이제 extension type이 release되었다.

SAP ALE IDOC EDI-Kor_03.2.3 Port의 정의

3.2.3 Port의 정의

transaction WE21을 사용하여, 구매주문(purchase order) IDOC에 대하여 file이 생성되도록 file port를 생성하도록 하자. port이름은 “POPORT0001”이라고 부르자. [Outbound file] 탭에 있는 parameter에서 directory path와 file이름 또는 file 이름형식을 지정하라. port를 정의하는 동안에 [Access test] 버튼을 이용하여 해당 server로 ping이 되는 지를 확인함으로써, 지정된 directory와 server에 접근할 수 있는지를 확인하라. 필요하다면, logical RFC destinatio에 있는 shell script를 호출하기 위해서 [Outbound : trigger] 탭에서 command file에 대한 항목을 정의할 수도 있다. 이 기능은 원격지 server 상에 있는 FTP 프로세서를 구동해야 할 필요가 있을 때 특별히 유용하다. 여러분은 transaction SM59을 사용하여 RFC destination을 정의할 수 있다. 여기서 우리가 정의한 port는 다음 단계에서 우리가 설정할 partner profile에서 참조될 것이다.

SAP ALE IDOC EDI-Kor_01.4.11 Partner Profile

1.4.11 Partner Profile

Partner란 message를 주고받기 위해서 사용되는 어떤 한 시스템에 대한 이름이다. Partner Profile은 특정 partner와 어떠한 message를 어떠한 방식으로 주고 받을 것인지를 규정하고 있다. SAP에서는 네 가지 종류의 partner profile이 있다: (1) 고객(customer)에 대해 사용되는 KU, (2) 구매처(vendor)에 사용되는 LI, (3) 은행(bank)에 대해 사용되는 B, (4)logical system에 대해 사용되는 LS가 그것이다. 여러분이 인식했겠지만, KU, LI, B는 EDI Partner에서 사용되고, LS는 ALE 통신을 위해서 사용된다. ALE에서 사용되는 모든 partner profile은 이미 정의되어 있는 logical system에 근거하여 정의되어야 한다.

여러분이 장차 배우게 되겠지만, partner profile에는 두 개 또는 그 이상의 시스템들 간의 통신 parameter들을 정의하기 위해서 필요한, ALE와 EDI의 여러 항목들이 함께 포함되어 있다. 일반적인 정보 이외에 inbound parameter, outbound parameter, message control등에 대한 정보를 정의해야 한다. 중요한 parameter로는 message type, IDOC type, process code, partner function, application identifier, message function, output type, port 등이 있다. 또한 처리방식(processing option)과 오류처리 방법을 결정하는 parameter도 있다.

SAP ALE IDOC EDI-Kor_01.4.10 Message Control과 Output Type

1.4.10 Message Control과 Output Type

R/3 시스템에서 Message Control은 selection criteria, requirement, sequence에 근거하여 문서를 생성해 내는 구조체계이다. message control은 문서 유형(documet type), 생성 시점(timing), 문서의 수, 문서 매체(medium-인쇄, 팩스, ALE, EDI, 기타 등)을 결정한다. SD(Sales and Distribution)와 MM(Material Management, Purchasing)에서의 outbound message는 message control record에 의해서 생성되고, 처리된다. output 자료는 table NAST에 보관된다.

message control은 ‘condition technique’을 사용한다. condition table에는 output message를 생성하는 조건이 저장되어 있는데, 이 table에는 application field/table의 catalog에서 선택된 selection field들이 포함되어 있다. 어떤 업무 문서에 대해 output를 생성할 수 있는 조건이 충족되는지를 결정하기 위해서 access sequence, output procedure, requirement를 이용하는 search strategy가 사용된다. 일단 output을 생성해야 하는 조건이 충족되면, message control module은 condition type또는 output type에서 지정된 parameter를 사용하여 그 message에 대한 전송 시점(timing)과 문서 매체(medium)를 결정하게 된다. 또한 output type에는 output을 생성할 때 호출할 프로그램이나 module이 지정되어 있다.

SAP ALE IDOC EDI-Kor_01.4.9 Process Code

1.4.9 Process Code

Process Code는 ALE와 EDI에서 후속 처리에서 호출되어야 할 function module이나 API를 지정하기 위해서 사용된다. inbound interface에서는 판매(고객)주문(process code—ORDE), Material Master record(MATM), 수송(SHIP) 등과 같은 SAP의 application object에 inbound IDOC을 반영해주는 application module을 결정하기 위해서 process code를 사용한다. outbound interface에서는 message control(다음에 나오는 설명을 참조하라)을 사용하는 application인 경우에만 process code를 사용한다. 이 경우에 process code는 application자료를 이용하여 IDOC을 생성해 낼 application module을 결정해 주는 역할을 한다. 각각의 process code는 하나의 message type과 연결되어 있다. outbound process code는 table TEDE1에 저장되어 있고, 반면 inbound process code는 table TEDE2에 저장되어 있다.

SAP ALE IDOC EDI-Kor_01.4.8 Port

1.4.8 Port

Port는 IDOC 형태의 자료를 전송할 때 사용하는 통신경로를 표현하는, SAP안에서의 논리적인 표현이다. R/3에서 정의할 수 있는 port에는 다음 6가지 유형이 있다: (1) transactional RFC(Remote function Call), (2) File, (3) R/2, (4) Internet, (5) ABAP-PI, 그리고 (6) XML가 그것이다. ALE는 위의 모든 종류의 port를 이용하여 IDOC를 분배할 수 있지만, EDI는 일반적으로 file port를 사용한다. transactional RFC port와 file port는 RFC destination으로 연결되고, 이는 다시 R/3와 R/3 간의 통신이나 TCP/IP와 같은 통신 경로로 연결된다. port를 RFC destination과 연결시킴으로써, EDI subsystem, IDOC mapping 소프트웨어, FTP, 기타 등를 호출해 주는 script를 가동시킬 수 있다.