SAP ALE IDOC EDI-Kor_07.3 Inbound 처리

7.3 Inbound 처리

SAP는, online에서 실행하거나 batch 방식으로 주기적으로 실행하여, inbound 처리를 용이하게 해주는 여러 가지 프로그램을 제공해 주고 있다. 이러한 기능에는 IDOC을 application에 반영하고, 오류상태인 IDOC을 재처리하고, 편집된 IDOC을 처리하는 프로그램들이 포함되어 있다.

프로그램 RSEINB00은 IDOC을 포함하고 있는 file을 SAP 시스템 내부로 전송하기 위해서 사용된다. 이 프로그램은 inbound IDOC이 text file에 포함되어 있는 경우에만 사용될 수 있다. RSEINB00은 path와 file name을 입력할 수 있는 단 하나의 parameter만 가지고 있다. IDOC을 내부로 전송하는 과정에서, 그 IDOC의 EDIDC record에서 partner number, message type, 기타 다른 모든 관련 control정보들이 수집된다. partner profile의 inbound parameter에 있는 처리방식(processing option)에서 선택된 값이 “Trigger by background program” 인지 “Trigger immediately”인지에 따라서, 오류가 없는 경우 status “64”의 상태로 생성되거나, 또는 생성과 동시에 즉시 application에 반영될 것이다. 오류가 발생하는 경우는 partner profile에서 지정한 수신자의 inbox로 workflow Item이 보내진다. transaction WE16을 이용해도 동일한 처리를 할 수 있다. [그림 7-7]을 참조하라.

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_07.1 주기적인 처리(Periodic Processing)

Chapter 7 주기적인 처리(Periodic Processing)

7.1 개요

지금까지 ALE/EDI interface에 필요한 설정과 구축작업을 완료했기 때문에, 여러분은 이제 그 interface를 실제의 운영환경에서 실행될 수 있도록 구현하고, interface에 대한 사후 보완작업을 할 수 있는 준비가 되었다. SAP는 ALE와 EDI interface를 실행하고 관리하는데 필요한, 다양한 기능을 수행해 주는 여러 가지 프로그램들을 기본적으로 제공해 주고 있다. 이러한 프로그램들은 scheduling job으로 만들어 주기적으로 실행할 수도 있고, 필요하다면, online으로 실행할 수도 있다. ALE와 EDI 프로그램들은, 다른 SAP 프로그램들과 마찬가지로, 적절한 variant를 사용하여 SAP의 job이나 job stream으로 만들 수 있다. 이 장은 inbound 처리, outbound 처리, 기타 기능으로 분류하여, 여러 가지 ALE/EDI 프로그램과 그들에 대한 사용법에 대하여 상세히 설명하고 있다. “기타”의 프로그램 중에는 tRFC/aRFC monitoring, ALE audit, 특정 ALE database table에 대한 정리(reorganization), IDOC 추적(trace), 기타의 기능을 제공해 주는 프로그램들이 있다.

SAP ALE IDOC EDI-Kor_06.5 Mapping과 Mapping 도구

6.5 Mapping과 Mapping 도구

ALE나 EDI interface에서 성공을 좌우하는 중요한 항목은, outbound인 경우는 IDOC structure를 외부의 format에 정확히 mapping하고, inbound인 경우는 외부의 format을 IDOC structure에 정확히 mapping하는 것이다. 자료 mapping은 R/3와 서로 자료를 정확하게 주고 받는데 있어서 중요한 역할을 한다(물론 tRFC를 통한 R/3와 R/3 간의 ALE interface의 경우, IDOC에서 application으로의 자료변환은 SAP의 ALE function module에 의하여 자동적으로 실행된다). 사실 자료 mapping 작업은 개발과정에서 가장 중요한 부분으로, 프로젝트 진행과정상 프로토타입핑(prototyping)과 차이 분석(gap analysis) 단계에서 반드시 함께 실행해야 한다.

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_06.2 Output Determination 설정

6.2 Output Determination 설정

SD와 MM module에서 message(output) determination은 output 생성여부를 결정하고, 그 output에 대하여 매체(medium), 시점(timing), 유형(type) 등과 같은 세부사항을 결정하기 위해서 condition technique을 사용한다. 이 output은 SD와 MM module에서 transaction data에 근거하여 output 문서를 생성해 내는데 사용된다. output determination 설정에는 일반적으로 condition table, access sequence, output type, output determination procedure, 그리고 output procedure assignment에 대한 준비작업 등이 포함되어 있다. SAP는 대부분의 경우에 사용할 수 있는 condition table과 access sequence를 기본적으로 제공해 주고 있으며, SAP가 제공하는 output type들을 사용하면 table NAST에 원하는 output record를 생성하고자 하는 요구사항을 대부분 충족시켜 줄 것이다. 하지만 새로운 요소들을 만들어서 동일한 작업을 처리할 수도 있다. 다음은 output determination을 설정하는데 필요한 여러 단계들이다.

