SAP ALE IDOC EDI-Kor_07.2 Outbound 처리

출판된 한글판 도서


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


Original Book Contents


7.2      Outbound 처리

 

ALE/EDI outbound처리에서 SAP가 기본적으로 제공하고 있는 기능 중의 하나는 IDOC을 생성해 주는 것인데, 여기에는 IDOC을 통하여 master data를 송신하고, 생성된 IDOC port로 보내고, 처리과정에서 오류가 발생하면 IDOC을 재처리하는 작업들이 포함되어 있다.

 

프로그램 RBDMIDOCchange 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 pointerprocessed flag로 표기한다여러분이 아는 것처럼, flag table BDCPS에서 관리되고 있다. 그리고 난 다음, 이 프로그램은 생성된 master IDOCcommunication 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 시스템이나 외부시스템으로 전송하여, 시스템들을 서로 동기화할 필요가 있는 경우에 더욱 유용하다.

 

 

 


 


그림 7‑1 RBDMIDOC Change Pointer에 의한 IDOC생성

 

 


 

프로그램 RBDSSE들은 master data IDOC을 생성하는데 사용될 수 있다. 예를 들면 프로그램 RBDSEMAT는 지정된 parameter와 선택조건에 따라 Material Master IDOC을 생성해 내고, 그것들을 ALE 계층(layer)에 있는 수신시스템으로 전송해 준다. [그림 7-2]를 참조하라. R/3 시스템 상에 있는 많은 master에 대하여 IDOC 전송 기능이 제공된다. 이러한 프로그램들의 이름은 RBDSE 로 시작하는 것이 일반적이다. 그들 프로그램들에 대한 parameter나 선택조건은 application에 따라 다양하지만, 대부분의 경우에 message type은 항상 필요하다. IDOC reduction이 지원되는 경우에는 reduction message type을 사용할 수도 있다는 것에 유의하라. 또한 여러분은 이러한 IDOC을 전송하는 수신 logical system을 지정할 수도 있다. 처리 속도를 향상시키고, interface를 최적화하기 위해서 사용되는 기법으로, 병렬처리(parallel processing)에서 사용되는 parameter들이 몇 가지 있다( 10장의 ALE 최적화를 참조하라). 이러한 프로그램들이 정확하게 작동하기 위해서는 logical system, customer distribution model, partner profile, port와 같은 모든 ALE 설정 사항들이 제대로 처리되어 있어야 할 필요가 있다. partner profile outbound parameter에 있는 output modeTransfer IDOC immediately로 설정해 놓았다면, IDOC은 생성됨과 동시에 즉시 port로 전송되고, 또한 RFC destination을 사용하는 경우에는 tRFC call이 호출된다. 이러한 프로그램들에 대한 예를 보면, Customer Master에 대하여 프로그램 RBDSEDEB, Characteristics Master에 대하여 프로그램 RBDSECHR, Material Bill of Material에 대하여 프로그램 RBDSEBOM, Cost Element에 대하여 프로그램 RBDSECOE, General Ledger Acount에 대하여 프로그램 RBDSEGLM등이 있다. 이러한 일련의 프로그램들을 batch job으로 scheduling하여 주기적으로 실행함으로써, 다른 R/3 시스템이나 외부시스템에 있는 자료를 갱신하거나, 동기화하기 위해서 사용할 수 있다. 또한 이들 프로그램들은, 어떤 시스템을 처음 설치하는 경우에는, 다른 시스템에 있는 database 자료를 upload하기 위해서도 사용될 수 있다.

 

 


 


그림 7‑2 RBDSEMAT Material Master 직접 전송

 


 

