다음을 통해 공유


기본 SAP 데이터 형식

MySAP Business Suite용 Microsoft BizTalk 어댑터가 지원하는 매개 변수 형식은 다음으로 제어됩니다.

  • SAP에서 지원하는 ABAP 데이터 형식

  • SAP에서 지원하는 데이터베이스 데이터 형식

    이 섹션에서는 ABAP 및 데이터베이스 데이터 형식과 해당 .NET 및 XML 스키마 형식 간의 매핑을 제공합니다.

참고

이 섹션의 정보는 RFC, tRFC 및 BAPI에 적용됩니다. SAP 데이터 형식은 항상 IDOC에서 문자열(xsd:string)으로 표시됩니다. 이는 BizTalk Server 플랫 파일 파서 지원입니다.

지원되는 ABAP 데이터 형식

mySAP Business Suite용 Microsoft BizTalk 어댑터는 일부 ABAP 데이터 형식에 대해 안전한 입력을 지원합니다. 안전한 입력을 사용하도록 설정하면 이러한 데이터 형식이 문자열로 표시됩니다. EnableSafeTyping 바인딩 속성을 설정하여 안전한 입력을 구성합니다. 안전 입력은 기본적으로 사용하지 않도록 설정됩니다. SAP 어댑터 바인딩 속성에 대한 자세한 내용은 mySAP Business Suite 바인딩 속성에 대한 BizTalk Adapter에 대해 읽기를 참조하세요.

다음 표에서는 안전한 입력을 사용하지 않을 때 ABAP 데이터 형식이 표시되는 방법을 보여 줍니다. (EnableSafeTyping은 false임). 안전 입력을 사용할 때 다르게 표시되는 데이터 형식은 별표(*)로 표시됩니다.

ABAP 데이터 형식 RFC 유형 XSD 형식 .NET 형식 형식 문자열
I(정수) RFC_INT xsd:int Int32 -
내부(RFC_INT1) RFC_INT1 xsd:unsignedByte Byte -
내부(RFC_INT2) RFC_INT2 xsd:short Int16 -
F(부동) RFC_FLOAT xsd:double Double -
P(BCD 번호) RFC_BCD xsd:decimal if length <= 28
xsd:string(길이 > 가 28인 경우)
Decimal
String
10진수입니다. 소수점이 0인 경우
10진수입니다. 소수 >점이 0인 경우
C(문자) RFC_CHAR xsd:string 문자열 -
D(날짜: YYYYMMDD)* RFC_DATE xsd:dateTime DateTime 내부적으로 어댑터는 값을 DateTime 개체로 역직렬화합니다. 그런 다음 DateTime.ToUniversalTime 메서드를 호출하여 이 개체의 값을 UTC로 변환합니다. 마지막으로 날짜 구성 요소(DateTime.Date)는 SAP 시스템으로 전송되는 값을 만드는 데 사용됩니다. SAP 시스템은 이 날짜 값을 현지 시간으로 처리합니다.

변환을 방지하려면 날짜 값을 UTC로 지정해야 합니다.

- xsd:dateTime의 경우 "(\d\d\d\d\d\d\d-\d\d)T(00:00:00)(.*)Z" 패턴을 사용하는 것이 좋습니다.
- DateTime 개체의 경우 DateTime.KindDateTimeKind.Utc로 설정합니다.
T(시간: HHMMSS)* RFC_TIME xsd:dateTime DateTime 내부적으로 어댑터는 값을 DateTime 개체로 역직렬화합니다. 그런 다음 DateTime.ToUniversalTime 메서드를 호출하여 이 개체의 값을 UTC로 변환합니다. 마지막으로 시간 구성 요소(DateTime.Time)는 SAP 시스템으로 전송되는 값을 만드는 데 사용됩니다. SAP 시스템은 이 시간 값을 현지 시간으로 처리합니다.

변환을 방지하려면 시간 값을 UTC로 지정해야 합니다.

- xsd:dateTime의 경우 "(0001-01-01)T(\d\d:\d\d:\d\d)(.*)"라는 패턴을 사용하는 것이 좋습니다.
- DateTime 개체의 경우 DateTime.KindDateTimeKind.Utc로 설정합니다.

예를 들어 현지 시간이 오전 9시 15분인 경우 이를 "(001-01-01)T(09:15:00)Z"로 표현합니다.
N(숫자 문자열)* RFC_NUM xsd:int if lenrth <= 9
xsd:long이면 길이 > 9 및 <= 19
xsd:string(길이 > 가 19인 경우)
Int32
long
문자열
-
X(바이트) RFC_BYTE xsd:base64Binary Byte[] -
STRING RFC_STRING xsd:string 문자열 -
XSTRING RFC_BYTE xsd:base64Binary Byte[] -

*안전한 입력을 사용할 때 데이터 형식이 다르게 표시됨을 나타냅니다.

안전한 입력 사용

