290.9. RFC에 대한 메시지 본문


290.9.1. 요청 및 응답 오브젝트

SAP 끝점에서는 SAP 요청 오브젝트가 포함된 메시지 본문이 포함된 메시지를 수신하고 SAP 응답 오브젝트가 포함된 메시지 본문이 포함된 메시지를 반환합니다. SAP 요청 및 응답은 각 필드에 사전 정의된 데이터 유형이 있는 이름이 지정된 필드를 포함하는 고정 맵 데이터 구조입니다.

참고

SAP 요청 및 응답에서 이름이 지정된 필드는 SAP 끝점에 고유하며 각 끝점은 SAP 요청의 매개변수와 허용 가능한 응답을 정의합니다. SAP 끝점은 특정 요청 및 응답 개체를 생성하는 팩토리 방법을 제공합니다.

public class SAPEndpoint {
    ...
    public Structure getRequest() throws Exception;

    public Structure getResponse() throws Exception;
    ...
}

290.9.2. 구조 오브젝트

SAP 요청 및 응답 오브젝트는 둘 다 org.fusesource.camel.component.sap.model.rfc.Structure 인터페이스를 지원하는 구조 오브젝트로 Java에 표시됩니다. 이 인터페이스는 java.util.Maporg.eclipse.emf.ecore.EObject 인터페이스를 모두 확장합니다.

public interface Structure extends org.eclipse.emf.ecore.EObject,
                                        java.util.Map<String, Object> {

    <T> T get(Object key, Class<T> type);

}

구조 오브젝트의 필드 값은 맵 인터페이스에서 필드의 getter 메서드를 통해 액세스할 수 있습니다. 또한 구조 인터페이스는 필드 값을 검색할 수 있는 형식 제한 메서드를 제공합니다.In addition, the structure interface provides a type-restricted method to retrieve field values.

구조 오브젝트는 Eclipse Modeling Framework(EMF)를 사용하여 구성 요소 런타임에서 구현되며 해당 프레임워크의 EObject 인터페이스를 지원합니다. 구조 오브젝트의 인스턴스에는 제공하는 필드 맵의 구조와 내용을 정의하고 제한하는 연결된 메타데이터가 있습니다. 이 메타데이터는 EMF에서 제공하는 표준 방법을 사용하여 액세스 및 세부 검사할 수 있습니다. 자세한 내용은 EMF 설명서를 참조하십시오.

참고

구조 오브젝트에 정의되지 않은 매개 변수를 가져오려고 하면 null이 반환됩니다. 구조에 정의되지 않은 매개 변수를 설정하려고 하면 예외가 발생하고 잘못된 유형으로 매개변수 값을 설정하려고 합니다.

다음 섹션에서 설명한 것처럼 구조 오브젝트에는 복잡한 필드 유형, STRUCTURE 및 Cryostat의 값이 포함된 필드가 포함될 수 있습니다.

참고

이러한 유형의 인스턴스를 생성하고 구조에 추가하는 것은 불필요합니다. 필요에 따라 이러한 필드 값의 인스턴스는 enclosing 구조에서 액세스하면 필요에 따라 생성됩니다.

290.9.3. 필드 유형

SAP 요청 또는 응답의 구조 객체 내에 상주하는 필드는 elementary 또는 complex 일 수 있습니다. elementary 필드에는 단일 스칼라 값이 포함된 반면, complex 필드는 elementary 또는 complex type의 하나 이상의 필드를 포함합니다.

290.9.4. 기본 필드 유형

기본 필드는 문자, 숫자, 16진수 또는 문자열 필드 유형일 수 있습니다. 다음 표에는 구조 오브젝트에 있을 수 있는 기본 필드 유형이 요약되어 있습니다.

필드 유형

해당 Java 유형

바이트 길이

유니코드 Cryostat 길이

숫자 Decimals >-<t s

설명

CHAR

java.lang.String

