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

출판된 한글판 도서


ERP SAP R/3 ALE, EDI & IDOC 기술


Original Book Contents


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에서 outbound port를 통하여 IDOC이 생성될 때, IDOC control record(EDIDC)에 있는 OUTMOD field partner profile outbound parameter에 있는 [Output mode] 필드에서 우리가 지정한 설정사항에 따라 값이 결정된다. [ 6-1]을 보면 그들에 대한 값과 설명이 나열되어 있다.

 

 

 

1

One IDOC written to flat file, EDI subsystem activated immediately

2

One IDOC written to flat file, EDI subsystem started on external schedule

3

All IDOCs matching selection criteria written to flat file, EDI subsystem activated immediately

4

All IDOCs matching selection criteria written to flat file, EDI subsystem started as per external schedule

6‑1 OUTMOD 값과 설명

 

OUTMOD1이나 3이고, port정의의 [Outbound: Trigger] 탭에서 automatic start possible flag check 되어 있으면, SAP는 설정사항에서 지정된 command file를 이용여 EDI subsystem를 호출한다. 이때 EDI subsystem으로 전달되는 parameter file이 생성되는 directory file이름이다.  EDI subsystem은 처리가 끝난 후에 그 file을 삭제한다. 또한 OUTMOD값이 1이나 3인 경우, Subsystem을 성공적으로 호출한 후에는 IDOC status18(triggering EDI subsystem OK)의 값이 지정되어 있을 것이다. 하지만 이것은 EDI subsystem이 그 IDOC을 성공적으로 처리했음을 나타내는 것은 아니다.

6.3.2    Status File의 생성과 처리

 

EDI subsystem IDOC을 성공적으로 처리했는지의 여부는 EDI subsystem에 의해서 생성된 inbound status file에 의해서 표시된다. outbound EDI IDOC에 대해서는 EDI subsystem이 처리상태를 결정할 수 있다. EDI subsystem status file을 생성하고, 자동화된 방식이나 프로그램적인 방식을 통하여 그 file SAP안으로 전송하여, outbound IDOC에 대한 status 정보를 갱신하는 것이다. 어느 경우이던지 key정보인 DOCNUM(IDOC 번호)을 상호 간에 이용함으로써, 이러한 작업이 수행된다는 사실에 주의하라.  SAP status 갱신작업을 완료하면 status file을 삭제한다.

 

EDI subsystem이 생성한 status file SAP로 전송하는 방법에는 두 가지가 있다. 첫 번째 방식은 SAP가 기본적으로 제공하는 프로그램 중에서 SAP외부에서 SAP RFC function module을 호출하고자 할 때 사용할 수 있는 startrfc program을 이용하는 것이다. 이 경우에 EDI subsystem status file  생성한 다음, startrfc  program을 이용하여 SAP 시스템의 EDI_STATUS_INCOMING function module을 호출하고, status file name parameter로 넘겨준다. function module이 실행되면서 status file SAP 시스템 안으로 전송되고, 그기에 따라 IDOC status가 갱신되는 것이다두 번째 방식은 프로그램 RSESTA00이나 transaction WE17을 사용하는 방법이다. 이 경우에 EDI Subsytem status file을 생성하는 것으로 모든 처리를 종료하게 되고, SAP 내부에서 프로그램 RSESTA00이나 transaction WE17 scheduling job으로 만들어 주기적으로 실행하거나, status file이 있을 때 자동적으로 실행되도록 함으로써, status file SAP 내부로  전송되어 IDOC status가 갱신될 수 있는 것이다.

 

6.3.3    RFC Destination 정의

 