프로그램 RSNAST00 transaction data에 대하여 table NAST message control을 이용하여 IDOC을 생성해 내기 위해서 사용된다. [그림 7-3]을 참조하라. 이 프로그램은 기본적으로 message control 체계가 지원되는 SD MM application에서 사용된다. 3장과 제 6장에서 설명된 것처럼, 이 개념은 condition technique output type에 기초를 두고 있다. 이 프로그램은 output type에서 지정한 timing 값이 4(immediately) 이외인 경우에만 적용할 수 있다. 프로그램 RSNAST00에서의 중요한 parameter 2 byte output application, output type, output medium이다. partner profile에서 output type process code와 같은, message control를 위한 parameter가 적절하게 설정되어 있는지를 반드시 확인하라. 이 프로그램이 성공적으로 실행되면, 실제로 생성된 IDOC의 숫자를 보여주는 안내 메시지를 보여줄 것이다. 이 프로그램이 원하는 결과를 산출하도록 하려면, logical system, customer distribution model, port, partner profiler과 같은 모든 ALE 설정 사항들이 제대로 되어 있어야 한다. 프로그램 RSNAST00 scheduling job으로 만들어 주기적으로 실행되게끔 함으로써, transaction data가 생성되거나 변경된 것을 포착해 내고, ALE 계층(layer)에서 IDOC을 생성하도록 할 수 있다. 이 프로그램은 또한 transaction WE15를 통해서도 실행할 수 있다.


그림 7‑3 RSNAST00 Output Record를 이용한 IDOC생성

 

 


 

프로그램 RSEOUT00 status 30(IDOC ready for dispatch(ALE service))의 상태에 있는 outbodund IDOC port로 전송하기 위해서 사용된다. [그림 7-4]를 참조하라. partner profile outbound parameter에 있는 output modeCollect IDOCs으로 설정해 놓으면, ALE 프로그램에 의해서 생성된 IDOC들은 R/3 IDOC database status 30의 상태로 저장되어 하나로 모아진다. 실제로 그것들을 다른 R/3 시스템이나 외부시스템으로 송신하기 위해서는, 여러분이 별도로 프로그램 RSEOUT00을 실행시켜야 한다. 이러한 IDOC에 대하여, RFC destination과 연결된 port를 정의하고, partner profile에서 이 port가 지정되어 있으면, tRFC/aRFC call이 자동적으로 생성되거나 또는 RFC destination에 연결된 shell script가 자동적으로 구동된다. 프로그램 RSEOUT00 message type, port, partner type, partner number와 같은 수신자 정보, IDOC 번호, 생성일자, 기타 이와 유사한 여러 가지 parameter와 선택조건을 가지고 있다. [Maximum number of IDOC to process] field는 한번 송신할 때 보내지는 IDOC의 숫자, 즉 이를 기술적으로 이야기 하면, 하나의 logical unit of work(LUW)에서 보내지는 IDOC의 숫자를 의미한다. 이에 대한 기본값은 5000이다. 예를 들어 file port를 통하여 date timestamp를 조합한 형식의 file이름으로 IDOC을 전송하고자 하고, file로 만들 IDOC 7000개 있는 경우에, 프로그램 RSEOUT00은 먼저 5000개의 IDOC에 대하여 file로 만드는 작업을 하고, 다음에 나머지 2000개의 IDOC file로 만드는 작업을 한다프로그램 실행시간에 대한 시간제한이나 기타 다른 요구사항을 처리하기 위한 시스템 상의 특정 설정사항 때문에, 이 수치를 줄이거나 늘릴 필요가 발생할 수도 있다. 프로그램 RSEOUT00 scheduling job으로 만들어 주기적인 실행함으로써, 한 시스템에서 다른 R/3 시스템이나 외부시스템으로 IDOC을 송신할 수 있다. 앞에서 언급한 것과 같이, IDOC 생성하고 전송하는 2 단계 job에서, IDOC을 생성하는 프로그램을 첫 번째  단계로 하고, 다음에 이 프로그램을 두 번째 단계로 처리하는 것이 일반적이다.

 

 


 


그림 7‑4 RSEOUT00 생성된 IDOC송신

 

 

 


 

프로그램 RBDAGAIN 오류가 발생한 IDOC을 재 처리하기 위해서 사용된다. [그림 7-5]를 참조하라. 이 프로그램은 다음과 같은 오류상태의 IDOC을 처리한다.

 

n  02 -- Error transmitting data to port

n  04 -- Error in EDI subsystem control information

n  05        -- Error in conversion

n  25        -- Continue processing despite syntax error(outbound)

n  29 -- Error in ALE service

 

