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에 연결한다.

SAP ALE IDOC EDI-Kor_05.7 ALE Function Module의 생성

5.7 ALE Function Module의 생성

Customer Hierarchy에 대하여 change document를 생성해 낼 수 있도록 SAP application프로그램을 enhance 했으므로, 이제는 Customer Hierarchy와 관련된 change pointer를 읽어서, 우리가 이미 생성한 IDOC type ZKNVHM01에 값을 채워서 IDOC을 생성해 내는 ALE function module을 작성할 필요가 있다. 대부분의 master data에 대한 ALE function module은 표준적인 접근방식을 따르고 있는데, 이들은 먼저 필요한 자료를 수집하고, IDOC이 필요로 하는 값을 채워서 IDOC을 만들고, 만들어진 IDOC을 분배하는 절차를 거친다. 먼저, 특정 message type에 대해서 아직까지 처리되지 않은 모든 change pointer자료를 수집하고, 그 각각에 대하여 key값을 찾아서 internal table로 만들어 주는 표준 function module이 있다. 이렇게 해서 생성된 internal table은 다른 function module로 전달되어, 그에 대응하는 IDOC type에서 필요로 하는 값을 결정하여 IDOC을 생성하게 되고, 이렇게 생성된 IDOC은 표준 ALE function module을 사용하여 통신계층(communication layer)으로 전송되는 것이다.

SAP ALE IDOC EDI-Kor_05.6 SAP Application 프로그램 Enhancement

5.6 SAP Application 프로그램 Enhancement

우리가 생성한 function module KUNHIER_WRITE_DOCUMENT은 실제로 Customer Hierarchy 자료를 관리하는 SAP application 프로그램과 하나로 통합될 필요가 있다. transaction VDH1(maintenance)와 VDH2에 의해서 호출되는 프로그램 RVKNVH00 이 Customer Hierarchy자료를 처리하는 과정에서, 적절한 시점에 그 update function module을 호출하도록 해야 한다. 프로그램 RVKNVH00을 살펴보면, SAP가 VDH1의 해당 session에서 발생한 변경사항을 table KNVH에 갱신해주는 function module CUSTOMER_HIERARCHY_UPDATE을 호출한 직후에, 이 update function module을 호출할 수 있다는 것을 알 수 있다. 여러분은 이 호출이 “IN UPDATE TASK” 방식으로 처리되고 있고, 또한 우리의 update function module도 “IN UPDATE TASK” 방식으로 처리할 필요가 있다는 것에 주의하라. 프로그램 RVKNVH00 은 두 개의 internal table XVKNVH와 YVKNVH를 이용하여 customer hierarchy 자료에 대한 새로운 자료와 이전 자료를 보관하고 있다. 우리는 update function module을 호출하여 table CDHDR과 CDPOS를 갱신하기 위해서 이 두 개의 internal table을 이용할 것이다.

SAP ALE IDOC EDI-Kor_05.5 Change Document Object/Update function module 생성

5.5 Change Document Object/Update function module 생성

Change Document Object는 R/3 시스템에서 master data, table, application object에서 발생하는 변경사항을 포착해 낸다. SAP는 시스템 내에서 수 백개 정도의 object에 대하여 변경사항을 포착해 낼 수 있을 정도로 change document service를 광범위하게 사용하고 있는데, 이러한 서비스는 change document object와 Change Document Update Function Module/Program이라고 알려진 구성요소를 통하여 이루어진다. CD(change document) object에 근거한 change document는 table CDHDR(CD header정보)와 CDPOS(CD detail정보)에 저장된다. 대부분의 change document는 변경사항에 대한 정보를 field수준까지 기록해 준다. Change document는 table name과 field name 이외에, 입력, 변경, 삭제와 같은 변경의 성격에 대한 정보뿐만 아니라, table에 대한 key정보를 동시에 저장하고 있다. 앞에서 우리가 배웠듯이, ALE는 change pointer라고 알려진 object를 이용하여, master data에서 발생하는 변경사항을 포착하기 위해서 shared master data(SMD)를 통하여 change document service를 이용한다. table BDCP와 table BDCPS에 저장되어 있는 change pointer는 실제로 application의 change document update function module에 의해서 생성된 change document를 가리키고 있다. ALE API는 이러한 정보를 수집하고, 그 table에 대한 key값과 변경 유형에 따라 IDOC segment를 생성해 낸다. 이렇게 해서 생성된 IDOC이 통신 계층(communication layer)를 통하여 분배되는 것이다.

SAP ALE IDOC EDI-Kor_05.4 IDOC Type과 Message Type 연결하기

5.4 IDOC Type과 Message Type 연결하기

다음 단계는 우리가 생성한 두 개의 object인 Basic IDOC type과 message type을 서로 연결하여, 그 message type에 연결되어 있는, 앞으로 우리가 생성할 ALE function module이 IDOC segment에 정확한 application자료의 값을 채울 수 있도록 하는 것이다. 이것은 다음과 같은 작업을 통하여 쉽게 처리할 수 있다. [그림 5-2]를 참조하라.