다음 표에서는 안전한 입력을 사용할 때 다르게 표시되는 ABAP 데이터 형식을 보여 줍니다( EnableSafeTyping 바인딩 속성은 true임).

ABAP 데이터 형식 RFC 형식 XSD 형식 .NET 형식 형식 문자열
D(날짜: YYYYMMDD) RFC_DATE xsd:string 문자열 SAP 날짜 형식: YYYYMMDD.

날짜 자릿수에 문자가 허용되므로 값은 기본적으로 8자 문자열입니다.
T(시간: HHMMSS) RFC_TIME xsd:string 문자열 SAP 시간 형식: HHMMSS.

문자는 시간 자릿수에 허용되므로 값은 기본적으로 6자 문자열입니다.
N(숫자 문자열) RFC_NUM xsd:string 문자열 n 문자 문자열; where n = numc 필드의 길이입니다.

이 테이블에 없는 ABAP 데이터 형식은 안전한 입력을 사용하도록 설정하지 않은 경우와 동일한 방식으로 표시됩니다.

날짜 및 시간 필드에 대한 지원

안전한 입력을 사용하도록 설정하지 않으면 ABAP 날짜(D) 및 시간(T) 형식이 xsd:dateTime으로 표시됩니다. 그러나 날짜 및 시간 형식에 대해 표시되는 패턴 패싯은 다릅니다.

  • Date의 패턴 패싯은 다음과 같습니다. (\d\d\d\d-\d\d-\d\d)T(00:00:00)(.*)

    예를 들어 2007년 7월 7일(2007-07-07)은 다음과 같이 표시됩니다.

    (2007-07-07)T(00:00:00).

  • 시간의 패턴 패싯은 다음과 같습니다. (0001-01-01)T(\d\d:\d\d:\d\d)(.*)

    예를 들어 18:30:30(오후 6시 30분 및 30초)은 다음과 같이 표시됩니다.

    (0001-01-01)T(18:30:30).

어댑터는 SAP에서 온 인바운드 메시지의 최소 및 최대 시간 값을 어떻게 나타내나요?

SAP 어댑터는 SAP 시스템에서 시간 값을 받을 때 다음 지침을 사용합니다.

  • 어댑터는 000000(hhmmss) 및 240000(hhmmss)을 0시간, 0분 및 0초로 처리합니다.

지원되는 데이터베이스 데이터 형식

mySAP Business Suite용 Microsoft BizTalk 어댑터가 데이터베이스 데이터 형식을 표시하는 방법도 안전한 입력을 사용할 수 있는지 여부에 따라 달라집니다. 다음 표에서는 안전한 입력을 사용하지 않을 때 어댑터가 데이터베이스 데이터 형식을 표시하는 방법을 보여 줍니다( EnableSafeTyping 바인딩 속성은 false임). 안전 입력을 사용할 때 다르게 표시되는 데이터 형식은 별표(*)로 표시됩니다.

데이터베이스 데이터 형식 RFC 형식 XSD .NET 형식
ACCP(게시 기간)* RFC_NUM xsd:int Int32
CHAR RFC_CHAR xsd:string 문자열
CLNT(클라이언트) RFC_CHAR xsd:string 문자열
CURR(통화 필드) RFC_BCD xsd:decimal 참고: SAP 어댑터는 DECIMAL 매개 변수의 정의에 따라 10진수 값을 반올림합니다. 예를 들어 DECIMAL 매개 변수가 소수점 이후 최대 5자리를 허용할 수 있는 경우 4.0000028과 같은 값은 4.000003으로 반올림됩니다. Decimal
CUKY(통화 키) RFC_CHAR xsd:string 문자열
DATS(날짜 필드)* RFC_DATE xsd:dateTime

내부적으로 어댑터는 값을 DateTime 개체로 역직렬화합니다. 그런 다음 DateTime.ToUniversalTime 메서드를 호출하여 이 개체의 값을 UTC로 변환합니다. 마지막으로 날짜 구성 요소(DateTime.Date)는 SAP 시스템으로 전송되는 값을 만드는 데 사용됩니다. SAP 시스템은 이 날짜 값을 현지 시간으로 처리합니다.

변환을 방지하려면 날짜 값을 UTC로 지정해야 합니다. "(\d\d\d\d\d\d\d-\d\d\d)T(00:00:00)(.*)Z"와 같은 패턴이 권장됩니다.
DateTime