1에서 65535

1에서 65535

-

ABAP 유형 'C': 크기 조정된 문자 문자열

DATE

java.util.Date

8

16

-

ABAP 유형 'D': 날짜(유형: YYYYMMDD)

BCD

java.math.BigDecimal

1에서 16

1에서 16

0에서 14

ABAP Type 'P': 패키징된 BCD 번호입니다. BCD 번호는 바이트당 두 자리가 포함되어 있습니다.

TIME

java.util.Date

6

12

-

ABAP Type 'T': Time (format: HHMMSS)

BYTE

byte[]

1에서 65535

1에서 65535

-

ABAP 유형 'X': 고정 크기 바이트 배열

NUM

java.lang.String

1에서 65535

1에서 65535

-

ABAP 유형 'N': 크기가 지정된 숫자 문자열 고정

FLOAT

java.lang.Double

8

8

0에서 15

ABAP 유형 'F': 유동 포인트 번호

INT

java.lang.Integer

4

4

-

ABAP 유형 'I': 4바이트 정수

INT2

java.lang.Integer

2

2

-

ABAP Type 'S': 2byte Integer

INT1

java.lang.Integer

1

1

-

ABAP 유형 'B': 1바이트 정수

DECF16

java.match.BigDecimal

8

8

16

ABAP 유형 'decfloat16': 8바이트 Decimal floating point number

DECF34

java.math.BigDecimal

16

16

34

ABAP 유형 'decfloat34': 16바이트 Decimal floating point number

STRING

java.lang.String

8

8

-

ABAP 유형 'G': 변수 길이 문자 문자열

XSTRING

byte[]

8

8

-

ABAP 유형 'Y': 변수 길이 바이트 배열

290.9.5. 문자 필드 유형

문자 필드에는 기본 JCo 및 ABAP 런타임에서 유니코드 또는 유니코드 문자 인코딩을 사용할 수 있는 고정된 크기의 문자 문자열이 포함되어 있습니다. 유니코드가 아닌 문자 문자열은 바이트당 하나의 문자를 인코딩합니다. 유니코드 문자는 UTF-16 인코딩을 사용하여 두 바이트로 인코딩됩니다. 문자 필드 값은 Java에서 java.lang.String 개체로 나타내며 기본 JCo 런타임은 ABAP 표현으로 변환을 담당합니다.

문자 필드는 각 인코딩 시스템에서 필드의 길이를 해당 바이트 길이 및 unicodeByteLength 속성으로 선언합니다.A character field declares its field length in its associated byteLength and unicodeByteLength properties, which determine the length of the field's character string in each encoding system.

CHAR
characters 필드는 영숫자 문자를 포함하는 텍스트 필드이며 ABAP 유형 C에 해당합니다.
NUM
숫자 문자 필드는 숫자 문자만 포함하는 숫자 텍스트 필드이며 ABAP 유형 N에 해당합니다.
DATE
문자 필드는 YYYYMMDD 로 포맷된 연도, 월 및 날짜가 있는 8자 날짜 필드이며 ABAP 유형 D에 해당합니다.
TIME
TIME 문자 필드는 HHMMSS 로 포맷된 시간, 분 및 초가 있는 6자 시간 필드이며 ABAP 유형 T에 해당합니다.

290.9.6. 숫자 필드 유형

숫자 필드에는 숫자가 포함됩니다. 다음과 같은 숫자 필드 유형이 지원됩니다.

