Teilen über


Grundlegende SAP-Datentypen

Die Parametertypen, die vom Microsoft BizTalk-Adapter für mySAP Business Suite unterstützt werden, werden wie folgt geregelt:

  • ABAP-Datentypen, die VON SAP unterstützt werden

  • Datenbankdatentypen, die VON SAP unterstützt werden

    In diesem Abschnitt wird eine Zuordnung zwischen den ABAP- und Datenbankdatentypen und den entsprechenden .NET- und XML-Schematypen vorgestellt.

Hinweis

Die Informationen in diesem Abschnitt gelten für RFCs, tRFCs und BAPIs. SAP-Datentypen werden in IDOCs immer als Zeichenfolgen (xsd:string) dargestellt. Dies ist, um den BizTalk Server Flatfile-Parser zu unterstützen.

Unterstützte ABAP-Datentypen

Der Microsoft BizTalk-Adapter für mySAP Business Suite unterstützt die sichere Eingabe für einige ABAP-Datentypen. Wenn die sichere Eingabe aktiviert ist, werden diese Datentypen als Zeichenfolgen dargestellt. Sie konfigurieren die sichere Eingabe, indem Sie die Bindungseigenschaft EnableSafeTyping festlegen. Die sichere Eingabe ist standardmäßig deaktiviert. Weitere Informationen zu den Eigenschaften der SAP-Adapterbindung finden Sie unter Informationen zu Den Bindungseigenschaften des BizTalk-Adapters für mySAP Business Suite.

Die folgende Tabelle zeigt, wie die ABAP-Datentypen angezeigt werden, wenn die sichere Eingabe nicht aktiviert ist. (EnableSafeTyping ist false). Datentypen, die unterschiedlich angezeigt werden, wenn die sichere Eingabe aktiviert ist, werden mit einem Sternchen (*) gekennzeichnet.

ABAP-Datentyp RFC-Typ XSD-Typ .NET-Typ Formatzeichenfolge
I (Integer) RFC_INT xsd:int Int32 -
Intern (RFC_INT1) RFC_INT1 xsd:unsignedByte Byte -
Intern (RFC_INT2) RFC_INT2 xsd:short Int16 -
F (Float) RFC_FLOAT xsd:double Double -
P (BCD-Nummer) RFC_BCD xsd:decimal if length <= 28
xsd:string bei Länge > 28
Decimal
String
Dezimalzahl. mit 0 Dezimalstellen
Dezimalzahl. mit >0 Dezimalstellen
C (Zeichen) RFC_CHAR xsd:string String -
D (Datum: JJJJMMDD)* RFC_DATE xsd:dateTime Datetime Intern deserialisiert der Adapter den Wert in ein DateTime-Objekt . Anschließend wird die DateTime.ToUniversalTime-Methode aufgerufen, um den Wert dieses Objekts in UTC zu konvertieren. Schließlich wird die Date-Komponente (DateTime.Date) verwendet, um den Wert zu erstellen, der an das SAP-System gesendet wird. Das SAP-System behandelt diesen Datumswert als Ortszeit.

Sie sollten Datumswerte als UTC angeben, um eine Konvertierung zu vermeiden.

– Für xsd:dateTime wird das folgende Muster empfohlen: "(\d\d\d\d-\d\d-\d\d)T(00:00:00:00)(.*)Z".
– Legen Sie Für DateTime-ObjekteDateTime.Kind auf DateTimeKind.Utc fest.
T (Zeit: HHMMSS)* RFC_TIME xsd:dateTime Datetime Intern deserialisiert der Adapter den Wert in ein DateTime-Objekt . Anschließend wird die DateTime.ToUniversalTime-Methode aufgerufen, um den Wert dieses Objekts in UTC zu konvertieren. Schließlich wird die Zeitkomponente (DateTime.Time) verwendet, um den Wert zu erstellen, der an das SAP-System gesendet wird. Das SAP-System behandelt diesen Zeitwert als Ortszeit.

Sie sollten Zeitwerte als UTC angeben, um eine Konvertierung zu vermeiden.

– Für xsd:dateTime wird das folgende Muster empfohlen: "(0001-01-01)T(\d:\d\d:\d:\d:\d\d)(.*)".
– Legen Sie Für DateTime-ObjekteDateTime.Kind auf DateTimeKind.Utc fest.

Wenn Ihre Ortszeit beispielsweise 9:15 Uhr ist, geben Sie dies als "(001-01-01)T(09:15:00)Z" aus.
N (Numerische Zeichenfolge)* RFC_NUM xsd:int if lenrth <= 9
xsd:long, wenn Länge > 9 und <= 19
xsd:string, wenn Länge > 19
Int32
long
String
-
X (Byte) RFC_BYTE xsd:base64Binary Byte[] -
STRING RFC_STRING xsd:string String -
XSTRING RFC_BYTE xsd:base64Binary Byte[] -

