SAP ALE IDOC EDI-Kor_01.5 ALE 시나리오 예제들

1.5 ALE 시나리오 예제들

이 절에서는 몇 가지 ALE 시나리오에 대하여 살펴보자. 처음 예제는 ALE 기술을 이용하는, 외부 창고관리 시스템과의 몇 가지 interface를 설명하고 있고, 두 번째 시나리오는 두 개 또는 그 이상의 시스템들 간의 master data분배를 그리고 있다. 이러한 시나리오들은 R/3에서 처리할 수 있는 수많은 ALE interface들 중 몇 개의 예제에 불과하다. 지난번에 이야기한 것처럼, SAP R/3 내에는 ALE가 지원되는 message가 수백 개 존재하고 있다.

SAP ALE IDOC EDI-Kor_01.4.1 Logical System

1.4 ALE 구성 단위(Building Block)와 개념

이 절에서는 ALE/EDI의 기본적인 구성 단위(building block)들 및 그들과 연관되는 개념들을 소개하고 있다. 여기서 소개되는 용어는 이 책의 전체에 걸쳐서 계속 사용될 것이며, 그 개념들이 해당 내용과 관련이 있거나 추가적인 설명이 필요한 시점에 더욱 상세하게 설명될 것이다. 이러한 구성 단위(building block)들은 ALE/EDI의 가장 기초가 되고, 이러한 것들을 생성하고, 연결하고, 설정함으로써, ALE/EDI interface를 구축하게 되는 것이다.

1.4.1 Logical System
Logical System(LS)은 특정 R/3 시스템이 다른 R/3 시스템이나 외부시스템과 서로 자료를 주고 받기 위해서 그 R/3 시스템 내에서 정의되는 것으로, 그 특정 R/3 시스템이나 다른 R/3 시스템, 또는 외부시스템을 나타내는 표현 방식이다(원래 R/3 내에서 오고 가는 여러 가지 다양한 system data들을 구분하기 위해서 SAP R/3 내에서 logical system이란 개념을 도입하였다). ALE/EDI에서 사용되는 모든 R/3 client에는 그 client 자체를 의미하는 Base Logical System이 정의되어 있어야 한다. 이 base logical system은 outbound message에 대해서는 ‘송신자’가 되고, inbound message에 대해서는 ‘수신자’가 된다. 이러한 base logical system과 함께, ALE interface에서 사용되는 모든 R/3 시스템과 외부시스템에 대하여 각각 하나씩의 logical system이 그 R/3 시스템 내에 생성되어 있어야 한다. 그래서 inbound ALE interface의 경우에 base LS(수신자)의 관점에서 보면, 이 logical system은 송신자(다른 R/3나 외부시스템)가 된다. 반대로 outbound ALE interface의 경우에는 base logical system(송신자)의 관점에서 보면, 이 logical system은 수신자인 다른 R/3나 외부시스템을 나타내는 것이다. logical system을 관리하는 방법은 다음 장에서 설명될 것이다.

SAP ALE IDOC EDI-Kor_01.3 이 책을 사용하는 방법

1.3 이 책을 사용하는 방법

이 책은 연습용과 참조용으로 동시에 사용될 수 있도록 디자인 되었다. 이 책은 여러분이 ALE와 EDI를 구성하는 기본 구성 단위(building block)를 이해하는 것에서부터 시작하여, 다양한 시나리오에서 ALE/EDI interface를 작동시키기 위해서 필요한, 모든 설정 작업(필요한 경우 프로그래밍도 포함해서)들을 단계적으로 하나씩 이해할 수 있도록 인도해 줄 것이다. 기본적인 개념과 설정 작업 상의 처리방법에 대한 다양한 차이점에 대하여는 필요한 시점에 맞추어 설명할 것이다. 사실 여러분이 ALE/EDI에 친숙해지게 되면, 이 책의 목차를 ALE/EDI interface를 구성하는데 있어서의 점검목록으로 사용할 수도 있을 것이다. ALE interface를 구축하는데 사용되는 모든 단계의 작업들은, 별도 이야기가 없는 한, EDI interface에서도 동일하게 적용될 수 있다는 사실을 주목할 필요가 있다.

SAP ALE IDOC EDI-Kor_01.2 ALE/EDI 개발에 대한 접근방법

1.2 ALE/EDI 개발에 대한 접근방법

투자금액에 대해 최대한의 성과를 얻기 위해서는, 다른 모든 소프트웨어 개발과 마찬가지로 ALE와 EDI 개발에 있어서도 구조적인 접근방식을 따르는 것이 중요하다.

interface할 항목을 확인한 다음, 그 업무영역에 대하여 ALE/EDI 기능이 제공되는지를 확인해야 한다(이전에 이야기한 것처럼 SAP에서는 ALE가 지원되는 업무영역이 수백 개 이상 존재한다. 나중에 이러한 기능을 확인할 수 있는 몇가지 기법을 설명하겠다).

SAP ALE IDOC EDI-Kor_00.1 서문

저자 서문