다음은 RFC destination을 정의하는 과정을 따라 가 보자. 먼저 우리가 EDI subsystem을 호출하기 위해서는 port [Outbound: Trigger] 탭 설정에서 사용되는 logical RFC destination을 생성할 필요가 있다. transaction SM59를 사용하거나, transaction WEDI à [IDOC] à [RFC Destination]을 사용하라. 커서를 [TCP/IP connection] 위에 놓고, 화면 위에 있는  [Create] 버튼을 누른다. [RFC destination] 필드에 LRFCEXMPL을 입력하고, [Connection type] 필드에 TCP/IP connection을 통하여 외부 프로그램을 구동시킨다는 의미의 T를 입력하고, 설명을 입력한다. 그런 다음, [Enter] 키를 누른다. 그러면 [그림 6-2]가 나타날 것이다. [Program] 필드에는 프로그램이 존재하고 있는 directory program name을 입력한다. 만약 여러분이 특정 host상에 있는 프로그램을 실행하고 싶으면, [Explicit] 버튼을 누르고 적절한 server이름을 입력한다그런 다음, 자료를 저장한다. 여기서 사용되는 program SAP RFC protocol을 지원해야 하고, RFC server로서의 역할을 하면서, SAP RFC call에 반응할 수 있어야 한다. 또한 이 프로그램 속에는 function module RFC_REMOTE_EXEC이 정의되어 있어야 한다. SAP EDI subsystem을 호출할 때는, function module RFC_REMOTE_EXEC를 호출하고, EDI subsystem을 기동하기 위해서 port command file에 지정한 shell script paramter로 넘겨준다. 그러면 그 프로그램 속에 있는 function module이 실행되면서 EDI subsystem을 호출하게 되는 것이다. 여러분은 EDI subsystem을 호출하기 하기 위해서 별도  RFC server 프로그램을 작성하지 않고, SAP가 기본적으로 제공해 주는 rfcexec(Window NT server에서는 rfcexec.exe) 프로그램을 사용할 수도 있다. 이 프로그램을 이용할 경우의 EDI subsystem 호출체계는 [그림 6-3]을 참조하라.

 

 


 


그림 6‑2 RFC Destination  -- Type TCP/IP


그림 6‑3 EDI Subsystem 호출 체계도

 

 


 

6.3.4    Port 정의

 

다음 단계는 port를 정의하는 것이다. transaction WE21을 사용하거나 WEDI à [IDOC] à [Port Definition]을 사용한다. 화면 왼쪽에서 커서를 [File] 위에 놓고, 화면 위에서  [Create] 버튼을 누른다. [Port] 필드에 EDIPORT를 입력하고, 설명을 입력한다. [Outbound: Trigger] 탭을 누른다. [RFC destination] 필드에 앞에서 우리가 생성한 LRFCEXMPL을 입력한다. [Directory] 필드에 subsystem shell script가 있는 directory를 입력한다. path의 끝에 /을 추가하는 것을 잊지 마라(Unix server에서). [Command file] 필드에 shell script이름을 입력한다. 여러분은 Automatic start possible라는 checkbox check할 수 있는데, 이것을 선택하면, partner profile에서 Start subsystem이 선택되어 있는 경우에 EDI subsystem을 자동적으로 가동시켜 준다.  [그림 6-4]를 참조하라. 이런 자료들을 입력한 후에, [Outbound file] 탭을 누른다. directory path를 입력하고, file 이름을 입력하거나 dynamic file name을 생성해 주는 표준 function module을 입력한다. [Function module] 필드 상에 있는 pull-down 메뉴(F4)를 누르면, 우리가 사용할 수 있는 function module 목록을 볼 수 있다.

 

file에 대한 명명규칙의 관점에서 여러분이 독특한 요구사항을 가지고 있다면, 이를 충족시켜 줄 수 있는 새로운 function module을 생성할 수도 있다. 다음 단계는 status file에 대한 parameter를 지정하는 것이다.  [Status file] 탭을 누르고, EDI subsystem status file을 생성할 directory path file 이름 또는 function module을 입력한다.


그림 6‑4 Outbound Port정의의 Outbound: Trigger Parameter

6.3.5    Partner Profile 정의

 

transaction WE20을 사용하거나, WEDI à [IDOC] à [Partner Profile]을 실행하여 대금 청구서(invoice)를 보낼 payer 고객(customer)에 대한 입력항목을 만든다. 먼저 [Create] 버튼을 누른다. partner number partner type을 입력하는데, 고객(customer)에 대해서는 partner type KU를 사용한다. [Post processing: permited agent] 탭에 있는 필드들에 적절한 값을 입력한다. [그림 6-5]를 참조하라. interface 과정에서 오류가 발생할 경우에, 여기에 입력하는 person/position/organization unit workflow Item을 수신하게 될 것이다(workflow에 대하여 더욱 상세한 내용을 알고 싶으면 제 8장을 보라). [Classification] 탭을 누르고, [Partner status] 필드에 A를 입력한다. 자료를 저장한다. 기본적인 partner profile이 생성되었다. 화면 중간의 outbound parameter 목록자료 밑에 있는 [Create outbound parameter] 버튼을 누른다. 그러면 outbound parameter를 입력할 수 있는 새로운 화면이 나타나는데, 다음과 같은 사항들을 입력하라. [Message type] 필드에 INVOIC, [Message code] 필드에 810, [Partner function] 필드에 PY, [Port name] 필드에는 앞에서 생성한 EDIPORT를 입력하고, [IDOC type] 필드에는 INVOIC02을 입력한다. [그림 6-6]을 참조하라. [Output mode] 필드에서 Collect IDOCs을 선택한다. 이것을 선택하면, 생성된 IDOC이 곧바로 처리되지 않고 한곳에 모이게 되고, 나중에 여러분이 프로그램 RSEOUT00 scheduling job으로 만들어 실행시키면, port를 통하여 file이 생성된다. Start Subsystem 선택버튼을 선택하면, IDOC port에서 생성될 때, SAP R/3 EDI subsystem(또는 translator)을 자동적으로 가동시켜준다. 이것을 가능하게 하기 위해서는, port를 정의할 때 [Outbound: Trigger] 탭에서 shell script가 지정되어 있어야 한다. 자료를 저장한다. [Message Control] 탭을 누른다.  [Application] 필드에 V3, [Output type] 필드에 ZBIL, [Message type] 필드에 INVOIC, [Process code] 필드에 SD09를 입력한다. 입력한 자료를 저장한다. [그림 6-7]을 참조하라.

 

 

 


 