SAP ALE IDOC EDI-Kor_06.1 EDI(Electronic Data Interchange) 개요

Chapter 6 EDI(Electronic Data Interchange)

6.1 개요

Electronic Data Interchange(EDI)는 특정 기업이 은행이나 고객, 구매처와 같은 그들의 거래 상대방들과 업무문서를 서로 주고 받을 수 있는 능력을 제공해 주는 기술이다. 이러한 전자문서 Format은 EDIFACT와 ANSI X12와 같은 EDI 산업표준에 의해서 결정된다. EDI는 업무들 간의 상호 연결성을 상당히 향상시켜 주고, 업무 프로세스를 자동화하여, 빠르게 회전할 수 있도록 해 준다. SAP R/3는 R/3 의 다른 application들과 완전히 통합되어 있는 완전한 EDI system을 고객들에게 제공해 준다. 예를 들어, 특정 회사는 자기 고객들에게 EDI 대금청구서(invoice)를 보낼 수 있으며, 구매처(vendor)/고객(customer)과 구매주문(purchase order)/판매주문(sales order)을 주고 받을 수 있으며, 거래하는 구매처(vendor)로부터 납품통지(dispatch advice)를 수신할 수 있고, 거래 은행과 송금통지(remittance advice)를 교환할 수 있다(예제 시나리오에 대해서는 이 책의 도입부를 참조하기 바란다). 사실 그 회사의 거래 상대방과 주고 받는 업무 문서 중에서 비록 전부는 아닐지라도, 거의 대부분에 대하여 EDI를 구축할 수 있다.

SAP ALE IDOC EDI-Kor_05.9 Interface 작동

5.9 Interface 작동

우리가 여기서 하는 작업은, Customer Hierarchy와 관련하여 우리가 구축하고 연결시킨 모든 구성요소들이 원래 의도했던 대로 정확하게 작동하여, master data상에 발생하는 변동사항에 근거하여 IDOC을 생성해 내는지를 점검하는 것이다. 새로운 Basic IDOC type이 생성되었고, 새로운 message type이 그것에 연결되었다. 기존에 이미 존재하는 change document object에 근거하여 change document update function module을 생성하고, SAP의 application 프로그램에 그것을 삽입하였다. 새로운 message type에 대한 change pointer 정보를 수집하고, IDOC을 생성하여 분배해 주는 기능을 가진 두 개의 ALE function module이 작성되었다. IDOC segment field와 change document field를 연결시키는 설정과 함께, change document field에 대하여 change pointer가 생성될 수 있도록 활성화(activate)하는 ALE 설정이 이루어졌다. 우리는 실제 구동되는 ALE function module을 새로운 message type과 연결시켜, change pointer가 처리될 때 호출될 수 있도록 하였다. 마지막으로, 우리는 logical system, customer distribution model, port, partner profile, change pointer 활성화(activation)에 대하여 정의하고, 서로 연결함으로써, ALE 설정을 완료하였다.

SAP ALE IDOC EDI-Kor_05.8 Change Pointer 생성 활성화(Activation)와 기타 ALE 설정사항

5.8 Change Pointer 생성 활성화(Activation)와 기타 ALE 설정사항

앞에서 우리는 SAP application 프로그램에서 change document를 생성해 내는 프로그램 코드를 작성하는 방법에 대하여 배웠다. ALE 목적상, 이러한 change document field에 대하여 change pointer가 생성되도록 처리되어야 한다. 더 나아가, 우리는 IDOC field를 change document field에 할당해야 한다. 또한 앞에서 설명한 것처럼, 우리가 생성한 message type을 그에 대응되는 ALE function module과 연결시켜서, RBDMIDOC과 같은 프로그램이 실행될 때, 우리가 생성한 function module이 호출되어 IDOC을 생성하고 분배해 줄 수 있도록 해야 한다. 이를 위해 우리는 다음 세 가지 항목을 설정해야 한다.

1. change document field에 대하여 change pointer가 생성되도록 활성화(activate)한다.

2. IDOC field를 change document field에 할당한다.

3. function module을 message type에 연결한다.