Compartir a través de


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 +``"})&#124;([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)