그림 6‑5 Partner Profile General Parameter


그림 6‑6 Partner Profile Outbound Parameter

 


그림 6‑7 Partner Profile Message Control

 

 

 

 

 


 

6.3.6    EDI Partner에 대한 참조표 작성

 

다음 단계는 외부시스템에 대한 상호 코드 참조를 위해서 table EDPAR에 자료를 입력하는 것이다. table EDPAR EDI partner에 대한 입력항목를 저장하고 있으며, SAP의 특정 고객 번호(customer number)에 대하여 partner function별로 그 partner에 대한 외부적인 표현을 내부적인 표현(R/3의 고객 번호)과 대응시켜 준다따라서 이 partner conversion table partner function number에 대한 외부적인 표현과 내부적인 표현을 서로 변환하고자 할 때 사용된다. table EDI로 처리되는 SD의 모든 inbound transaction outbound transaction에서 사용된다. [그림 6-8]을 참조하라.

 

예를 들어, 어떤 고객 123이 자기가 거래하고 있는 거래처에 대하여 자체적으로 ABCDEF라는 코드를 부여하고, 우리는 그 거래처에 대하여 각각 456789라는 코드를 사용하고 있는 경우에는, 아래의 table과 같이 입력한다. 그런 다음, 고객 123 EDI를 통해서 자료를 보낼 때 ABC라는 코드를 보내면, 이 자료를 받는 R/3 시스템의 EDI처리과정에서 이 코드는 456이라는 코드로 변환되어 처리되며, 반대로 R/3 시스템이 고객 123에게 자료를 보낼 때 789라는 자료를 보내면, EDI 처리과정에서 DEF라는 코드로 변환되어 송신되는 것이다.

 

Customer

Partner function

External number

외부 시스템 코드

Internal Number

SAP 코드

123

WE Ship-to party

ABC

456

123

RE Bill-to party

DEF

789

 

outbound 대금청구서(invoice)의 경우는, 수신 partner number를 결정하기 위해서 partner function PY(Payer) internal number를 사용하여 external partner number가 있는지를 확인한다. 만약 table EDPAR에 그 SAP 고객(customer) partner function PY(payer)에 대한 입력항목이 없으면, 처리 function module은 수신 partner number를 결정하기 위해서 table KNVV EIKTO field 를 점검한다. Customer Master KNVV-EIKTO field sales data view에 있는 Account at the Customer field를 나타낸다. 따라서 outbound 대금청구서(invoice)에서는 앞에서 언급한 항목들 중에서 어느 하나의 값이라도 적절하게 관리하는 것이 매우 중요하다. DESADV(납품 통지-Shipping notificatio Dispatch advice)와 같은 message type IDOC type DESADV01과 함께 ALE outbound interface에서 사용될 때도, external partner number를 수신 partner number로 사용한다. table EDPAR을 관리하기 위해서는 IMG à [Sales and Distribution] à [Electronic Data Interchange] à [EDI Messages] à [Configure EDI Partners] à [Convert External To Internal Partner Numbers]을 사용한다. customer number, partner function, external partner number, internal partner number(이는 보통 SAP 고객 번호와 동일하다)를 입력한다. 여러분이 입력한 자료를 저장한다. EDI subsystem trading partner를 결정할 때는 external partner number를 사용한다는 것에 유의하라.


그림 6‑8 External Partner Number External Partner Number의 대응