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_11.2 Message Type과 IDOC Type

11.2 Message Type과 IDOC Type

SAP에서 지원하고 있는 message type 목록을 확인하려면, transaction WE81 을 실행하거나 또는 transaction WEDI à Development à Message Types을 실행해 보면 된다. SAP 상에서 IDOC type에 대한 message type 할당 내용을 확인해 보려면 transaction WE82 을 실행하거나 또는 transaction WEDI à Development à IDoc Type / Message 을 실행해 보면 된다. 이러한 Messge Type 및 IDOC type의 숫자는 SAP Version이 올라감에 따라 점차 증가할 것이다.

다음 목록은 SAP에 있는 내용 중 일부를 예로서 제시하는 것이며, 여기에 제시되지 않은 것은 위에서 제시된 방법을 이용하여 SAP R/3에서 직접 그 내용을 확인해 볼 수 있다.

SAP ALE IDOC EDI-Kor_08.2 Workflow 설정

8.2 Workflow 설정

아래에 제시된 단계들을 따라 감으로써, ALE/EDI interface에서의 오류처리를 위한 workflow 설정을 완료하고, 활성화할 수 있다. 이 설정은 오류처리를 위한 기본적인 시나리오를 지원하고 있지만, 대부분 application의 목적에도 적합할 것으로 생각한다. ALE의 기술적인 오류를 처리하기 위해서 사전에 준비되어 있는 task 이외에, ALE와 EDI의 일반 application 시나리오에서 사용할 수 있는 task도 많이 있다. 앞에서 언급한 것처럼, 오류의 유형이 다르면, 서로 다른 work item이 다른 organizational unit/job/position/person에게 발송되는 결과를 가져온다. 이 장에서 사용된 예제는, 기본적인 시나리오에 대해서 뿐만 아니라, 복잡한 상황에서의 오류처리 대해서도 하나의 template로 사용될 수 있을 것이다. workflow를 활성화하는 것 이외에, 대부분의 object와 설정 내용은 CTS(Correction and Transport System)을 통하여 다른 곳으로 전송될 수 있다.

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_04.3.0 ALE Function Module의 Enhancement

4.3 ALE Function Module의 Enhancement

지금까지 inbound와 outbound 업무영역에서 사용될 IDOC에 추가 field를 포함시키기 위해서 IDOC type을 extend했으므로, 이제는 outbound인 경우에는 추가된 segment에 자료를 보충해 주고, inbound인 경우에는 추가된 segment자료를 application에 반영해 주는 ALE function module의 enhancement 작업을 진행해 보기로 한다. 여러분이 application과 주고 받는 IDOC 자료를 수정할 필요가 있는 경우에는, IDOC extension이 발생하지 않은 상황에서도 ALE function module을 enhance해야 할 필요가 있을 수도 있다는 것을 유념하기 바란다. 여기서 논의되는 접근방식은 위의 어느 경우에나 적용될 수 있는 것이다.

SAP ALE IDOC EDI-Kor_03.3.2 Inbound Interface – Partner Profile의 관리

3.3.2 Partner Profile의 관리

절차상 다음 단계는 우리가 설정한 logical system에 근거하여 외부시스템에 대한 partner profile을 생성하는 것이다. 이 partner profile은 여러 가지 ALE object들과 설정사항들을 한데 묶어 주고, 통신경로(gateway)를 제공해 준다. 우리의 예제에서는 message control과 outbound parameter가 필요하지 않으므로, inbound parameter만 설정하기로 한다. 여러분은 여러 개의 inbound message와 outbound message에 대하여 하나의 partner profile(그리고 하나의 logical system)만 사용할 수 있다는 것을 유념해야 한다. 다음에 제시된 절차를 따르기 바란다([그림 3-15]를 참조하라).

SAP ALE IDOC EDI-Kor_03.3.0 Inbound Interface

3.3 Inbound Interface

이 절에서 우리는 inbound interface를 프로토타입(prototype)할 것인데, 그 내용은 외부 창고관리 시스템(Warehouse Management System)에서 SAP R/3의 재고관리(Inventory Management) module로 자재이동(goods movement)에 대한 transaction을 interface하는 것이다. 여기에서 사용되는 ALE message type은 WMMBXY이고, 이에 대응되는 IDOC type은 WMMBID02이다. 이러한 기능은 원래 창고재고에 대한 mobile data를 SAP에 있는 Warehouse 시스템으로 입력하기 위해서 만들어 졌다. mobile terminal에 자료가 입력됨과 동시에, 외부 소프트웨어가 그 자료를 지정된 server로 전송하면, 그기서 그 자료를 IDOC 형태로 변환하고, 이를 tRFC을 사용하여 SAP R/3안으로 전송하여 application에 반영하는 것이다. 여러분이 이해하고 있는 것처럼, ALE는 transactional RFC 연결(connection)을 사용하여, 외부시스템이나 다른 R/3 시스템에 대하여 실시간(real-time)이나 준 실시간(real-time) 형태로 자료를 interface할 수 있는 능력을 가지고 있다. 여기서 설정하고, 테스트할 자재이동(goods movement) interface는 여러분의 요구사항에 따라 여러 가지 다른 방식으로 설정될 수 있을 것이다. WMMBXY는 강력한 message type으로써, 많은 종류의 이동유형(movement type)과 자재이동(goods movement)을 처리해 주는 transaction들을 지원해 주는데, 여기에는 구매주문(purchase order)을 이용한 자재입고, 구매주문(purchase order)을 이용하지 않는 자재입고, 생산지시(production order)에 대한 자재입고, 재고 손실/이익 발생, 재고 상태 변동(inventory status change)과 같은 것들을 처리해 주는 transaction들이 모두 포함되어 있으며, 또한 여기에 한정되지 않는다.