*Gibt an, dass der Datentyp anders angezeigt wird, wenn die sichere Eingabe aktiviert ist.

Sichere Eingabe aktiviert

Die folgende Tabelle zeigt die ABAP-Datentypen, die unterschiedlich angezeigt werden, wenn die sichere Eingabe aktiviert ist (die EnableSafeTyping-Bindungseigenschaft ist true).

ABAP-Datentyp RFC-Typ XSD-Typ .NET-Typ Formatzeichenfolge
D (Datum: JJJJMMD) RFC_DATE xsd:string String SAP-Datumsformat: JJJJMMD.

Zeichen sind für Datumsziffern zulässig, sodass der Wert im Wesentlichen eine achtstellige Zeichenfolge ist.
T (Zeit: HHMMSS) RFC_TIME xsd:string String SAP-Zeitformat: HHMMSS.

Zeichen sind für Zeitziffern zulässig, sodass der Wert im Wesentlichen eine sechsstellige Zeichenfolge ist.
N (Numerische Zeichenfolge) RFC_NUM xsd:string String Eine Zeichenfolge n; wobei n = Länge des numc-Felds.

ABAP-Datentypen, die nicht in dieser Tabelle enthalten sind, werden auf die gleiche Weise angezeigt, wie wenn die sichere Eingabe nicht aktiviert ist.

Unterstützung für Datums- und Uhrzeitfelder

Wenn die sichere Eingabe nicht aktiviert ist, werden die ABAP-Typen Date (D) und Time (T) als xsd:dateTime angezeigt. Das Musterfacet, das für die Datums- und Uhrzeittypen angezeigt wird, unterscheidet sich jedoch.

  • Das Musterfacet für Date ist: (\d\d\d\d-\d\d-\d\d)T(00:00:00)(.*)

    Beispielsweise wird der 7. Juli 2007 (2007-07-07) wie folgt dargestellt:

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

  • Das Musterfacet für Zeit ist: (0001-01-01)T(\d\d:\d\d:\d\d)(.*)

    Beispielsweise wird 18:30:30 (18:30 Uhr und 30 Sekunden) wie folgt dargestellt:

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

Wie stellt der Adapter minimale und maximale Zeitwerte für eingehende Nachrichten (aus SAP) dar?

Der SAP-Adapter verwendet die folgenden Richtlinien, wenn er Zeitwerte vom SAP-System empfängt:

  • Der Adapter behandelt 000000 (hhmmss) und 240000 (hhmmss) als 0 Stunden, 0 Minuten und 0 Sekunden.

Unterstützte Datenbankdatentypen

Die Art und Weise, in der der Microsoft BizTalk-Adapter für mySAP Business Suite Datenbankdatentypen anzeigt, hängt auch davon ab, ob die sichere Eingabe aktiviert ist. Die folgende Tabelle zeigt, wie der Adapter Datenbankdatentypen behandelt, wenn die sichere Eingabe nicht aktiviert ist (die EnableSafeTyping-Bindungseigenschaft ist false). Datentypen, die unterschiedlich angezeigt werden, wenn die sichere Eingabe aktiviert ist, werden mit einem Sternchen (*) gekennzeichnet.

Datenbankdatentyp RFC-Typ XSD .NET-Typ
ACCP (Buchungszeitraum)* RFC_NUM xsd:int Int32
CHAR RFC_CHAR xsd:string String
CLNT (Client) RFC_CHAR xsd:string String
CURR (Währungsfeld) RFC_BCD xsd:decimal Hinweis: Der SAP-Adapter rundet die Dezimalwerte basierend auf der Definition des DECIMAL-Parameters ab. Wenn ein DECIMAL-Parameter beispielsweise bis zu fünf Ziffern nach dem Dezimalpunkt akzeptieren kann, wird ein Wert wie 4.000028 auf 4.00003 abgerundet. Decimal
CUKY (Währungsschlüssel) RFC_CHAR xsd:string String
DATS (Datumsfeld)* RFC_DATE xsd:dateTime

Intern deserialisiert der Adapter den Wert in ein DateTime-Objekt . Anschließend wird die DateTime.ToUniversalTime-Methode aufgerufen, um den Wert dieses Objekts in UTC zu konvertieren. Schließlich wird die Date-Komponente (DateTime.Date) verwendet, um den Wert zu erstellen, der an das SAP-System gesendet wird. Das SAP-System behandelt diesen Datumswert als Ortszeit.

Sie sollten Datumswerte als UTC angeben, um eine Konvertierung zu vermeiden. Das folgende Muster wird empfohlen: "(\d\d\d-\d\d\d)T(00:00:00:00)(.*)Z".
Datetime