n transaction WE82을 실행하거나 transaction WEDI à [Development] à [IDOC Type / Message]을 실행한다.

n [Display ßà CHANGE] 버튼을 눌러 변경화면으로 전환한다.

n 화면 위에 있는 [New entries] 버튼을 누른다.

n [Message type] 필드에 “ZDEBHI”를 입력하고, [Basic IDOC type] 필드에는 “ZKNVHM01”을 입력한다. [Extension type] 필드는 공란으로 둔다. [Release] 필드에는 여러분의 SAP release 번호를 입력한다.

SAP ALE IDOC EDI-Kor_05.3 새로운 Message Type 생성하기

5.3 새로운 Message Type 생성하기

다음 단계는 새로운 message type을 생성하는 것이다. message 기반 구조(message-based-architecture)인 ALE에서, Message Type은 IDOC interface를 통해서 송수신되는 정보의 종류를 나타낸다. 우리는 SD Customer Hierarchy Master 자료를 나타내는 새로운 message type을 정의하고, 이미 우리가 생성한 IDOC type과 이것을 연결시켜야 한다. 이 message type은 나중에 우리가 생성할 ALE function module을 호출하기 위해서 사용될 것이다. 따라서, message type은 ALE interface에서 중요한 역할을 담당하고 있다. 이 단계의 작업을 진행해 보자. [그림 5-1]을 참조하라.

SAP ALE IDOC EDI-Kor_05.2 새로운 Basic IDOC Type 생성하기

5.2 새로운 Basic IDOC Type 생성하기

우리가 알고 있는 것처럼, IDOC type은 R/3에서 application 자료를 송수신하기 위해서 사용하는 지능적인 data container이다. 새로운 Basic IDOC type을 구축하기 위해서는, 그 application object에 대한 다양한 자료항목들이 포함될 IDOC segment를 정의해야 하고, 그러기 위해서는 그 application을 면밀히 검토해야 한다. SD Customer Hierarchy의 경우는, 하나의 table KNVH를 이용하여, 고객들과 hierarchy node들 간의 계층적인 관계를 모두 표현하고 있다는 것을 발견하게 될 것이다. customer hierarchy node에 대한 기본 자료들은 Customer Master table에 저장되어 있고, 이들은 SAP가 제공하는 IDOC type인 DEBMAS05와 message type DEBMAS를 이용하여 다른 시스템으로 전송될 수 있다. table KNVH는 16개의 field로 구성되어 있는데, 이들은 hierarchy type, 유효기간 시작(start of validity), 유효기간 종료(end of validity), 상위의 고객, sales organization, distribution channel, division, rebate와 pricing을 위한 구분자, hierarchy level number등이다. Customer Hierarchy를 잘 이해하게 되면, table KNVH의 구조가 그 자체로 customer node들 간의 계층적인 연관관계를 완벽하게 표현하고 있다는 것을 알 수 있을 것이다. 이러한 정보 이외에, 우리는 Customer Hierarchy에 변경을 가한 작업의 종류를 나타내는 “message function” field를 segment에 추가할 필요가 있다.

SAP ALE IDOC EDI-Kor_05.1 새로운 Basic IDOC Type과 ALE기능 생성하기 개요

Chapter 5 새로운 Basic IDOC Type과 ALE기능 생성하기

5.1 개요

앞에서 언급한 것처럼, R/3 시스템에는 ALE와 EDI interface에서 사용될 수 있는 message type이 수백 개 제공되고 있다. 이러한 message type들은 R/3 시스템의 전체 application module에 걸쳐 있고, 대부분의 업무영역에서 ALE/EDI 기능이 지원된다. 하지만 ALE/EDI 기능이 지원되지 않는 업무영역도 존재하며, 이러한 곳에서는 완전히 새로운 ALE/EDI 기능을 구축할 수가 있다. 이 절에서는, SAP의 ALE 기능이 지원되지 않는 master data application 영역 중의 하나인 SD의 Customer Hierarchy를 예로 들어 설명하기로 한다. Customer Hierarchy는 어떤 회사의 고객에 관한 조직자료나 계층구조를 표현하고자 할 때 사용된다. 예를 들면, 어떤 회사가 고객의 상점에 제품을 배송하고 판매하는 경우에, customer/sales organization/distribution channel/division의 조합에 근거하여 그 고객에 대한 조직 구조와 보고체계에 대한 정보를 구축할 필요가 있을 수도 있다. 이러한 각각의 조합은 hierarchy node로서 간주되고, 이는 다른 hierarchy node에 지정(assign)되며, 이렇게 해서 hierarchy chain을 구성하게 되는 것이다. 이러한 지정(assignment)은 또한 그 node에 대한 partner function에 근거를 두고 있는데, 이들 각각의 지정은 유효 기간을 가지고 있다. SAP에서는 미래일자로 지정하거나, 여러 개를 동시에 중첩하여 지정하는 것을 포함하여, 복잡한 chain과 연관관계를 구축할 수 있다. Customer Hierarchy는 transaction VDH1을 통해서 관리할 수 있고, transaction VDH2를 이용하여 조회할 수 있다.