Types de données SAP de base
Les types de paramètres pris en charge par l’adaptateur Microsoft BizTalk pour mySAP Business Suite sont régis par :
Types de données ABAP pris en charge par SAP
Types de données de base de données pris en charge par SAP
Cette section présente un mappage entre les types de données ABAP et de base de données, et leurs types de schémas .NET et XML correspondants.
Notes
Les informations contenues dans cette section s’appliquent aux RFC, tRFC et BAPI. Les types de données SAP sont toujours représentés sous forme de chaînes (xsd :string) dans les AIDO. Il s’agit de prendre en charge l’analyseur de fichiers plats BizTalk Server.
Types de données ABAP pris en charge
L’adaptateur Microsoft BizTalk pour mySAP Business Suite prend en charge la saisie sécurisée pour certains types de données ABAP. Lorsque la saisie sécurisée est activée, ces types de données sont représentés sous forme de chaînes. Vous configurez la saisie sécurisée en définissant la propriété de liaison EnableSafeTyping . La saisie sécurisée est désactivée par défaut. Pour plus d’informations sur les propriétés de liaison de l’adaptateur SAP, consultez En savoir plus sur les propriétés de liaison de l’adaptateur BizTalk pour mySAP Business Suite.
Le tableau suivant montre comment les types de données ABAP sont exposés lorsque la saisie sécurisée n’est pas activée. (EnableSafeTyping a la valeur false). Les types de données exposés différemment lorsque la saisie sécurisée est activée sont marqués d’un astérisque (*).
Type de données ABAP | RFC Type | Type XSD | Type .NET | Chaîne de format |
---|---|---|---|---|
I (entier) | RFC_INT | xsd:int | Int32 | - |
Interne (RFC_INT1) | RFC_INT1 | xsd:unsignedByte | Byte | - |
Interne (RFC_INT2) | RFC_INT2 | xsd:short | Int16 | - |
F (Float) | RFC_FLOAT | xsd:double | Double | - |
P (numéro BCD) | RFC_BCD | xsd :decimal si length <= 28 xsd :string si longueur > 28 |
Decimal String |
Nombre décimal. avec 0 décimale Nombre décimal. avec >0 décimale |
C (caractère) | RFC_CHAR | xsd:string | String | - |
D (Date : AAAAMMJJ)* | RFC_DATE | xsd:dateTime | DateTime | En interne, l’adaptateur désérialise la valeur dans un objet DateTime . Il appelle ensuite la méthode DateTime.ToUniversalTime pour convertir la valeur de cet objet en UTC. Enfin, le composant date (DateTime.Date) est utilisé pour créer la valeur envoyée au système SAP. Le système SAP traite cette valeur de date comme une heure locale. Vous devez spécifier des valeurs de date utc pour éviter la conversion. - Pour xsd :dateTime, le modèle suivant est recommandé : « (\d\d\d\d-\d\d\d\d)T(00 :00 :00)(.*)Z ». - Pour les objets DateTime , définissez DateTime.Kind sur DateTimeKind.Utc. |
T (Heure : HHMMSS)* | RFC_TIME | xsd:dateTime | DateTime | En interne, l’adaptateur désérialise la valeur dans un objet DateTime . Il appelle ensuite la méthode DateTime.ToUniversalTime pour convertir la valeur de cet objet en UTC. Enfin, le composant d’heure (DateTime.Time) est utilisé pour créer la valeur envoyée au système SAP. Le système SAP traite cette valeur de temps comme une heure locale. Vous devez spécifier des valeurs d’heure utc pour éviter la conversion. - Pour xsd :dateTime, le modèle suivant est recommandé : « (0001-01-01)T(\d\d :\d :\d :\d\d)(.*) ». - Pour les objets DateTime , définissez DateTime.Kind sur DateTimeKind.Utc. Par exemple, si votre heure locale est 9 :15, exprimez ceci comme suit : « (001-01-01)T(09 :15 :00)Z » |
N (chaîne numérique)* | RFC_NUM | xsd :int if lenrth <= 9 xsd :long si longueur > 9 et <= 19 xsd :string si longueur > 19 |
Int32 long String |
- |
X (octet) | RFC_BYTE | xsd:base64Binary | Byte[] | - |
STRING | RFC_STRING | xsd:string | String | - |
XSTRING | RFC_BYTE | xsd:base64Binary | Byte[] | - |
*Indique que le type de données est exposé différemment lorsque la saisie sécurisée est activée.
Saisie sécurisée activée
Le tableau suivant montre les types de données ABAP qui sont exposés différemment lorsque la saisie sécurisée est activée (la propriété de liaison EnableSafeTyping a la valeur true).
Type de données ABAP | RFC Type | Type XSD | Type .NET | Chaîne de format |
---|---|---|---|---|
D (Date : AAAAMMJJ) | RFC_DATE | xsd:string | String | Format de date SAP : AAAAMMJJ. Les caractères étant autorisés pour les chiffres de date, la valeur est essentiellement une chaîne de huit caractères |
T (Heure : HHMMSS) | RFC_TIME | xsd:string | String | Format d’heure SAP : HHMMSS. Les caractères étant autorisés pour les chiffres temporels, la valeur est essentiellement une chaîne de six caractères. |
N (chaîne numérique) | RFC_NUM | xsd:string | String | Chaîne de n caractères ; où n = longueur du champ numc. |
Les types de données ABAP qui ne figurent pas dans cette table sont exposés de la même façon que lorsque la saisie sécurisée n’est pas activée.
Prise en charge des champs de date et d’heure
Lorsque la saisie sécurisée n’est pas activée, les types ABAP Date (D) et Heure (T) sont exposés sous la forme xsd :dateTime ; Toutefois, la facette de motif exposée pour les types Date et Heure est différente.
La facette de modèle pour Date est la suivante :
(\d\d\d\d-\d\d-\d\d)T(00:00:00)(.*)
Par exemple, le 7 juillet 2007 (2007-07-07) est représenté comme suit :
(2007-07-07)T(00:00:00)
.La facette de modèle pour Time est la suivante :
(0001-01-01)T(\d\d:\d\d:\d\d)(.*)
Par exemple, 18 :30 :30 (18 :30 et 30 secondes) est représenté comme suit :
(0001-01-01)T(18:30:30)
.
Comment l’adaptateur représente-t-il les valeurs de temps minimales et maximales sur les messages entrants (provenant de SAP) ?
L’adaptateur SAP utilise les instructions suivantes lorsqu’il reçoit des valeurs de temps du système SAP :
- L’adaptateur traite 000000 (hhmmss) et 240000 (hhmmss) comme 0 heure, 0 min et 0 seconde.
Types de données de base de données pris en charge
La façon dont l’adaptateur Microsoft BizTalk pour mySAP Business Suite expose les types de données de base de données varie également selon que la saisie sécurisée est activée ou non. Le tableau suivant montre comment l’adaptateur expose les types de données de base de données lorsque la saisie sécurisée n’est pas activée (la propriété de liaison EnableSafeTyping a la valeur false). Les types de données exposés différemment lorsque la saisie sécurisée est activée sont marqués d’un astérisque (*).
Type de données de base de données | RFC Type | XSD | Type .NET |
---|---|---|---|
ACCP (période d’affichage)* | RFC_NUM | xsd:int | Int32 |
CHAR | RFC_CHAR | xsd:string | String |
CLNT (client) | RFC_CHAR | xsd:string | String |
CURR (champ Devise) | RFC_BCD | xsd :decimal Remarque : l’adaptateur SAP arrondit les valeurs décimales en fonction de la définition du paramètre DECIMAL. Par exemple, si un paramètre DECIMAL peut accepter jusqu’à cinq chiffres après la virgule décimale, une valeur telle que 4,000028 est arrondie à 4,00003. | Decimal |
CUKY (Clé monétaire) | RFC_CHAR | xsd:string | String |
DATS (champ Date)* | RFC_DATE | xsd:dateTime En interne, l’adaptateur désérialise la valeur dans un objet DateTime . Il appelle ensuite la méthode DateTime.ToUniversalTime pour convertir la valeur de cet objet en UTC. Enfin, le composant date (DateTime.Date) est utilisé pour créer la valeur envoyée au système SAP. Le système SAP traite cette valeur de date comme une heure locale. Vous devez spécifier des valeurs de date utc pour éviter la conversion. Le modèle suivant est recommandé : « (\d\d\d\d-\d\d-\d\d)T(00 :00 :00)(.*)Z ». |
DateTime Vous devez spécifier des valeurs de date utc (DateTime.Kind = DateTimeKind.Utc) pour éviter la conversion. |
DEC (Amount) | RFC_BCD | xsd :decimal Remarque : l’adaptateur SAP arrondit les valeurs décimales en fonction de la définition du paramètre DECIMAL. Par exemple, si un paramètre DECIMAL peut accepter jusqu’à cinq chiffres après la virgule décimale, une valeur telle que 4,000028 est arrondie à 4,00003. | Decimal |
FLTP (virgule flottante) | 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 si longueur >9 et <=19 Chaîne si longueur > 19 |
PREC (Précision) | RFC_INT2 | xsd:short | Int16 |
QUAN (Quantity) | RFC_BCD | xsd :decimal Remarque : l’adaptateur SAP arrondit les valeurs décimales en fonction de la définition du paramètre DECIMAL. Par exemple, si un paramètre DECIMAL peut accepter jusqu’à cinq chiffres après la virgule décimale, une valeur telle que 4.000028 est arrondie à 4.00003. | Decimal |
RAW (séquence d’octets) | RFC_BYTE | xsd :base64binary | Byte[] |
RAWSTRING (longueur variable) | RFC_BYTE | xsd :base64binary | Byte[] |
STRING (longueur variable) | RFC_STRING | xsd:string | String |
TIMS (Champ d’heure)* | RFC_TIME | xsd:datetime En interne, l’adaptateur désérialise la valeur dans un objet DateTime . Il appelle ensuite la méthode DateTime.ToUniversalTime pour convertir la valeur de cet objet en UTC. Enfin, le composant d’heure (DateTime.Time) est utilisé pour créer la valeur envoyée au système SAP. Le système SAP traite cette valeur de temps comme une heure locale. Vous devez spécifier des valeurs d’heure utc pour éviter la conversion. Le modèle suivant est recommandé : « (0001-01-01)T(\d\d :\d\d :\d\d)(.*)Z ». Par exemple, si votre heure locale est 9 :15, exprimez ceci comme « (001-01-01)T(09 :15 :00)Z » |
DateTime Vous devez spécifier des valeurs d’heure UTC (DateTime.Kind = DateTimeKind.Utc) pour éviter la conversion. |
UNIT (Unité pour Qty) | RFC_CHAR | xsd:string | String |
[Non pris en charge] | -- | -- | String |
*Indique que l’adaptateur présente le type de données différemment lorsque la saisie sécurisée est activée.
Saisie sécurisée activée
Le tableau suivant montre les types de données de base de données qui sont exposés différemment lorsque la saisie sécurisée est activée (la propriété de liaison EnableSafeTyping est true).
Type de données de base de données | RFC Type | XSD | Type .NET | Format de valeur de chaîne |
---|---|---|---|---|
ACCP (période de publication) | RFC_NUM | xsd:string | String | Chaîne de caractères |
NUMC | RFC_NUM | xsd:string | String | Chaîne de caractères |
DATS (champ Date) | RFC_DATE | xsd:string | String | AAAAMMJJ |
TIMS (champ d’heure) | RFC_TIME | xsd:string | String | HHMMSS |
Les types de données qui ne figurent pas dans cette table sont exposés de la même manière que lorsque la saisie sécurisée n’est pas activée.
Facettes XSD prises en charge
L’adaptateur SAP prend en charge les facettes XSD suivantes.
RFC Type | Facette XSD (EnableSafeTyping = false) | Facette XSD (EnableSafeTyping = true) |
---|---|---|
RFC_BCD | Facette de modèle XSD Zéro décimale : "([\\-]{0,1})(([0-9]{1," + digitsBeforeDecimal + "}))" Une ou plusieurs décimales : "([\\-]{0,1})(([0-9]{0," + digitsBeforeDecimal +``"}\\.[0-9]{0,"``+ digitsAfterDecimal +``"})|([0-9]{1,"``+ digitsBeforeDecimal +``"}))" |
identique |
RFC_NUM | Facette XSD totalDigits si longueur <=19 Facette de modèle XSD si longueur > 19 |
Facette XSD maxLength (dépend de la longueur de la valeur sur SAP) |
RFC_DATE | Facette de modèle XSD"(\d\d\d\d-\d\d-\d\d)T(00:00:00)(.*)" Le modèle contient l’heure 00 :00 :00 pour être compatible avec xsd:datetime |
Facette XSD maxLength = 8 |
RFC_TIME | Facette de modèle XSD"(0001-01-01)T(\d\d:\d\d:\d\d)(.*)" Le modèle contient la date 0001-01-01 pour être compatible avec xsd:datetime |
Facette XSD maxLength = 6 |
RFC_CHAR | Facette maxLength XSD | identique |
Types de données non pris en charge
L’adaptateur SAP ne prend pas en charge le type de données suivant :
- Types de table ITAB II (hiérarchique)