ERP(Enterprise Resource Planning)의 출현과 함께, 강력한 interface 기술에 대한 필요성이 점차 증가하고 있고, 또한 중요하게 되었다. SAP R/3의 ALE(Application Link Enabling)와 EDI(Electronic Data Interchange) 기술은 여러 개의 R/3 시스템과 non-R/3 시스템에 걸쳐 기업의 업무 프로세스(process)를 확장하는데 있어서 중요한 역할을 한다. ‘더 좋게, 더 빠르게, 더 저렴하게’라는 구호아래, 회사들은 저마다 더욱 정교하게 통합된 업무 시스템(business system)을 원하게 되었다. SAP는 전체적으로 통합된 ERP Solution인 R/2 시스템과 R/3 시스템을 지금까지 매우 성공적으로 판매해 오고 있다. 하지만 어떤 회사에서는 기술적인, 실무적인, 또는 정치적인 한계로 인하여, 한 database만으로는 운영할 수 없는 경우도 있다. application 시스템이 분산되어 있거나 이종 시스템들이 함께 연결되어 사용되는 환경에서, ALE는 느슨한 연결방법(loosely coupled method)을 채택하여, 서로 분리되어 독립적으로 사용할 수 있도록 해주는 반면, 밀접하게 연결된(tightly coupled) 업무통합을 가능하게 해주는 해결책을 제공해 준다. EDI는 특정 회사가 거래 상대방과 업무서류를 서로 교환할 수 있도록 해 주는데, 업무 프로세스의 빠른 회전을 확보한다는 관점에서 볼 때, 이 기능은 때때로 매우 중요한 요소가 된다.

SAP ALE IDOC EDI-Kor_01.1 ALE와 EDI에 대한 개요

Chapter 1 ALE와 EDI에 대한 소개

1.1 개요

ALE(Application Link Enabling)는 두 개 또는 그 이상의 R/3 시스템 간이나, R/3 시스템과 외부시스템 간에 데이터 통신을 가능하게 해주는 SAP 고유의 기술이다. 많은 기업들이 R/3 시스템과 같은ERP(Enterprise Resource Planning)시스템을 설치할 때는, 그 ERP시스템이 기존 시스템들(legacy systems), 다른 ERP시스템들, 고객의 시스템들, 구매처의 시스템들, 은행의 시스템들과 interface해야 한다는 사실을 인식하는 것이 매우 중요하다. ALE와 EDI(Electronic Data Interchange)는 그것을 사용하는 고객들이 업무통합을 달성하면서도 application과 database를 분산할 수 있도록 해주는 지능적인 구조를 제공한다. ALE 기술을 이용하게 되면, application에 대한 프로토타입핑(prototyping)과 interface 개발 작업을 신속하게 처리할 수 있는데, 그럼으로써 설치작업에 필요한 시간과 노력을 절감할 수 있다. ALE와 EDI의 구성 요소들은 원래 SAP application과 밀접하게 통합되어 있으며, 성격상 견고한 구조를 가지고 있어서, 매우 신뢰할 수 있는 시스템을 구성해 낼 수 있다.

Raspberry Pi_Kor_25.7.2 Digital 입력 – button 입력

25.7.2 Digital 입력 – button 입력

여기서는 button을 Raspberry Pi에 연결하고, button이 눌려졌는지를 확인하기 위해서 pin의 입력 신호를 읽어서 처리하는 사례에 대해서 살펴 볼 것이다.

25.7.2.1 library의 입력 방식

library를 이용하여 입력을 처리하는 방법에는 falling 방식과 interrupt 방식이 있다. 다음은 그 각각에 대해서 설명하고자 한다.

Raspberry Pi_Kor_25.7.1 Digital 출력 – LED On/Off

25.7 digital 입/출력

25.7.1 Digital 출력 – LED On/Off

여기서는 LED를 Raspberry Pi에 연결하고, 프로그램을 이용하여 LED를 깜박이게 하는 사례를 구현해 보도록 한다.

25.7.1.1 LED의 설치

회로를 만들 때는 breadboard를 이용하여 아래의 그림과 같이 LED, 저항, Raspberry Pi를 연결한다.

먼저 LED를 breadboard에서 양쪽 다리가 다른 행에 있도록 설치한다. 그런 다음 LED를 아래와 같이 Raspberry Pi의 GPIO connector에 연결한다. 즉 LED 긴 다리(+)를 physical 번호 11 번 pin(wiringPi 기준 0 번 pin)에 연결하고, LED 짧은 다리(-)를 physical 번호 6 번 pin(ground)에 연결되도록 한다. 회로에 사용되는 LED에는 가장 일반적인 5mm diameter LED를 사용하고, 저항에는 330Ω을 사용한다.

blink1

Raspberry Pi_Kor_25.5.6 LED light

25.5.6 LED light

발광다이오드(LEDs; Light-emitting diodes)는 전자회로를 구성할 때 특정 선로에 전기가 흐르는지, 그렇지 않은지를 판단하는 장치로 많이 사용되는 출력 장치이다. LED는 전압이 가해졌을 때 빛을 내므로 Raspberry Pi의 특정 GPIO port가 high 상태인지 low 상태인지를 나타낼 수 있고, 회로의 특정 선로에 전기가 흐르는지를 판단할 수 있다. Raspberry PI의 GPIO 포트는 고휘도 LED를 구동할 정도의 고전력을 내지 못하므로 LED를 구매할 때 저전력 LED(일반적인 LED)를 구매한다.