변환을 방지하려면 날짜 값을 UTC(DateTime.Kind = DateTimeKind.Utc)로 지정해야 합니다.
DEC(금액) RFC_BCD xsd:decimal 참고: SAP 어댑터는 DECIMAL 매개 변수의 정의에 따라 10진수 값을 반올림합니다. 예를 들어 DECIMAL 매개 변수가 소수점 이후 최대 5자리를 허용할 수 있는 경우 4.0000028과 같은 값은 4.000003으로 반올림됩니다. Decimal
FLTP(부동 소수점) RFC_FLOAT xsd:double Double
INT1 RFC_INT1 xsd:unsignedbyte Byte
INT2 RFC_INT2 xsd:short Int16
INT4 RFC_INT xsd:int Int32
LANG(언어 키) RFC_CHAR xsd:string String
LCHR RFC_STRING xsd:string 문자열
LRAW(long byte seq) RFC_BYTE xsd:base64binary Byte[]
NUMC* RFC_NUM xsd:int
xsd:long
xsd:string
Int32 if length <=9
Int64(길이 >9 및 <=19인 경우)
문자열 if length > 19
PREC(정확도) RFC_INT2 xsd:short Int16
QUAN(수량) RFC_BCD xsd:decimal 참고: SAP 어댑터는 DECIMAL 매개 변수의 정의에 따라 10진수 값을 반올림합니다. 예를 들어 DECIMAL 매개 변수가 소수점 이후 최대 5자리를 허용할 수 있는 경우 4.000028과 같은 값은 4.000003으로 반올림됩니다. Decimal
RAW(바이트 시퀀스) RFC_BYTE xsd:base64binary Byte[]
RAWSTRING(가변 길이) RFC_BYTE xsd:base64binary Byte[]
STRING(가변 길이) RFC_STRING xsd:string 문자열
TIMS(시간 필드)* RFC_TIME xsd:datetime

내부적으로 어댑터는 값을 DateTime 개체로 역직렬화합니다. 그런 다음 DateTime.ToUniversalTime 메서드를 호출하여 이 개체의 값을 UTC로 변환합니다. 마지막으로 시간 구성 요소(DateTime.Time)는 SAP 시스템으로 전송되는 값을 만드는 데 사용됩니다. SAP 시스템은 이 시간 값을 현지 시간으로 처리합니다.

변환을 방지하려면 시간 값을 UTC로 지정해야 합니다. 다음 패턴을 사용하는 것이 좋습니다. "(0001-01-01)T(\d\d:\d\d:\d\d)(.*)Z".

예를 들어 현지 시간이 오전 9시 15분인 경우 이를 "(001-01-01)T(09:15:00)Z"로 표현합니다.
DateTime

변환을 방지하려면 시간 값을 UTC(DateTime.Kind = DateTimeKind.Utc)로 지정해야 합니다.
UNIT(Qty 단위) RFC_CHAR xsd:string 문자열
[지원되지 않음] -- -- 문자열

*안전한 입력을 사용할 때 어댑터가 데이터 형식을 다르게 표시한다는 것을 나타냅니다.

안전한 입력 사용

다음 표에서는 안전한 입력을 사용할 때 다르게 표시되는 데이터베이스 데이터 형식을 보여 줍니다( EnableSafeTyping 바인딩 속성은 true임).

데이터베이스 데이터 형식 RFC 유형 XSD .NET 형식 문자열 값 형식
ACCP(게시 기간) RFC_NUM xsd:string String 문자열
NUMC RFC_NUM xsd:string 문자열 문자열
DATS(날짜 필드) RFC_DATE xsd:string 문자열 YYYYMMDD
TIMS(시간 필드) RFC_TIME xsd:string 문자열 HHMMSS

이 테이블에 없는 데이터 형식은 안전한 입력을 사용하도록 설정하지 않은 경우와 동일한 방식으로 표시됩니다.

지원되는 XSD 패싯

SAP 어댑터는 다음 XSD 패싯을 지원합니다.

RFC 유형 XSD 패싯(EnableSafeTyping = false) XSD 패싯(EnableSafeTyping = true)
RFC_BCD XSD 패턴 패싯

10진수 위치:"([\\-]{0,1})(([0-9]{1,"+ digitsBeforeDecimal +"}))"

하나 이상의 10진수 위치:"([\\-]{0,1})(([0-9]{0," + digitsBeforeDecimal +``"}\\.[0-9]{0,"``+ digitsAfterDecimal +``"})&#124;([0-9]{1,"``+ digitsBeforeDecimal +``"}))"
동일
RFC_NUM XSD totalDigits 패싯 if length <=19

길이 > 가 19인 경우 XSD 패턴 패싯
XSD maxLength 패싯(SAP의 값 길이에 따라 다름)
RFC_DATE XSD 패턴 패싯

"(\d\d\d\d-\d\d-\d\d)T(00:00:00)(.*)"

패턴에 호환되는 시간 00:00:00이 포함됩니다. xsd:datetime
XSD maxLength 패싯 = 8
RFC_TIME XSD 패턴 패싯

"(0001-01-01)T(\d\d:\d\d:\d\d)(.*)"

패턴에 호환되는 날짜 0001-01-01이 포함됩니다. xsd:datetime
XSD maxLength 패싯 = 6
RFC_CHAR XSD maxLength 패싯 동일

지원되지 않는 데이터 형식

SAP 어댑터는 다음 데이터 형식을 지원하지 않습니다.

  • ITAB II(계층 구조) 테이블 형식