이 프로그램을 실행하기 전에, 먼저 오류의 원인이 무엇인지를 결정하고, 문제를 해결해야 한다. 프로그램 RBDAGAIN은 이러한 IDOC을 재처리하는데, partner profile outbound parameter에 있는 output modeCollect IDOCs으로 설정되어 있으면, IDOC status 30으로 변경하고, partner profile outbound parameter에 있는 output modeTransfer IDOC immediately로 되어 있으면, status 03으로 변경한다. 프로그램 RBDAGAIN에서는 IDOC 번호, 생성일자, 생성시간, message type, 수신자의 partner type, 수신자의 partner function, 수신자의 partner number(partner profile  name)와 같은 parameter와 선택조건을 이용하여, 재처리하고자 하는 IDOC을 선택적으로 처리할 수 있다. 또한 여러분은 프로그램 RBDAGAIN의 시작화면에서 [Import in Background]라는 checkbox를 볼 수 있을 것이다. checkbox check되어 있으면, 지정된 선택조건에 의해서 선택된 IDOC은 화면에 나타나지 않고, 프로그램은 backgroun에서 그 IDOC들을 재처리하려고 한다. 프로그램 실행이 완료되면, IDOC에 대한 새로운 status를 보여주는 안내 메시지가 나타날 것이다. [Import in Background] checkbox 필드가 check되어 있지 않다면, 선택된 IDOC들은 사용자에게 하나씩 보여지게 되고, 그러면 사용자들은 IDOC을 편집하거나, 오류 메시지를 점검하거나, 처리를 할 수 있는 선택권을 행사할 수 있을 것이다. 여러분은 재처리의 결과와 새로운 status를 보여주는 안내 메시지를 볼 수 있을 것이다. 프로그램 RBDAGAIN에서 IDOC을 재처리하는 과정에서, 특히 IDOC 자료를 수정하는 경우에, 원본 IDOC에 근거하여 (항상은 아니지만 경우에 해당하면), status 30 또는 03의 새로운 IDOC을 생성해 낼 가능성도 있다는 것에 유의하라그러면 원본 IDOC status 33(original of the IDOC that was edited)으로 변경되고, 여기에 대해서는 archive하는 것 이외에는 더 이상 다른 처리를 할 수 없다.

 

 

 


 


그림 7‑5 RBDAGAIN 오류 IDOC의 재처리

 

 


 

프로그램 RBDSYNEO syntax 오류가 있음에도 불구하고 IDOC을 처리하고자 할 때 사용된다. [그림 7-6]을 보라. syntax 오류가 있는 IDOC status 26의 값을 가지고 있다. outbound IDOC에서의 syntax오류는, SAP에서 사전에 정의되어 있는 계층구조 상에서 segment를 잘못된 위치에 놓거나, 필수(mandatory) segment를 빠트리거나, EDIDD key정보를 부정확하게 지정하거나, 또는 이와 유사한 이유로 인해서 발생될 수 있다. status 26 상태에 있는 IDOC에 대하여 syntax오류를 무시하고 그 IDOC을 처리하고자 하면, 프로그램 RBDSYNEO를 사용하라. 프로그램 RBDSYNEO에서는 IDOC 번호, 생성일자, 생성시간, 수신자의 partner type, 수신자의 partner number, message type, 기타 parameter와 선택조건을 이용하여 IDOC을 선택적으로 처리할 수 있다. 이 프로그램의 처음 화면을 보면, [Import in Background]라는 checkbox 필드가 있는 것을 볼 수 있을 것이다. flag check(default value)되어 있으면, 입력한 선택조건에 부합하는 IDOC은 화면에 표시되지 않고, background 방식으로 처리된다. IDOC 번호, message type, 그리고 새로운 status정보를 보여주는 안내 메시지가 나타날 것이다. 만약 그 flag check되어 있지 않으면, 그 프로그램은 선택된 IDOC을 한번에 하나씩 보여주면서, 여러분이 그 IDOC을 편집하거나, 오류를 점검해 보거나, syntax 오류에도 불구하고 처리를 계속할 수 있는 선택권을 부여해 준다그런 다음, IDOC 번호, message type, 그리고 새로운 status정보를 보여주는 안내 메시지가 나타날 것이다. 이 프로그램이 성공적으로 처리되고 나면, partner profile outbound paramter에 있는 output modeCollect IDOCs으로 되어 있으면, IDOC status 30(IDOC ready for dispatch)으로 변경시켜 주고, 만약 output modeTransfer IDOC immediately로 되어 있으면, IDOC status 03(IDOC passed to port OK)로 변경시켜 준다.

 

 

 


 


그림 7‑6 RBDSYNEO Syntax 오류 IDOC의 처리