XML Validation은 Sender Adapter에서 이루어지는 Validation과

Integration Engine에서 이루어지는 Validation이 있습니다.

 

그림과 같은 구조를 가지기 때문에

Sender Adapter는 Outbound 메세지만 Validation이 가능하고,

Integration Engine은 Outbound와 Inbound 모두 Validation이 가능합니다.

 

Outbound 메세지를 검사할 때

Async 방식은 Sender Adapter, Integration Engine 둘중 사용자가 원하는 방식을 선택해서 사용할 수 있지만

Sync 방식은 반드시 Sender Adapter를 사용하지 않으면 오류가 발생합니다.

Sync 방식에서 Request, Response 메세지 둘 모두 Validation이 가능합니다.

 

Inbound 메세지는 Integration Engine만이 검사할 수 있으므로

Sync/Async 방식 모두 Integration Engine을 이용합니다.

 

 

XML Validation은 PI의 Payload 구조와 저장된 데이터 유형을 이용하여 검사를 합니다.

이때 이용하는 데이터 유형은 XSD입니다.

 

Sender Adapter에서 Validation 처리를 할 때 Payload와 XSD구조가 다르다면 메세지 처리는 정지되고,

Sender에게 Synchronous Response Messagef를 보냅니다.

따라서 오류는 Sender channel에서 확인 할 수 있습니다.

 

Integration Engine에서는 Validation이 Integration Engine의 Pipeline 단계에 속합니다.

Integration Engine의 Pipeline 단계는 SXMB_MONI에서 로그를 볼 때 확인 할 수 있습니다.

모습은 다음 그림과 같습니다.

 

로그의 각 단계가 Integration Engine의 Pipeline 단계를 나타냅니다.

따라서 Integration Engine Validation에서 오류가 날 시 SXMB_MONI를 통해 확인할 수 있습니다.

 

XML Validation 부분은 항상 나타나지만 목록에 나오기만 할 뿐

설정 해주지 않았다면 유효성 검사는 이루어지지 않고 있는 상태입니다.

 

 

 

 

 

 

 

 

 

 

 

 

그럼, 이제 XSD를 추출하는 방법과 Validation 설정 방법에 대해 설명하도록 하겠습니다.

 

 

1. 데이터 타입을 추출할 메세지 타입의 XSD 탭에서 [Export XSD to FILE]버튼을 눌러서 XSD를 파일로 저장합니다.

 

 

XSD는 WSDL에서도 추출 할 수 있습니다.

아래 그림을 보면 <wsdl:types></wsdl:types> 이에 xsd가 정의되어 있는 것을 볼 수 있습니다.

그부분과 맨 위쪽 인코딩 부분만 복사하여 따로 XSD파일로 만들면 됩니다.

 

 

2. 저장한 XSD를 Integration Server System에 복사해 주어야합니다.

경로는 다음과 같습니다.  아래 경로는 실제로 테스트를 위해 만든 경로입니다.

빨간 부분은 밑에 그림을 참고하시면 됩니다.

 

폴더를 만들 때 namespace에서 폴더이름에 사용할 수 없는 문자 : / 에는 ~ 기호를 사용합니다.

예를 들어 http://www.inspien.co.kr/10074라는 namespace는 http~www.inspien.co.kr~10074로 폴더를 작성합니다.

 

 

 

 

 

XSD를 Integration Server System에 복사하는 것을 마쳤다면 이제 Validation 설정만 해주면됩니다.

단, Validation 하기를 원하는 메세지 타입은 모두 XSD로 만들어 복사해 주어야합니다.

Sync 방식인 경우 Outbound Requset Message Type, Outbound Response Message Type,

Inbound Requset Message Type, Inbound Response Message Type 총 네개의 XSD를 복사해야겠네요.

폴더는 serviece interface별로 되어있으므로 outbound serviece interface, inbound serviece interface 두 폴더면 됩니다.

 

마지막으로

3. Validation 설정을 해줍니다.

Outbound Validation은 Sender Agreement에서, Inbound Validation은 Receiver Agreement에서 설정합니다.

 

이로써 설정은 모두 마쳤습니다.

 

XML Validation을 사용했을 때와 사용하지 않았을 때를 비교해 보면

 

 

 

 

 

Outbound와 Inbound Message 모두 Validation을 사용하지 않았을 때는 에러가 모두 Message Mapping에서 Value Missing에러가 납니다.

구조가 다르기때문에 Mapping이 제대로 이루어지지 않아 Value Missing이 일어나겠지요.

 

그러나 Validation을 사용하면 구조를 검사해주기 때문에 보다 정확하게 에러난 이유를 알 수가 있습니다.

에러 내용을 보시면 ID가 누락된 것, 구조가 StatementName1_reponse, Statement Name1로 다른 것을 쉽게 알 수 있습니다.

 

마지막으로 Sync 방식일때 Integration Engin Validation을 사용 시 나타는 에러입니다.

Synchrnous message에서는 adapter validation만 사용할 수 있다는 에러가 나타나고 있습니다.

 

 

 

 

 

 

 

 

 

Posted by INSPIEN
,

