Tipos de datos básicos de SAP
Los tipos de parámetros que admite el adaptador de Microsoft BizTalk para mySAP Business Suite se rigen por:
Tipos de datos de ABAP compatibles con SAP
Tipos de datos de base de datos compatibles con SAP
En esta sección se presenta una asignación entre los tipos de datos ABAP y de base de datos, y sus tipos de esquema .NET y XML correspondientes.
Nota
La información de esta sección se aplica a rfC, tRFCs y BAPIs. Los tipos de datos de SAP siempre se representan como cadenas (xsd:string) en IDOC. Esto es para admitir el analizador de archivos planos BizTalk Server.
Tipos de datos de ABAP admitidos
El adaptador de Microsoft BizTalk para mySAP Business Suite admite la escritura segura para algunos tipos de datos de ABAP. Cuando se habilita la escritura segura, estos tipos de datos se representan como cadenas. Para configurar la escritura segura, establezca la propiedad de enlace EnableSafeTyping . La escritura segura está deshabilitada de forma predeterminada. Para obtener más información sobre las propiedades de enlace del adaptador de SAP, vea Leer sobre las propiedades de enlace del adaptador de BizTalk para mySAP Business Suite.
En la tabla siguiente se muestra cómo se muestran los tipos de datos de ABAP cuando no se habilita la escritura segura. (EnableSafeTyping es false). Los tipos de datos que aparecen de forma diferente cuando se habilita la escritura segura se marcan con un asterisco (*).
Tipo de datos ABAP | Tipo RFC | Tipo XSD | Tipo de .NET | Cadena de formato |
---|---|---|---|---|
I (entero) | RFC_INT | xsd:int | Int32 | - |
Interno (RFC_INT1) | RFC_INT1 | xsd:unsignedByte | Byte | - |
Interno (RFC_INT2) | RFC_INT2 | xsd:short | Int16 | - |
F (flotante) | RFC_FLOAT | xsd:double | Double | - |
P (número BCD) | RFC_BCD | xsd:decimal si length <= 28 xsd:string si la longitud > es 28 |
Decimal String |
Número decimal. con 0 posiciones decimales Número decimal. con >0 posiciones decimales |
C (carácter) | RFC_CHAR | xsd:string | String | - |
D (Fecha: AAAAMMDD)* | RFC_DATE | xsd:dateTime | DateTime | Internamente, el adaptador deserializa el valor en un objeto DateTime . A continuación, invoca el método DateTime.ToUniversalTime para convertir el valor de este objeto a UTC. Por último, el componente de fecha (DateTime.Date) se usa para crear el valor que se envía al sistema SAP. El sistema SAP trata este valor de fecha como hora local. Debe especificar valores de fecha como UTC para evitar la conversión. - Para xsd:dateTime, se recomienda el siguiente patrón: "(\d\d\d\d-\d\d\d\d\d)T(00:00:00)(.*)Z". - Para los objetos DateTime , establezca DateTime.Kind en DateTimeKind.Utc. |
T (Hora: HHMMSS)* | RFC_TIME | xsd:dateTime | DateTime | Internamente, el adaptador deserializa el valor en un objeto DateTime . A continuación, invoca el método DateTime.ToUniversalTime para convertir el valor de este objeto a UTC. Por último, el componente de hora (DateTime.Time) se usa para crear el valor que se envía al sistema SAP. El sistema SAP trata este valor de hora como hora local. Debe especificar valores de hora como UTC para evitar la conversión. - Para xsd:dateTime, se recomienda el siguiente patrón: "(0001-01-01)T(\d\d:\d\d\d:\d\d)(.*)". - Para los objetos DateTime , establezca DateTime.Kind en DateTimeKind.Utc. Por ejemplo, si la hora local es de 9:15 a.m., exprésa esto como "(001-01-01)T(09:15:00)Z" |
N (cadena numérica)* | RFC_NUM | xsd:int si lenrth <= 9 xsd:long si longitud > 9 y <= 19 xsd:string si la longitud > es 19 |
Int32 long String |
- |
X (byte) | RFC_BYTE | xsd:base64Binary | Byte[] | - |
STRING | RFC_STRING | xsd:string | String | - |
XSTRING | RFC_BYTE | xsd:base64Binary | Byte[] | - |
*Indica que el tipo de datos aparece de forma diferente cuando se habilita la escritura segura.
Escritura segura habilitada
En la tabla siguiente se muestran los tipos de datos de ABAP que aparecen de forma diferente cuando se habilita la escritura segura (la propiedad de enlace EnableSafeTyping es true).
Tipo de datos ABAP | Tipo RFC | Tipo XSD | Tipo de .NET | Cadena de formato |
---|---|---|---|---|
D (Fecha: AAAAMMDD) | RFC_DATE | xsd:string | String | Formato de fecha de SAP: AAAAMMDD. Se permiten caracteres para dígitos de fecha, por lo que el valor es básicamente una cadena de ocho caracteres. |
T (Hora: HHMMSS) | RFC_TIME | xsd:string | String | Formato de hora de SAP: HHMMSS. Los caracteres se permiten para los dígitos de tiempo, por lo que el valor es básicamente una cadena de seis caracteres. |
N (cadena numérica) | RFC_NUM | xsd:string | String | Cadena de n caracteres; donde n = longitud del campo numc. |
Los tipos de datos de ABAP que no están en esta tabla se muestran de la misma manera que cuando no se habilita la escritura segura.
Compatibilidad con campos de fecha y hora
Cuando la escritura segura no está habilitada, los tipos ABAP Date (D) y Time (T) se muestran como xsd:dateTime; sin embargo, la faceta de patrón expuesta para los tipos de fecha y hora es diferente.
La faceta de patrón para Date es:
(\d\d\d\d-\d\d-\d\d)T(00:00:00)(.*)
Por ejemplo, el 7 de julio de 2007 (2007-07-07) se representa como:
(2007-07-07)T(00:00:00)
.La faceta de patrón para Time es:
(0001-01-01)T(\d\d:\d\d:\d\d)(.*)
Por ejemplo, las 18:30:30 (6:30 p. m. y 30 segundos) se representan como:
(0001-01-01)T(18:30:30)
.
¿Cómo representa el adaptador los valores de tiempo mínimo y máximo en los mensajes entrantes (desde SAP)?
El adaptador de SAP usa las siguientes directrices cuando recibe valores de hora del sistema SAP:
- El adaptador trata 000000 (hhmmss) y 240000 (hhmmss) como 0 horas, 0 minutos y 0 segundos.
Tipos de datos de base de datos admitidos
La forma en que el adaptador de Microsoft BizTalk para mySAP Business Suite expone los tipos de datos de base de datos también depende de si la escritura segura está habilitada. En la tabla siguiente se muestra cómo el adaptador expone los tipos de datos de base de datos cuando la escritura segura no está habilitada (la propiedad de enlace EnableSafeTyping es false). Los tipos de datos que aparecen de forma diferente cuando se habilita la escritura segura se marcan con un asterisco (*).
Tipo de datos de base de datos | Tipo RFC | XSD | Tipo de .NET |
---|---|---|---|
ACCP (período de contabilización)* | RFC_NUM | xsd:int | Int32 |
CHAR | RFC_CHAR | xsd:string | String |
CLNT (cliente) | RFC_CHAR | xsd:string | String |
CURR (campo Moneda) | RFC_BCD | xsd:decimal Nota: El adaptador de SAP redondea los valores decimales en función de la definición del parámetro DECIMAL. Por ejemplo, si un parámetro DECIMAL puede aceptar hasta cinco dígitos después del separador decimal, un valor como 4,000028 se redondea a 4,00003. | Decimal |
CUKY (clave de moneda) | RFC_CHAR | xsd:string | String |
DATS (campo Fecha)* | RFC_DATE | xsd:dateTime Internamente, el adaptador deserializa el valor en un objeto DateTime . A continuación, invoca el método DateTime.ToUniversalTime para convertir el valor de este objeto a UTC. Por último, el componente date (DateTime.Date) se usa para crear el valor que se envía al sistema SAP. El sistema SAP trata este valor de fecha como hora local. Debe especificar valores de fecha como UTC para evitar la conversión. Se recomienda el siguiente patrón: "(\d\d\d\d\d-\d\d-\d\d)T(00:00:00)(.*)Z". |
DateTime Debe especificar valores de fecha como UTC (DateTime.Kind = DateTimeKind.Utc) para evitar la conversión. |
DEC (Cantidad) | RFC_BCD | xsd:decimal Nota: El adaptador de SAP redondea los valores decimales en función de la definición del parámetro DECIMAL. Por ejemplo, si un parámetro DECIMAL puede aceptar hasta cinco dígitos después del separador decimal, un valor como 4,000028 se redondea a 4,00003. | Decimal |
FLTP (punto flotante) | RFC_FLOAT | xsd:double | Double |
INT1 | RFC_INT1 | xsd:unsignedbyte | Byte |
INT2 | RFC_INT2 | xsd:short | Int16 |
INT4 | RFC_INT | xsd:int | Int32 |
LANG (clave de idioma) | 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 si length <=9 Int64 si longitud >9 y <=19 Cadena si la longitud > es 19 |
PREC (precisión) | RFC_INT2 | xsd:short | Int16 |
QUAN (Cantidad) | RFC_BCD | xsd:decimal Nota: El adaptador de SAP redondea los valores decimales en función de la definición del parámetro DECIMAL. Por ejemplo, si un parámetro DECIMAL puede aceptar hasta cinco dígitos después del separador decimal, un valor como 4,000028 se redondea a 4,00003. | Decimal |
RAW (secuencia de bytes) | RFC_BYTE | xsd:base64binary | Byte[] |
RAWSTRING (longitud variable) | RFC_BYTE | xsd:base64binary | Byte[] |
STRING (longitud variable) | RFC_STRING | xsd:string | String |
TIMS (campo de tiempo)* | RFC_TIME | xsd:datetime Internamente, el adaptador deserializa el valor en un objeto DateTime . A continuación, invoca el método DateTime.ToUniversalTime para convertir el valor de este objeto a UTC. Por último, el componente de hora (DateTime.Time) se usa para crear el valor que se envía al sistema SAP. El sistema SAP trata este valor de hora como hora local. Debe especificar valores de hora como UTC para evitar la conversión. Se recomienda el siguiente patrón: "(0001-01-01)T(\d\d:\d\d:\d\d\d)(.*)Z". Por ejemplo, si la hora local es de 9:15 a. m., exprese esto como "(001-01-01)T(09:15:00)Z" |
DateTime Debe especificar valores de hora como UTC (DateTime.Kind = DateTimeKind.Utc) para evitar la conversión. |
UNIT (Unidad para qty) | RFC_CHAR | xsd:string | String |
[No admitido] | -- | -- | String |
*Indica que el adaptador muestra el tipo de datos de forma diferente cuando se habilita la escritura segura.
Escritura segura habilitada
En la tabla siguiente se muestran los tipos de datos de base de datos que aparecen de forma diferente cuando se habilita la escritura segura (la propiedad de enlace EnableSafeTyping es true).
Tipo de datos de base de datos | Tipo RFC | XSD | Tipo de .NET | Formato de valor de cadena |
---|---|---|---|---|
ACCP (período de contabilización) | RFC_NUM | xsd:string | String | Cadena de caracteres |
NUMC | RFC_NUM | xsd:string | String | Cadena de caracteres |
DATS (campo Fecha) | RFC_DATE | xsd:string | String | YYYYMMDD |
TIMS (campo hora) | RFC_TIME | xsd:string | String | HHMMSS |
Los tipos de datos que no están en esta tabla se muestran de la misma manera que cuando no se habilita la escritura segura.
Facetas XSD admitidas
El adaptador de SAP admite las siguientes facetas XSD.
Tipo RFC | Faceta XSD (EnableSafeTyping = false) | Faceta XSD (EnableSafeTyping = true) |
---|---|---|
RFC_BCD | Faceta de patrón XSD Cero decimales: "([\\-]{0,1})(([0-9]{1," + digitsBeforeDecimal + "}))" Una o varias posiciones decimales: "([\\-]{0,1})(([0-9]{0," + digitsBeforeDecimal +``"}\\.[0-9]{0,"``+ digitsAfterDecimal +``"})|([0-9]{1,"``+ digitsBeforeDecimal +``"}))" |
same |
RFC_NUM | Faceta XSD totalDigits si length <=19 Faceta de patrón XSD si longitud > 19 |
Faceta maxLength de XSD (depende de la longitud del valor en SAP) |
RFC_DATE | Faceta de patrón XSD"(\d\d\d\d-\d\d-\d\d)T(00:00:00)(.*)" El patrón contiene la hora 00:00:00 para que sea compatible con xsd:datetime |
Faceta XSD maxLength = 8 |
RFC_TIME | Faceta de patrón XSD"(0001-01-01)T(\d\d:\d\d:\d\d)(.*)" El patrón contiene la fecha 0001-01-01 para que sea compatible con xsd:datetime |
Faceta XSD maxLength = 6 |
RFC_CHAR | Faceta maxLength de XSD | same |
Tipos de datos no compatibles
El adaptador de SAP no admite el siguiente tipo de datos:
- Tipos de tabla de ITAB II (jerárquico)