55.6. RFC에 대한 메시지 body
55.6.1. 요청 및 응답 오브젝트 링크 복사링크가 클립보드에 복사되었습니다!
SAP 끝점은 SAP 요청 오브젝트가 포함된 메시지 본문이 있는 메시지를 수신할 것으로 예상하고 SAP 응답 오브젝트가 포함된 메시지 본문이 있는 메시지를 반환합니다. SAP 요청 및 응답은 사전 정의된 데이터 유형이 있는 각 필드가 있는 이름이 지정된 필드를 포함하는 고정 맵 데이터 구조입니다.
SAP 요청 및 응답에서 named 필드는 SAP 끝점에 고유하며 각 엔드포인트는 SAP 요청에 매개 변수를 정의하고 이를 수락하게 됩니다. SAP 끝점은 팩토리와 관련된 요청 및 응답 오브젝트를 생성하는 팩토리 메서드를 제공합니다.
55.6.2. 구조 오브젝트 링크 복사링크가 클립보드에 복사되었습니다!
SAP 요청 및 응답 오브젝트는 모두 Java에서 org.fusesource.camel.component.sap.model.rfc.Structure 인터페이스를 지원하는 구조 오브젝트로 표시됩니다. 이 인터페이스는 java.util.Map 및 org.eclipse.emf.ecore.EObject 인터페이스를 모두 확장합니다.
구조 오브젝트의 필드 값은 맵 인터페이스에서 필드의 getter 메서드를 통해 액세스합니다. 또한 구조 인터페이스는 필드 값을 검색하는 형식 제한 메서드를 제공합니다.In addition, the structure interface provides a type-restricted method to retrieve field values.
structure 객체는 Eclipse Modeling Framework (EMF)를 사용하여 구성 요소 런타임에서 구현되며 해당 프레임워크의 EObject 인터페이스를 지원합니다. 구조 오브젝트의 인스턴스에는 제공하는 필드 맵의 구조와 콘텐츠를 정의하고 제한하는 연결된 메타데이터가 있습니다. 이 메타데이터는 EMF에서 제공하는 표준 방법을 사용하여 액세스 및 검사할 수 있습니다. 자세한 내용은 EMF 문서를 참조하십시오.
structure 개체에 정의되지 않은 매개 변수를 가져오려고 하면 null이 반환됩니다.Attempts to get a parameter not defined on a structure object will return null. 구조에 정의되지 않은 매개 변수를 설정하려고 하면 예외가 발생하지 않고 잘못된 형식으로 매개 변수의 값을 설정하려고 시도합니다.
다음 섹션에서 설명한 것처럼 구조 오브젝트에는 복잡한 필드 유형, STRUCTURE 및 10.0.0.1 .NET의 값이 포함된 필드가 포함될 수 있습니다.
이러한 유형의 인스턴스를 생성하고 구조에 추가하는 것은 필요하지 않습니다. 이러한 필드 값의 인스턴스는 인클로저 구조에서 액세스할 때 필요에 따라 생성됩니다.
55.6.3. 필드 유형 링크 복사링크가 클립보드에 복사되었습니다!
SAP 요청 또는 응답의 구조 객체 내에 있는 필드는 기본 또는 복잡한 필드일 수 있습니다. 요소 필드에는 단일 스칼라 값이 포함된 반면, 복잡한 필드는 요소 또는 복잡한 유형의 필드를 하나 이상 포함합니다.
55.6.3.1. 기본 필드 유형 링크 복사링크가 클립보드에 복사되었습니다!
요소 필드는 문자, 숫자, 16진수 또는 문자열 필드 유형일 수 있습니다. 다음 표에는 구조 오브젝트에 있을 수 있는 요소 필드 유형이 요약되어 있습니다.
| 필드 유형 | 해당 Java 유형 | Byte Length | UnicodeECDHE Length | 숫자 ECDHEt s | 설명 |
|
|
| 1~65535 | 1~65535 | - | ABAP 유형 'C': 수정된 크기의 문자 문자열 |
|
|
| 8 | 16 | - | ABAP 유형 'D': 날짜 (포멧: YYYMMDD) |
|
|
| 1~16 | 1~16 | 0~14 | ABAP 유형 'P': BCD 번호. BCD 번호는 바이트당 두 자리 수를 포함합니다. |
|
|
| 6 | 12 | - | ABAP 유형 'T': Time (format: HHMMSS) |
|
|
| 1~65535 | 1~65535 | - | ABAP 유형 'X':Fixed sized byte array |
|
|
| 1~65535 | 1~65535 | - | ABAP Type 'N': 수정된 숫자 문자열 |
|
|
| 8 | 8 | 0에서 15까지 | ABAP 유형 'F': 부동 소수점 번호 |
|
|
| 4 | 4 | - | ABAP 유형 'I: 4바이트 정수 |
|
|
| 2 | 2 | - | ABAP 유형 'S: 2바이트 정수 |
|
|
| 1 | 1 | - | ABAP 유형 'B': 1바이트 정수 |
|
|
| 8 | 8 | 16 | ABAP 유형 'decanchorat16': 8 -byte 부동 소수점 수 |
|
|
| 16 | 16 | 34 | ABAP 유형 'decECDHEat34': 16바이트 부동 소수점 수 |
|
|
| 8 | 8 | - | ABAP 유형 'G': 변수 길이 문자열 |
|
|
| 8 | 8 | - | ABAP 유형 'Y': 변수 길이 바이트 배열 |
55.6.3.2. 문자 필드 유형 링크 복사링크가 클립보드에 복사되었습니다!
문자 필드에는 기본 JCo 및 ABAP 런타임에서 비-ECDHE 또는 유니코드 문자 인코딩을 사용할 수 있는 고정된 크기의 문자 문자열이 포함되어 있습니다. 문자가 아닌 문자열은 바이트당 하나의 문자를 인코딩합니다. 유니코드 문자열은 UTF-16 인코딩을 사용하여 두 바이트로 인코딩됩니다. 문자 필드 값은 Java에서 java.lang.String 오브젝트로 표시되며 기본 JCo 런타임은 ABAP 표현으로의 변환을 담당합니다.
문자 필드는 각 인코딩 시스템에서 필드의 문자 문자열 길이를 결정하는 연결된 byteLength 및 unicodeByteLength 속성에서 해당 필드 길이를 선언합니다.A character field declares its field length in its field length in its associated byteLength and unicodeByteLength properties, which determine the length of the field's character string in each encoding system.
GRAFKA-
문자필드는 영숫자를 포함하는 텍스트 필드이며 ABAP 유형 C에 해당합니다. NUM-
NUM문자 필드는 숫자 문자만 포함하는 숫자 텍스트 필드이며 ABAP 유형 N에 해당합니다. DATE-
문자
필드는연도, 월 및 일 형식이YYYYMMDD인 8자 날짜 필드이며 ABAP 유형 D에 해당합니다. TIME-
TIME문자 필드는 시간, 분 및 초가HHMMSS로 포맷되고 ABAP 유형 T에 해당합니다.
55.6.3.3. 숫자 필드 유형 링크 복사링크가 클립보드에 복사되었습니다!
숫자 필드에는 숫자가 포함됩니다. 다음과 같은 숫자 필드 유형이 지원됩니다.
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바이트의 이중 값으로 저장된 바이너리 부동 소수점 수 필드이며 ABAP 유형 F. AFLOAT필드는 필드의 값이 관련 10진수 속성에 포함된 10진수 수를 선언합니다.FLOAT필드의 경우이 10진수 속성은 1에서 15 자리 사이의 값을 가질 수 있습니다.FLOAT필드 값은 Java에서java.lang. 10.0.0.1 오브젝트로표시됩니다. BCD-
BCD필드는 기본 JCo 및 ABAP 런타임에 1~16바이트 패키지 번호로 저장된 바이너리 코딩된 10진수 필드이며 ABAP 유형 P. 패키징된 숫자는 바이트당 두 개의 10진수를 저장합니다.BCD필드는 연결된byteLength및unicodeByteLength속성으로 해당 필드 길이를 선언합니다.BCD필드의 경우 이러한 속성은 1에서 16바이트 사이의 값을 가질 수 있으며 두 속성 모두 동일한 값을 갖습니다.BCD필드는 필드의 값이 연결된 10진수 속성에 포함된 10진수 수를 선언합니다.BCD필드의 경우 이 decimal 속성은 1에서 14 자리 사이의 값을 가질 수 있습니다.BCD필드 값은 Java에서java.math.BigDecimal로 표시됩니다. DECF16-
DECF16필드는 기본 JCo 및 ABAP 런타임에 8바이트 IEEE 754 decimal64 부동 소수점 값으로 저장된 10진수 부동 소수점이며 ABAP 유형 decknativeat16에 해당합니다.DECF16필드의 값은 16진수 숫자를 갖습니다.DECF16필드의 값은 Java에서java.math.BigDecimal로 표시됩니다. DECF34-
DECF34필드는 기본 JCo 및 ABAP 런타임에 16바이트 IEEE 754 decimal128 부동 소수점 값으로 저장된 10진수 부동 소수점이며 ABAP 유형decECDHEat34에 해당합니다.DECF34필드의 값은 34진수입니다.DECF34필드의 값은 Java에서java.math.BigDecimal로 표시됩니다.
55.6.3.4. 16진수 필드 유형 링크 복사링크가 클립보드에 복사되었습니다!
16진수 필드에는 원시 바이너리 데이터가 포함되어 있습니다. 다음과 같은 16진수 필드 유형이 지원됩니다.
BYTE-
BYTE필드는 기본 JCo 및 ABAP 런타임에 바이트 배열로 저장된 고정된 바이트 문자열이며 ABAP 유형 X에 해당합니다.BYTE필드는 관련byteLength및unicodeByteLength속성에서 해당 필드 길이를 선언합니다.BYTE필드의 경우 이러한 속성은 1에서 65535 바이트 사이의 값을 가질 수 있으며 두 속성 모두 동일한 값을 갖습니다.BYTE필드의 값은 Java에서byte[]오브젝트로 표시됩니다.
55.6.3.5. 문자열 필드 유형 링크 복사링크가 클립보드에 복사되었습니다!
문자열 필드는 변수 길이 문자열 값을 참조합니다. 해당 문자열 값의 길이는 런타임까지 고정되어 있지 않습니다. 문자열 값에 대한 스토리지는 기본 JCo 및 ABAP 런타임에서 동적으로 생성됩니다. 문자열 필드 자체에 대한 스토리지는 고정되어 있으며 문자열 헤더만 포함합니다.
문자열-
STRING필드는 기본 JCo 및 ABAP 런타임에 8바이트 값으로 저장된 문자 문자열을 나타냅니다. 이는 ABAP 유형 G.STRING필드의 값이 Java로java.lang.String오브젝트로 표시됩니다. XSTRING-
XSTRING필드는 기본 JCo 및 ABAP 런타임에 8바이트 값으로 저장된 바이트 문자열을 나타냅니다. 이는 ABAP 유형 Y에 해당합니다.STRING필드의 값은 Java에서byte[]오브젝트로 표시됩니다.
55.6.3.6. 복잡한 필드 유형 링크 복사링크가 클립보드에 복사되었습니다!
복잡한 필드는 구조 또는 테이블 필드 유형일 수 있습니다. 다음 표에는 이러한 복잡한 필드 유형이 요약되어 있습니다.
| 필드 유형 | 해당 Java 유형 | Byte Length | UnicodeECDHE Length | 숫자 ECDHEt s | 설명 |
|
|
| 개별 필드 바이트 길이의 합계 | 개별 필드 유니코드 바이트 길이의 합계 | - | ABAP 유형 'u' & 'v': 이종적 structure |
|
|
| 행 구조의 바이트 길이 | 행 구조의 유니코드 바이트 길이 | - | ABAP 유형 'h': 테이블 |
55.6.3.7. 구조 필드 유형 링크 복사링크가 클립보드에 복사되었습니다!
STRUCTURE 필드에는 구조 오브젝트가 포함되며 기본 JCo 및 ABAP 런타임에 ABAP 구조 레코드로 저장됩니다. 이는 ABAP 유형 u 또는 v 에 해당합니다. STRUCTURE 필드의 값은 Java에서 org.fusesource.camel.component.sap.model.rfc.Structure 와 함께 구조 오브젝트로 표시됩니다.
55.6.3.8. 테이블 필드 유형 링크 복사링크가 클립보드에 복사되었습니다!
CloudEvent 필드에 는 테이블 오브젝트가 포함되어 있으며 기본 JCo 및 ABAP 런타임에 ABAP 내부 테이블로 저장됩니다. 이는 ABAP 유형 h 에 해당합니다. 필드 값은 org.fusesource.camel.component.sap.model.rfc.Table 이 있는 테이블 오브젝트로 Java로 표시됩니다.
55.6.3.9. 테이블 오브젝트 링크 복사링크가 클립보드에 복사되었습니다!
테이블 개체는 동일한 구조를 가진 구조 개체의 행을 포함하는 동종 목록 데이터 구조입니다.A table object is a homogeneous list data structure containing rows of structure objects with the same structure. 이 인터페이스는 java.util.List 및 org.eclipse.emf.ecore.EObject 인터페이스를 모두 확장합니다.
테이블 개체의 행 목록은 목록 인터페이스에 정의된 표준 방법을 사용하여 액세스하고 관리됩니다. 또한 테이블 인터페이스는 생성 하 고 행 목록에 구조 개체를 추가 하는 두 개의 팩터리 메서드를 제공 합니다.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 문서를 참조하십시오.
잘못된 형식의 행 구조 값을 추가하거나 설정하려고 하면 예외가 발생합니다.