• Basic SAP Data Types


    Basic SAP Data Types

    6 out of 11 rated this helpful Rate this topic

    The parameter types that the Microsoft BizTalk Adapter 3.0 for mySAP Business Suite supports are governed by the:

    • ABAP data types that SAP supports

    • Database data types that SAP supports

    This section presents a mapping between the ABAP and database data types, and their corresponding .NET and XML schema types.

    Cc185537.note(en-US,BTS.10).gifNote
    The information in this section applies to RFCs, tRFCs, and BAPIs. SAP data types are always represented as strings (xsd:string) in IDOCs. This is to support the BizTalk Server flat file parser.

    The Microsoft BizTalk Adapter 3.0 for mySAP Business Suite supports safe typing for some ABAP data types. When safe typing is enabled, these data types are represented as strings. You configure safe typing by setting the EnableSafeTyping binding property. Safe typing is disabled by default. For more information about the SAP adapter binding properties, see Working with BizTalk Adapter 3.0 for mySAP Business Suite Binding Properties.

    The following table shows how the ABAP data types are surfaced when safe typing is not enabled. (EnableSafeTyping is false). Data types that are surfaced differently when safe typing is enabled are marked with an asterisk (*).

     

    ABAP Data TypeRFC TypeXSD type.NET typeFormat string

    I (Integer)

    RFC_INT

    xsd:int

    Int32

    -

    Internal (RFC_INT1)

    RFC_INT1

    xsd:unsignedByte

    Byte

    -

    Internal (RFC_INT2)

    RFC_INT2

    xsd:short

    Int16

    -

    F (Float)

    RFC_FLOAT

    xsd:double

    Double

    -

    P (BCD number)

    RFC_BCD

    xsd:decimal if length <= 28
    xsd:string if length > 28

    Decimal
    String

    Decimal number. with 0 decimal places
    Decimal number. with >0 decimal places

    C (Character)

    RFC_CHAR

    xsd:string

    String

    -

    D (Date: YYYYMMDD)*

    RFC_DATE

    xsd:dateTime

    DateTime

    Internally, the adapter deserializes the value into a DateTime object. It then invokes theDateTime.ToUniversalTime method to convert the value of this object to UTC. Finally the date component (DateTime.Date) is used to create the value that is sent to the SAP system. The SAP system treats this date value as local time.

    You should specify date values as UTC to avoid conversion.

    • For xsd:dateTime, the following pattern is recommended: "(dddd-dd-dd)T(00:00:00)(.*)Z".

    • For DateTime objects set DateTime.Kind to DateTimeKind.Utc.

    T (Time: HHMMSS)*

    RFC_TIME

    xsd:dateTime

    DateTime

    Internally, the adapter deserializes the value into a DateTime object. It then invokes theDateTime.ToUniversalTime method to convert the value of this object to UTC. Finally the time component (DateTime.Time) is used to create the value that is sent to the SAP system. The SAP system treats this time value as local time.

    You should specify time values as UTC to avoid conversion.

    • For xsd:dateTime, the following pattern is recommended: "(0001-01-01)T(dd:dd:dd)(.*)".

    • For DateTime objects set DateTime.Kind to DateTimeKind.Utc.

    For example, if your local time is 9:15 am, express this as "(001-01-01)T(09:15:00)Z"

    N (Numeric string)*

    RFC_NUM

    xsd:int if lenrth <= 9
    xsd:long if length > 9 and <= 19
    xsd:string if length > 19

    Int32
    long
    String

    -

    X (Byte)

    RFC_BYTE

    xsd:base64Binary

    Byte[]

    -

    STRING

    RFC_STRING

    xsd:string

    String

    -

    XSTRING

    RFC_BYTE

    xsd:base64Binary

    Byte[]

    -

    *Indicates that the data type is surfaced differently when safe typing is enabled.

    Safe Typing Enabled

    The following table shows the ABAP data types that are surfaced differently when safe typing is enabled (the EnableSafeTyping binding property is true).

     

    ABAP Data TypeRFC TypeXSD type.NET typeFormat string

    D (Date: YYYYMMDD)

    RFC_DATE

    xsd:string

    String

    SAP date format: YYYYMMDD.

    Characters are allowed for date digits, so the value is essentially an eight character string

    T (Time: HHMMSS)

    RFC_TIME

    xsd:string

    String

    SAP time format: HHMMSS.

    Characters are allowed for time digits, so the value is essentially a six character string

    N (Numeric string)

    RFC_NUM

    xsd:string

    String

    An n character string; where n = length of the numc field.

    ABAP data types that are not in this table are surfaced in the same way as when safe typing is not enabled.

    Support for Date and Time Fields

    When safe typing is not enabled, ABAP Date (D) and Time (T) types are surfaced as xsd:dateTime; however, the pattern facet surfaced for the Date and Time types is different.

    • The pattern facet for Date is: (dddd-dd-dd)T(00:00:00)(.*)

      For example, July 7, 2007 (2007-07-07) is represented as: 

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

    • The pattern facet for Time is: (0001-01-01)T(dd:dd:dd)(.*)

      For example, 18:30:30 (6:30 pm and 30 seconds) is represented as: 

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

    How does the Adapter Represent Minimum and Maximum Time Values on Inbound Messages (from SAP)?

    The SAP adapter uses the following guidelines when it receives time values from the SAP system:

    • The adapter treats 000000 (hhmmss) and 240000 (hhmmss) as 0 hours, 0 mins, and 0 seconds.

    The way in which the Microsoft BizTalk Adapter 3.0 for mySAP Business Suite surfaces database data types also depends on whether safe typing is enabled. The following table shows how the adapter surfaces database data types when safe typing is not enabled (the EnableSafeTyping binding property is false). Data types that are surfaced differently when safe typing is enabled are marked with an asterisk (*).

     

    Database Data TypeRFC TypeXSD.NET Type

    ACCP (Posting Period)*

    RFC_NUM

    xsd:int

    Int32

    CHAR

    RFC_CHAR

    xsd:string

    String

    CLNT (Client)

    RFC_CHAR

    xsd:string

    String

    CURR (Currency field)

    RFC_BCD

    xsd:decimal

    Cc185537.note(en-US,BTS.10).gifNote
    The SAP adapter rounds off the decimal values based on the definition of the DECIMAL parameter. For example, if a DECIMAL parameter can accept up to five digits after the decimal point, a value such as 4.000028 is rounded off to 4.00003.

    Decimal

    CUKY (Currency Key)

    RFC_CHAR

    xsd:string

    String

    DATS (Date field)*

    RFC_DATE

    xsd:dateTime

    Internally, the adapter deserializes the value into a DateTime object. It then invokes theDateTime.ToUniversalTime method to convert the value of this object to UTC. Finally the date component (DateTime.Date) is used to create the value that is sent to the SAP system. The SAP system treats this date value as local time.

    You should specify date values as UTC to avoid conversion. The following pattern is recommended: "(dddd-dd-dd)T(00:00:00)(.*)Z".

    DateTime

    You should specify date values as UTC (DateTime.Kind = DateTimeKind.Utc) to avoid conversion.

    DEC (Amount)

    RFC_BCD

    xsd:decimal

    Cc185537.note(en-US,BTS.10).gifNote
    The SAP adapter rounds off the decimal values based on the definition of the DECIMAL parameter. For example, if a DECIMAL parameter can accept up to five digits after the decimal point, a value such as 4.000028 is rounded off to 4.00003.

    Decimal

    FLTP (Floating point)

    RFC_FLOAT

    xsd:double

    Double

    INT1

    RFC_INT1

    xsd:unsignedbyte

    Byte

    INT2

    RFC_INT2

    xsd:short

    Int16

    INT4

    RFC_INT

    xsd:int

    Int32

    LANG (Language Key)

    RFC_CHAR

    xsd:string

    String

    LCHR

    RFC_STRING

    xsd:string

    String

    LRAW (long byte seq)

    RFC_BYTE

    xsd:base64binary

    Byte[]

    NUMC*

    RFC_NUM

    xsd:int
    xsd:long
    xsd:string

    Int32 if length <=9
    Int64 if length >9 and <=19
    String if length > 19

    PREC (Accuracy)

    RFC_INT2

    xsd:short

    Int16

    QUAN (Quantity)

    RFC_BCD

    xsd:decimal

    Cc185537.note(en-US,BTS.10).gifNote
    The SAP adapter rounds off the decimal values based on the definition of the DECIMAL parameter. For example, if a DECIMAL parameter can accept up to five digits after the decimal point, a value such as 4.000028 is rounded off to 4.00003.

    Decimal

    RAW (byte sequence)

    RFC_BYTE

    xsd:base64binary

    Byte[]

    RAWSTRING (variable length)

    RFC_BYTE

    xsd:base64binary

    Byte[]

    STRING (variable length)

    RFC_STRING

    xsd:string

    String

    TIMS (Time field)*

    RFC_TIME

    xsd:datetime

    Internally, the adapter deserializes the value into a DateTime object. It then invokes theDateTime.ToUniversalTime method to convert the value of this object to UTC. Finally the time component (DateTime.Time) is used to create the value that is sent to the SAP system. The SAP system treats this time value as local time.

    You should specify time values as UTC to avoid conversion. The following pattern is recommended: "(0001-01-01)T(dd:dd:dd)(.*)Z".

    For example, if your local time is 9:15 am, express this as "(001-01-01)T(09:15:00)Z"

    DateTime

    You should specify time values as UTC (DateTime.Kind = DateTimeKind.Utc) to avoid conversion.

    UNIT (Unit for Qty)

    RFC_CHAR

    xsd:string

    String

    [Unsupported]

    --

    --

    String

    *Indicates that the adapter surfaces the data type differently when safe typing is enabled.

    Safe Typing Enabled

    The following table shows the database data types that are surfaced differently when safe typing is enabled (the EnableSafeTyping binding property is true).

     

     Database Data TypeRFC TypeXSD.NET typeString Value Format

    ACCP (Posting Period)

    RFC_NUM

    xsd:string

    String

    Character string

    NUMC

    RFC_NUM

    xsd:string

    String

    Character string

    DATS (Date field)

    RFC_DATE

    xsd:string

    String

    YYYYMMDD

    TIMS (Time field)

    RFC_TIME

    xsd:string

    String

    HHMMSS

    Data types that are not in this table are surfaced in the same way as when safe typing is not enabled.

    The SAP adapter supports the following XSD facets.

     

    RFC TypeXSD Facet (EnableSafeTyping = false)XSD Facet (EnableSafeTyping = true)

    RFC_BCD

    XSD pattern facet

    Zero decimal places: "([\-]{0,1})(([0-9]{1," + digitsBeforeDecimal + "}))"

    One or more decimal places: "([\-]{0,1})(([0-9]{0," + digitsBeforeDecimal + "}\.[0-9]{0," + digitsAfterDecimal + "})|([0-9]{1," + digitsBeforeDecimal + "}))"

    same

    RFC_NUM

    XSD totalDigits facet if length <=19

    XSD pattern facet if length > 19

    XSD maxLength facet (depends on the length of the value on SAP)

    RFC_DATE

    XSD pattern facet

    "(dddd-dd-dd)T(00:00:00)(.*)"

    Pattern contains time 00:00:00 to be compatible with xsd:datetime

    XSD maxLength facet = 8

    RFC_TIME

    XSD pattern facet

    "(0001-01-01)T(dd:dd:dd)(.*)"

    Pattern contains date 0001-01-01 to be compatible with xsd:datetime

    XSD maxLength facet = 6

    RFC_CHAR

    XSD maxLength facet

    same

  • 相关阅读:
    关于float与double
    【编程实践】母牛生小牛
    wlan的QOS配置
    C语言itoa函数和atoi 函数
    类似于QQ的简单的聊天代码
    多线程吃饺子练习
    线程练习
    接口练习
    电视练习
    5.22
  • 原文地址:https://www.cnblogs.com/hanmos/p/3441133.html
Copyright © 2020-2023  润新知