INT
INT 숫자 필드는 기본 JCo 및 ABAP 런타임에서 4바이트 정수 값으로 저장된 정수 필드이며 ABAP 유형 I에 해당합니다. INT 필드 값은 Java에 java.lang.Integer 오브젝트로 표시됩니다.
INT2
INT2 숫자 필드는 기본 JCo 및 ABAP 런타임에서 2바이트 정수 값으로 저장된 정수 필드이며 ABAP 유형 S에 해당합니다. INT2 필드 값은 Java에 java.lang.Integer 오브젝트로 표시됩니다.
INT1
INT1 필드는 기본 JCo 및 ABAP 런타임 값에 1바이트 정수 값으로 저장된 정수 필드이며 ABAP 유형 B에 해당합니다. INT1 필드 값은 Java에 java.lang.Integer 오브젝트로 표시됩니다.
FLOAT
FLOAT 필드는 기본 JCo 및 ABAP 런타임에서 8바이트 double 값으로 저장된 바이너리 부동 소수점 숫자 필드이며 ABAP 유형 F에 해당합니다. FLOAT 필드는 필드의 값이 연결된 10진수에 포함된 10진수 수를 선언합니다. FLOAT 필드의 경우 10진수 속성의 값은 1에서 15자리 사이일 수 있습니다. FLOAT 필드 값은 Java .lang. Cryostat 오브젝트로 표시됩니다.
BCD
BCD 필드는 기본 JCo 및 ABAP 런타임에서 1~16바이트 패킹 번호로 저장된 바이너리 코딩된 10진수 필드이며 ABAP 유형 P에 해당합니다. 패킹된 수는 바이트당 두 개의 10진수를 저장합니다. BCD 필드는 연결된 byteLengthunicodeByteLength 속성에서 필드 길이를 선언합니다. BCD 필드의 경우 이러한 속성의 값은 1에서 16바이트와 두 속성 모두 동일한 값을 가질 수 있습니다. BCD 필드는 필드의 값이 연결된 10진수 속성에 포함된 10진수 수를 선언합니다. BCD 필드의 경우 10진수 속성의 값은 1에서 14 자리 사이일 수 있습니다. BCD 필드 값은 Java에서 java.math.BigDecimal 로 표시됩니다.
DECF16
DECF16 필드는 기본 JCo 및 ABAP 런타임에서 8바이트 IEEE 754 decimal64 부동 소수점 값으로 저장된 10진수 부동 소수점이며 ABAP 유형 decfloat16 에 해당합니다. DECF16 필드의 값은 16진수입니다. DECF16 필드의 값은 Java에 java.math.BigDecimal 로 표시됩니다.
DECF34
DECF34 필드는 기본 JCo 및 ABAP 런타임에서 16바이트 IEEE 754 decimal128 부동 소수점 값으로 저장된 10진수 부동 소수점이며 ABAP 유형 decfloat34 에 해당합니다. DECF34 필드의 값은 34개의 10진수입니다. DECF34 필드의 값은 Java에 java.math.BigDecimal 로 표시됩니다.

290.9.7. 16진수 필드 유형

16진수 필드에는 원시 바이너리 데이터가 포함되어 있습니다. 다음과 같은 16진수 필드 유형이 지원됩니다.

BYTE
BYTE 필드는 기본 JCo 및 ABAP 런타임에 바이트 배열로 저장된 고정된 크기의 바이트 문자열이며 ABAP 유형 X에 해당합니다. BYTE 필드는 연결된 byteLengthunicodeByteLength 속성에 필드 길이를 선언합니다. BYTE 필드의 경우 이러한 속성은 1에서 65535바이트 사이의 값을 가질 수 있으며 두 속성 모두 동일한 값을 갖습니다. BYTE 필드의 값은 Java에서 byte[] 오브젝트로 표시됩니다.

290.9.8. 문자열 필드 유형

문자열 필드는 변수 길이 문자열 값을 참조합니다. 런타임까지 해당 문자열 값의 길이는 고정되어 있지 않습니다. 문자열 값의 스토리지는 기본 JCo 및 ABAP 런타임에서 동적으로 생성됩니다. 문자열 필드 자체의 스토리지는 고정되어 있으며 문자열 헤더만 포함합니다.

