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 +``"})|([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