289.2.4. 리포지터리 구성
289.2.4.1. 개요
리포지토리의 구성은 SAP 구성 요소의 repositoryDataStore
속성에서 유지 관리됩니다. 이 맵의 각 항목은 고유한 리포지토리를 구성합니다. 각 항목의 키는 리포지토리의 이름이며 이 키는 이 리포지토리가 연결된 서버의 이름이기도 합니다.
각 항목의 값은 메타 데이터 리포지토리의 내용을 정의하는 리포지토리 데이터 구성 오브젝트 org.fusesource.camel.component.sap.model.rfc.RepositoryDataImpl
입니다. 리포지토리 데이터 오브젝트는 함수 템플릿 구성 오브젝트( org.fuesource.camel.component.sap.model.rfc.impl.FunctionImpl
)의 맵입니다. 이 맵의 각 항목은 함수 모듈의 인터페이스를 지정하고 각 항목의 키는 지정된 함수 모듈의 이름입니다.
289.2.4.2. 리포지터리 데이터 예
다음 코드는 meta-data 리포지토리를 구성하는 간단한 예를 보여줍니다.
<?xml version="1.0" encoding="UTF-8"?> <blueprint ... > ... <!-- Configures the sap-srfc-server component --> <bean id="sap-configuration" class="org.fusesource.camel.component.sap.SapConnectionConfiguration"> <property name="repositoryDataStore"> <map> <entry key="nplServer" value-ref="nplRepositoryData" /> </map> </property> </bean> <!-- Configures a Meta-Data Repository --> <bean id="nplRepositoryData" class="org.fusesource.camel.component.sap.model.rfc.impl.RepositoryDataImpl"> <property name="functionTemplates"> <map> <entry key="BOOK_FLIGHT" value-ref="bookFlightFunctionTemplate" /> </map> </property> </bean> ... </blueprint>
289.2.4.3. 함수 템플릿 속성
함수 모듈의 인터페이스는 데이터가 RFC 호출에서 함수 모듈로 전달되는 네 개의 매개 변수 목록으로 구성됩니다. 각 매개변수 목록은 하나 이상의 필드로 구성되며, 각 필드는 RFC 호출에서 전송되는 명명된 매개 변수입니다. 다음 매개변수 목록 및 예외 목록이 지원됩니다.
- import 매개변수 목록에 는 RFC 호출에서 function 모듈에 전송되는 매개변수 값이 포함되어 있습니다.
- export 매개변수 목록에 는 RFC 호출에서 function 모듈에서 반환하는 매개변수 값이 포함되어 있습니다.
- Change 매개변수 목록에 는 RFC 호출에서 function 모듈에 의해 반환되고 반환되는 매개변수 값이 포함되어 있습니다.
- table 매개 변수 목록에 는 RFC 호출에서 함수 모듈에서 보내고 반환하는 내부 테이블 값이 포함되어 있습니다.
- 또한 함수 모듈의 인터페이스는 RFC 호출에서 모듈을 호출할 때 발생할 수 있는 ABAP 예외의 예외 목록으로 구성됩니다.
함수 템플릿은 함수 인터페이스의 각 매개 변수 목록에 있는 매개 변수의 이름과 유형 및 함수에서 throw된 ABAP 예외를 설명합니다. 함수 템플릿 오브젝트는 다음 표에 설명된 대로 meta-data 오브젝트의 5개 속성 목록을 관리합니다.
속성 | 설명 |
|
목록 필드 meta-data 오브젝트, |
|
목록 필드 meta-data 오브젝트, |
|
목록 필드 meta-data 오브젝트, |
|
목록 필드 meta-data 오브젝트, |
|
ABAP 예외 meta-data 오브젝트, |
289.2.4.4. 함수 템플릿 예
다음 예제에서는 함수 템플릿을 구성하는 방법에 대한 개요를 보여줍니다.
<bean id="bookFlightFunctionTemplate" class="org.fusesource.camel.component.sap.model.rfc.impl.FunctionTemplateImpl"> <property name="importParameterList"> <list> ... </list> </property> <property name="changingParameterList"> <list> ... </list> </property> <property name="exportParameterList"> <list> ... </list> </property> <property name="tableParameterList"> <list> ... </list> </property> <property name="exceptionList"> <list> ... </list> </property> </bean>
289.2.4.5. 필드 메타 데이터 속성 목록
list 필드 meta-data 오브젝트, org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMeataDataImpl
은 매개 변수 목록의 필드 이름 및 유형을 지정합니다. 기본 매개변수 필드(CHAR
,DATE
,BCD
,TIME
,BYTE
,NUM
,FLOAT
,
,INT
1INT2
,DECF16)
의 경우, DECF34
,STRING
,XSTRING
), 다음 표에는 목록 필드 메타 데이터 객체에 설정될 수 있는 구성 속성이 나와 있습니다.
이름 | 기본값 | 설명 |
| - | 매개변수 필드의 이름입니다. |
| - | 필드의 매개 변수 유형입니다. |
| - | 비유니코드 레이아웃의 필드 길이(바이트)입니다. 이 값은 매개변수 유형에 따라 다릅니다. 289.5절. “RFC에 대한 메시지 본문” 을 참조하십시오. |
| - | 유니코드 레이아웃의 필드 길이(바이트)입니다. 이 값은 매개변수 유형에 따라 다릅니다. 289.5절. “RFC에 대한 메시지 본문” 을 참조하십시오. |
|
| 필드 값의 10진수 수입니다. 매개변수 유형 BCD 및 FLOAT에만 필요합니다. 289.5절. “RFC에 대한 메시지 본문” 을 참조하십시오. |
|
|
|
모든 elementary 매개변수 필드에는 name
,type
,byteLength
및 unicodeByteLength
속성이 field meta-data 오브젝트에 지정되어야 합니다. 또한 BCD
,FLOAT
,DECF16
및 DECF34
필드에는 메타 데이터 오브젝트 필드에 10진수 속성을 지정해야 합니다.
TABLE
또는 STRUCTURE
유형의 복잡한 매개변수 필드의 경우 다음 표에는 목록 필드 meta-data 오브젝트에 설정할 수 있는 구성 속성이 나열되어 있습니다.
이름 | 기본값 | 설명 |
| - | 매개변수 필드의 이름입니다. |
| - | 필드의 매개 변수 유형입니다. |
| - |
구조 또는 테이블에 대한 메타 데이터입니다. 레코드 meta-data 오브젝트, |
|
|
|
모든 복잡한 매개변수 필드에는 meta-data 필드 필드에 이름
,유형
및 recordMetaData
속성을 지정해야 합니다. recordMetaData
속성의 값은 레코드 필드 org.fusesource.camel.component.sap.model.rfc.RecordMetaDataImpl
이며 중첩 된 구조 또는 테이블 행의 구조를 지정합니다.
289.2.4.6. elementary list 필드 meta-data 예제
다음 meta-data 구성은 TICKET_PRICE
라는 두 개의 10 자리 자리 표시자로 선택적 24digit packed BCD 번호 매개변수를 지정합니다.
<bean class="org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMetaDataImpl"> <property name="name" value="TICKET_PRICE" /> <property name="type" value="BCD" /> <property name="byteLength" value="12" /> <property name="unicodeByteLength" value="24" /> <property name="decimals" value="2" /> <property name="optional" value="true" /> </bean>
289.2.4.7. 복잡한 list 필드 메타 데이터 예
다음 meta-data 구성은 connectionInfo
레코드 meta-data 오브젝트에 지정된 행 구조를 사용하여 CONNINFO
라는 필수 TABLE
매개변수를 지정합니다.
<bean class="org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMetaDataImpl"> <property name="name" value="CONNINFO" /> <property name="type" value="TABLE" /> <property name="recordMetaData" ref="connectionInfo" /> </bean>
289.2.4.8. record meta-data 속성
레코드 meta-data 오브젝트, org.fusesource.camel.component.sap.model.rfc.impl.RecordMetaDataImpl
.RecordMetaDataImpl 레코드는 중첩 STRUCTURE
또는 TABLE
매개변수 행의 이름 및 콘텐츠를 지정합니다. 레코드 meta-data 오브젝트는 레코드 필드 메타 데이터 오브젝트 목록, org.fusesource.camel.component.sap.model.rfc.impl.FieldMetaDataImpl
, 중첩 구조 또는 테이블 행에 상주하는 매개변수를 지정합니다.
다음 표에는 레코드 meta-data 오브젝트에 설정할 수 있는 구성 속성이 나열되어 있습니다.
이름 | 기본값 | 설명 |
| - | 레코드의 이름입니다. |
| - |
레코드 필드 meta-data 오브젝트, |
레코드 meta-data 오브젝트의 모든 속성이 필요합니다.
289.2.4.9. 레코드 meta-data 예
다음 예제에서는 레코드 meta-data 오브젝트를 구성하는 방법을 보여줍니다.
<bean id="connectionInfo" class="org.fusesource.camel.component.sap.model.rfc.impl.RecordMetaDataImpl"> <property name="name" value="CONNECTION_INFO" /> <property name="recordFieldMetaData"> <list> ... </list> </property> </bean>
289.2.4.10. 레코드 필드 메타 데이터 속성
레코드 필드 org.fusesource.camel.component.sap.model.rfc.FieldMetaDataImpl .FieldMetaDataImpl
은 구조를 사용하는 매개변수 필드의 이름과 유형을 지정합니다.
레코드 필드 meta-data 오브젝트는 중첩된 구조 또는 테이블 행의 개별 필드 위치 오프셋을 추가로 지정해야 하는 경우를 제외하고 매개변수 필드 meta-data 오브젝트와 유사합니다. 개별 필드의 비유니코드 및 유니코드 오프셋은 구조 또는 행에 있는 이전 필드의 비유니코드 및 유니코드 바이트 길이 합계에서 계산하고 지정해야 합니다. 중첩된 구조 및 테이블 행에서 필드 오프셋을 올바르게 지정하지 않으면 기본 JCo 및 ABAP 런타임의 매개변수 필드 스토리지가 겹치고 RFC 호출에서 값을 올바르게 전송하지 못하게 합니다.
기본 매개변수 필드(CHAR
,DATE
,BCD
,TIME
,BYTE
,NUM
,FLOAT
,
,INT
1INT2
,DECF16)
의 경우, DECF34
,STRING
,XSTRING
), 다음 표에서는 레코드 필드 메타 데이터 객체에 설정될 수 있는 구성 속성을 나열합니다.
이름 | 기본값 | 설명 |
| - | 매개변수 필드의 이름입니다. |
| - | 필드의 매개 변수 유형입니다. |
| - | 비유니코드 레이아웃의 필드 길이(바이트)입니다. 이 값은 매개변수 유형에 따라 다릅니다. 289.5절. “RFC에 대한 메시지 본문” 을 참조하십시오. |
| - | 유니코드 레이아웃의 필드 길이(바이트)입니다. 이 값은 매개변수 유형에 따라 다릅니다. 289.5절. “RFC에 대한 메시지 본문” 을 참조하십시오. |
| - | 비유니코드 레이아웃의 바이트 단위 필드 오프셋입니다. 이 오프셋은 포함 구조 내의 필드의 바이트 위치입니다. |
| - | 유니코드 레이아웃의 바이트 단위 필드 오프셋입니다. 이 오프셋은 포함 구조 내의 필드의 바이트 위치입니다. |
|
|
필드 값의 10진수 수입니다. 매개변수 유형 |
TABLE
또는 STRUCTURE
유형의 복잡한 매개변수 필드의 경우 다음 표에는 레코드 필드 meta-data 오브젝트에 설정할 수 있는 구성 속성이 나열되어 있습니다.
이름 | 기본값 | 설명 |
| - | 매개변수 필드의 이름입니다. |
| - | 필드의 매개 변수 유형입니다. |
| - | 비유니코드 레이아웃의 바이트 단위 필드 오프셋입니다. 이 오프셋은 포함 구조 내의 필드의 바이트 위치입니다. |
| - | 유니코드 레이아웃의 바이트 단위 필드 오프셋입니다. 이 오프셋은 포함 구조 내의 필드의 바이트 위치입니다. |
| - |
구조 또는 테이블에 대한 메타 데이터입니다. 레코드 meta-data 오브젝트, |
289.2.4.11. elementary record 필드 meta-data 예
다음 메타 데이터 구성은 비유 비유 레이아웃의 경우 ARRDATE
라는 DATE
필드 매개 변수를 85바이트로 지정하고 유니코드 레이아웃의 경우 170바이트를 인클로딩 구조로 지정합니다.
<bean class="org.fusesource.camel.component.sap.model.rfc.impl.FieldMetaDataImpl"> <property name="name" value="ARRDATE" /> <property name="type" value="DATE" /> <property name="byteLength" value="8" /> <property name="unicodeByteLength" value="16" /> <property name="byteOffset" value="85" /> <property name="unicodeByteOffset" value="170" /> </bean>
289.2.4.12. 복잡한 레코드 필드 메타 데이터 예
다음 meta-data 설정은 flightInfo
레코드 meta-data 개체에 의해 지정된 구조가 있는 FLTINFO
라는 STRUCTURE
필드 매개변수를 지정합니다. 이 매개 변수는 비유니코드 및 유니코드 레이아웃의 경우 모두 포함된 구조의 시작 부분에 있습니다.
<bean class="org.fusesource.camel.component.sap.model.rfc.impl.FieldMetaDataImpl"> <property name="name" value="FLTINFO" /> <property name="type" value="STRUCTURE" /> <property name="byteOffset" value="0" /> <property name="unicodeByteOffset" value="0" /> <property name="recordMetaData" ref="flightInfo" /> </bean>