Sie sollten Datumswerte als UTC (DateTime.Kind = DateTimeKind.Utc) angeben, um eine Konvertierung zu vermeiden.
DEC (Betrag) RFC_BCD xsd:decimal Hinweis: Der SAP-Adapter rundet die Dezimalwerte basierend auf der Definition des DECIMAL-Parameters ab. Wenn ein DECIMAL-Parameter beispielsweise bis zu fünf Ziffern nach dem Dezimalpunkt akzeptieren kann, wird ein Wert wie 4.000028 auf 4.00003 abgerundet. Decimal
FLTP (Gleitkomma) 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, wenn länge <=9
Int64, wenn Länge >9 und <=19
Zeichenfolge bei Länge > 19
PREC (Genauigkeit) RFC_INT2 xsd:short Int16
QUAN (Menge) RFC_BCD xsd:decimal Hinweis: Der SAP-Adapter rundet die Dezimalwerte basierend auf der Definition des DECIMAL-Parameters ab. Wenn beispielsweise ein DECIMAL-Parameter bis zu fünf Ziffern nach dem Dezimaltrennzeichen akzeptieren kann, wird ein Wert wie 4,000028 auf 4,00003 abgerundet. Decimal
RAW (Bytesequenz) RFC_BYTE xsd:base64binary Byte[]
RAWSTRING (variable Länge) RFC_BYTE xsd:base64binary Byte[]
STRING (Variable Length) RFC_STRING xsd:string String
TIMS (Zeitfeld)* RFC_TIME xsd:datetime

Intern deserialisiert der Adapter den Wert in ein DateTime-Objekt . Anschließend wird die DateTime.ToUniversalTime-Methode aufgerufen, um den Wert dieses Objekts in UTC zu konvertieren. Schließlich wird die Zeitkomponente (DateTime.Time) verwendet, um den Wert zu erstellen, der an das SAP-System gesendet wird. Das SAP-System behandelt diesen Zeitwert als Ortszeit.

Sie sollten Zeitwerte als UTC angeben, um eine Konvertierung zu vermeiden. Das folgende Muster wird empfohlen: "(0001-01-01)T(\d\d:\d:\d\d:\d\d)(.*)Z".

Wenn Ihre Ortszeit beispielsweise 9:15 Uhr ist, geben Sie dies als "(001-01-01)T(09:15:00)Z" aus.
Datetime

Sie sollten Zeitwerte als UTC (DateTime.Kind = DateTimeKind.Utc) angeben, um eine Konvertierung zu vermeiden.
EINHEIT (Einheit für Qty) RFC_CHAR xsd:string String
[Nicht unterstützt] -- -- String

*Gibt an, dass der Adapter den Datentyp anders darstellt, wenn die sichere Eingabe aktiviert ist.

Sichere Eingabe aktiviert

Die folgende Tabelle zeigt die Datenbankdatentypen, die unterschiedlich angezeigt werden, wenn die sichere Eingabe aktiviert ist (die EnableSafeTyping-Bindungseigenschaft ist true).

Datenbankdatentyp RFC-Typ XSD .NET-Typ Format des Zeichenfolgenwerts
ACCP (Buchungszeitraum) RFC_NUM xsd:string String Zeichenfolge
NUMC RFC_NUM xsd:string String Zeichenfolge
DATS (Datumsfeld) RFC_DATE xsd:string String YYYYMMDD
TIMS (Zeitfeld) RFC_TIME xsd:string String HHMMSS

Datentypen, die nicht in dieser Tabelle enthalten sind, werden auf die gleiche Weise angezeigt, wie wenn die sichere Eingabe nicht aktiviert ist.

Unterstützte XSD-Facetten

Der SAP-Adapter unterstützt die folgenden XSD-Facetten.

RFC-Typ XSD-Facet (EnableSafeTyping = false) XSD-Facet (EnableSafeTyping = true)
RFC_BCD XSD-Musterfacet

Null Dezimalstellen:"([\\-]{0,1})(([0-9]{1,"+ digitsBeforeDecimal +"}))"

Mindestens eine Dezimalstelle:"([\\-]{0,1})(([0-9]{0," + digitsBeforeDecimal +``"}\\.[0-9]{0,"``+ digitsAfterDecimal +``"})&#124;([0-9]{1,"``+ digitsBeforeDecimal +``"}))"
identisch
RFC_NUM XSD totalDigits facet if length <=19

XSD-Musterfacet bei Länge > 19
XSD maxLength-Facet (abhängig von der Länge des Werts in SAP)
RFC_DATE XSD-Musterfacet

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

Muster enthält die Zeit 00:00:00, um mit kompatibel zu sein. xsd:datetime
XSD maxLength-Facet = 8
RFC_TIME XSD-Musterfacet

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

Muster enthält Datum 0001-01-01, um mit kompatibel zu sein xsd:datetime
XSD maxLength Facet = 6
RFC_CHAR XSD maxLength Facet identisch

Nicht unterstützte Datentypen

Der SAP-Adapter unterstützt den folgenden Datentyp nicht:

  • ITAB II (hierarchische) Tabellentypen