SXMB_MONI에서 로그를 확인할 때 로그를 커스터마이징하여 보고싶은 로그만 확인 할 수 있도록 하는 방법입니다.

설정은 SXMB_ADMIN -> Integration Engine Configuration에서 가능합니다.

그림을 순서대로 따라서 들어가시면 됩니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

빨간색으로 표시된 RUNTIME/LOGGING , RUNTIME/LOGGING_SYNC두 파라미터를 이용하여 로그 설정을 할 것입니다.

파라미터 이름으로 금방 알아보시겠지만 LOGGING 파라미터가 Async 방식이고, LOGGING_SYNC파라미터가 Sync방식의 로그입니다.

 

현재 파라미터가 둘 다 1로 설정되어있는데, 1로 설정되어있을 경우 모든 로그를 보여줍니다.

파라미터를 0으로 주면

Async방식인 경우 Inbound Message, Receiver Grouping, Response 세 가지로 간단하게 로그를 보여주지만,

Sync 방식의 경우 아무런 로그를 보여주지 않게됩니다.

SXMB_MONI -> Monitor for Processed XML Messages 목록에도 전혀 들어오지 않습니다.

만약 분명히 서비스가 흘렀는데도 불구하고 MONI에 아무것도 들어 오지 않는다면 LOGGING_SYNC 파라미터를 확인해보시면 될 것 같습니다.

 

먼저, 보시는 그림은 LOGGING_SYNC 파라미터를 1로 설정하여

모든 로그를 볼 수 있게끔 설정한 모습입니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

로그를 커스터 마이징 할 때는, LOGGING 파라미터와 LOGGING_SYNC 파라미터를 0으로 설정하고 두 파라미터의 서브파라미터를 이용하여 설정하게 됩니다.

그림을 따라 파라미터 설정 페이지까지 들어온 후, [New Entries]를 누릅니다.

 

 

 

파라미터 작성 페이지 입니다. 카테고리는 RUNTIME을 선택하고 파라미터는 LOGGING 파라미터와 LOGGING_SYNC 파라미터 둘 중 설정해줄 파라미터를 선택합니다.

Subparameter 값을 통해 원하는 로그 메세지를 설정하게됩니다.

Current Value값을 1로 주면 활성화되고, 0으로 주면 비활성화 됩니다.

서브파라미터를 만들어두기만 하고, 나중에 사용할 경우 0으로 주면 됩니다.

모든 서브파라미터를 생성해두고 사용하고 싶은 서브파라미터만 1로 활성화 하여 사용해도 되지만,

 

저같은 경우 사용하고싶은 서브파라미터 3개만 생성해보았습니다.

바로 설정하여 사용할 것이기 때문에 Current Value값도 1로 주었습니다.

 

모든 설정을 마치면 저장을 누릅니다.

 

 

서브파라미터를 선택할 때의 창입니다.

파라미터가 어떤 로그에 관여하는지 설명이 다 되어있기 때문에 쉽게 서브파라미터를 선택하실 수 있습니다.

 

 

서브파라미터 설정을 마친 후 파라미터는 0으로 해주어야만 서브파라미터의 로그만 보실 수 있습니다.

 

위 그림과 같은 SXMB_ADMIN 설정을 마친 후 SXMB_MONI에서 본 로그 모습입니다.

설정한 서브파라미터에 따라 Inbound Message, Request Message Mapping, Response Message Mapping 세 가지 로그만 나오는 것을 확인할 수 있습니다.

 

 

 

 

Posted by INSPIEN
,



















































ABAP Proxy

 : ABAP Proxy XI Integration Object SAP에서 사용할 수 있도록 해주는 Interface 방법이다.

   SAP WAS 6.20 이상이 탑재된 모든 ABAP System에서 사용할 수 있으며, 해당 ABAP System에는 XI와 통신할 수 

   있는 Integration Engine이 포함되어 있다.

   이를 사용하게 되면 ECC내에서 Interface 되는 DATA의 모니터링이 가능해진다 .


ABAP Proxy 의 종류

  Client Proxy : XI서버에 대하여 ECC서버가 Client역할을 하는 경우에 Client Proxy라고 합니다

                     Proxy Generation 시에 CO Prefix자동으로 부여된다.

  Server Proxy : ECC서버가 XI 서버에 Server 역할을 하는 경우에 Server Proxy라고 한다

                       Proxy Generation 시에 II Prefix자동으로 부여되며, Implementing Class존재한다.  

























































ZADM_CLIENT_PROXY_ASYNC.txt


ZADM_CLIENT_PROXY_SYNC.txt


ZIFII_SI_MODULE_REQ_AI.txt


ZIFII_SI_MODULE_SI.txt



'ABAP' 카테고리의 다른 글

[ABAP] 문자열 관련 Function  (1) 2013.08.12
[ABAP] 날짜 관련 Function 모음  (0) 2013.08.12
[ABAP] Number RANGE 사용하기  (0) 2013.08.12
[ABAP] 다른 프로그램 호출 샘플  (0) 2013.08.12
[ABAP] 소스 수정하는 소스  (0) 2013.08.12
Posted by INSPIEN
,