STRING
STRING 필드는 문자 문자열을 나타내며 기본 JCo 및 ABAP 런타임에 8바이트 값으로 저장됩니다. 이는 ABAP 유형 G에 해당합니다. STRING 필드의 값은 Java에서 java.lang.String 오브젝트로 표시됩니다.
XSTRING
XSTRING 필드는 바이트 문자열을 참조하고 기본 JCo 및 ABAP 런타임에 8바이트 값으로 저장됩니다. 이는 ABAP 유형 Y에 해당합니다. STRING 필드의 값은 Java에서 byte[] 오브젝트로 표시됩니다.

290.9.9. 복잡한 필드 유형

복잡한 필드는 구조 또는 테이블 필드 유형일 수 있습니다. 다음 표에는 이러한 복잡한 필드 유형이 요약되어 있습니다.

필드 유형

해당 Java 유형

바이트 길이

유니코드 Cryostat 길이

숫자 Decimals >-<t s

설명

구조

org.fusesource.camel.component.sap.model.rfc.Structure

총 개별 필드 바이트 길이

개별 필드의 유니코드 바이트 길이

-

ABAP 유형 'u' & 'v': Heterogeneous structure

org.fusesource.camel.component.sap.model.rfc.Table

행 구조의 바이트 길이

유니코드 바이트 길이의 행 구조

-

ABAP 유형 'h': 테이블

290.9.10. 구조 필드 유형

STRUCTURE 필드는 구조 객체를 포함하며 ABAP 구조 레코드로 기본 JCo 및 ABAP 런타임에 저장됩니다. 이는 ABAP 유형 u 또는 v 에 해당합니다. STRUCTURE 필드의 값은 Java에서 org.fusesource.camel.component.sap.model.rfc.Structure 인터페이스가 있는 구조 오브젝트로 표시됩니다.

290.9.11. 테이블 필드 유형

Cryo stat 필드에는 테이블 오브젝트가 포함되어 있으며 기본 JCo 및 ABAP 런타임에 ABAP 내부 테이블로 저장됩니다. 이는 ABAP 유형 h 에 해당합니다. 필드의 값은 org.fusesource.camel.component.sap.model.rfc.Table 인터페이스가 있는 테이블 오브젝트로 Java에 표시됩니다.

290.9.12. 테이블 오브젝트

테이블 개체는 동일한 구조를 가진 구조 개체의 행을 포함하는 동종 목록 데이터 구조입니다.A table object is a homogeneous list data structure containing rows of structure objects with the same structure. 이 인터페이스는 java.util.Listorg.eclipse.emf.ecore.EObject 인터페이스를 모두 확장합니다.

public interface Table<S extends Structure>
    extends org.eclipse.emf.ecore.EObject,
    java.util.List<S> {

    /**
     * Creates and adds table row at end of row list
     */
    S add();

    /**
     * Creates and adds table row at index in row list
     */
    S add(int index);

}

테이블 개체의 행 목록은 목록 인터페이스에서 정의된 표준 방법을 사용하여 액세스 및 관리됩니다. 또한 테이블 인터페이스는 구조 개체를 만들고 행 목록에 추가하기 위한 두 가지 팩토리 메서드를 제공합니다.In addition, the table interface provides two factory methods for creating and adding structure objects to the row list.

테이블 오브젝트는 Eclipse Modeling Framework(EMF)를 사용하여 구성 요소 런타임에서 구현되며 해당 프레임워크의 EObject 인터페이스를 지원합니다. 테이블 개체의 인스턴스에는 제공하는 행의 구조와 내용을 정의하고 제한하는 연결된 메타데이터가 있습니다. 이 메타데이터는 EMF에서 제공하는 표준 방법을 사용하여 액세스 및 세부 검사할 수 있습니다. 자세한 내용은 EMF 설명서를 참조하십시오.

참고

잘못된 형식의 행 구조 값을 추가하거나 설정하려고 하면 예외가 발생합니다.Attempts to add or set a row structure value of the wrong type throws an exception.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.