Condividi tramite


Tipi di dati SAP di base

I tipi di parametro supportati dall'adapter Microsoft BizTalk per mySAP Business Suite sono regolati da:

  • Tipi di dati ABAP supportati da SAP

  • Tipi di dati di database supportati da SAP

    In questa sezione viene presentato un mapping tra i tipi di dati ABAP e di database e i corrispondenti tipi di .NET e XML Schema.

Nota

Le informazioni contenute in questa sezione si applicano a RFC, tRFC e BAPI. I tipi di dati SAP sono sempre rappresentati come stringhe (xsd:string) in IDOCs. Si tratta di supportare il parser di file flat BizTalk Server.

Tipi di dati ABAP supportati

L'adapter Microsoft BizTalk per mySAP Business Suite supporta la digitazione sicura per alcuni tipi di dati ABAP. Quando la digitazione sicura è abilitata, questi tipi di dati vengono rappresentati come stringhe. Per configurare la digitazione sicura, impostare la proprietà di associazione EnableSafeTyping . La digitazione sicura è disabilitata per impostazione predefinita. Per altre informazioni sulle proprietà di associazione dell'adapter SAP, vedere Informazioni sulle proprietà di associazione di BizTalk Adapter per mySAP Business Suite.

Nella tabella seguente viene illustrato come vengono visualizzati i tipi di dati ABAP quando la digitazione sicura non è abilitata. EnableSafeTyping è false. I tipi di dati che vengono visualizzati in modo diverso quando è abilitata la digitazione sicura sono contrassegnati con un asterisco (*).

Tipo di dati ABAP Tipo RFC Tipo XSD Tipo .NET Stringa di formato
I (intero) RFC_INT xsd:int Int32 -
Interno (RFC_INT1) RFC_INT1 xsd:unsignedByte Byte -
Interno (RFC_INT2) RFC_INT2 xsd:short Int16 -
F (Float) RFC_FLOAT xsd:double Double -
P (numero BCD) RFC_BCD xsd:decimal se length <= 28
xsd:string se lunghezza > 28
Decimal
string
Numero decimale. con 0 posizioni decimali
Numero decimale. con >0 posizioni decimali
C (carattere) RFC_CHAR xsd:string string -
D (data: AAAAMMGG)* RFC_DATE xsd:dateTime Datetime Internamente, l'adattatore deserializza il valore in un oggetto DateTime . Richiama quindi il metodo DateTime.ToUniversalTime per convertire il valore di questo oggetto in formato UTC. Infine, il componente date (DateTime.Date) viene usato per creare il valore inviato al sistema SAP. Il sistema SAP considera questo valore di data come ora locale.

È necessario specificare i valori di data come UTC per evitare la conversione.

- Per xsd:dateTime, è consigliabile usare il modello seguente: "(\d\d\d\d-\d-\d\d)T(00:00:00)(.*)Z".
- Per gli oggetti DateTime impostare DateTime.Kind su DateTimeKind.Utc.
T (Ora: HHMMSS)* RFC_TIME xsd:dateTime Datetime Internamente, l'adattatore deserializza il valore in un oggetto DateTime . Richiama quindi il metodo DateTime.ToUniversalTime per convertire il valore di questo oggetto in formato UTC. Infine, il componente ora (DateTime.Time) viene usato per creare il valore inviato al sistema SAP. Il sistema SAP considera questo valore di ora come ora locale.

È necessario specificare i valori di ora UTC per evitare la conversione.

- Per xsd:dateTime, è consigliabile usare il modello seguente: "(0001-01-01)T(\d\d:\d:\d\d)(.*)".
- Per gli oggetti DateTime impostare DateTime.Kind su DateTimeKind.Utc.

Ad esempio, se l'ora locale è 9:15, esprimere questo valore come "(001-01-01)T(09:15:00)Z"
N (stringa numerica)* RFC_NUM xsd:int se lenrth <= 9
xsd:long se lunghezza > 9 e <= 19
xsd:string se lunghezza > 19
Int32
long
string
-
X (Byte) RFC_BYTE xsd:base64Binary Byte[] -
STRING RFC_STRING xsd:string string -
XSTRING RFC_BYTE xsd:base64Binary Byte[] -

*Indica che il tipo di dati viene visualizzato in modo diverso quando è abilitata la digitazione sicura.

Tipizzazione sicura abilitata

La tabella seguente mostra i tipi di dati ABAP che vengono visualizzati in modo diverso quando la digitazione sicura è abilitata (la proprietà di associazione EnableSafeTyping è true).

Tipo di dati ABAP Tipo RFC Tipo XSD Tipo .NET Stringa di formato
D (data: AAAMMDD) RFC_DATE xsd:string string Formato data SAP: AAAAMMDD.

I caratteri sono consentiti per le cifre di data, quindi il valore è essenzialmente una stringa di otto caratteri
T (ora: HHMMSS) RFC_TIME xsd:string string Formato ora SAP: HHMMSS.

I caratteri sono consentiti per le cifre temporali, quindi il valore è essenzialmente una stringa di sei caratteri
N (stringa numerica) RFC_NUM xsd:string string Stringa di caratteri n; dove n = lunghezza del campo numc.

I tipi di dati ABAP che non sono presenti in questa tabella vengono visualizzati nello stesso modo di quando la digitazione sicura non è abilitata.

Supporto per campi data e ora

Quando la digitazione sicura non è abilitata, i tipi ABAP Date (D) e Time (T) vengono visualizzati come xsd:dateTime; tuttavia, il facet del modello è stato eseguito per i tipi data e ora diversi.

  • Il facet del modello per Date è: (\d\d\d\d-\d\d-\d\d)T(00:00:00)(.*)

    Ad esempio, il 7 luglio 2007 (2007-07-07) è rappresentato come:

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

  • Il facet del modello per Time è: (0001-01-01)T(\d\d:\d\d:\d\d)(.*)

    Ad esempio, le 18:30:30 (6:30 e 30 secondi) sono rappresentate come:

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

In che modo l'adapter rappresenta i valori di tempo minimo e massimo nei messaggi in ingresso (da SAP)?

L'adattatore SAP usa le linee guida seguenti quando riceve i valori di ora dal sistema SAP:

  • L'adattatore tratta 000000 (hhmmss) e 240000 (hhmmss) come 0 ore, 0 minuti e 0 secondi.

Tipi di dati di database supportati

Il modo in cui l'adapter Microsoft BizTalk per mySAP Business Suite superfici anche i tipi di dati del database dipende dal fatto che sia abilitata la digitazione sicura. Nella tabella seguente viene illustrato come la scheda superfici i tipi di dati del database quando la digitazione sicura non è abilitata (la proprietà di associazione EnableSafeTyping è false). I tipi di dati che vengono visualizzati in modo diverso quando la digitazione sicura è abilitata sono contrassegnati con un asterisco (*).

Tipo di dati del database Tipo RFC XSD Tipo di .NET
ACCP (periodo di registrazione)* RFC_NUM xsd:int Int32
CHAR RFC_CHAR xsd:string string
CLNT (client) RFC_CHAR xsd:string string
CURR (campo Valuta) RFC_BCD xsd:decimal Note: l'adattatore SAP esegue il round off dei valori decimali in base alla definizione del parametro DECIMAL. Ad esempio, se un parametro DECIMAL può accettare fino a cinque cifre dopo il punto decimale, un valore come 4.000028 viene arrotondato a 4.00003. Decimal
CUKY (chiave di valuta) RFC_CHAR xsd:string string
DATS (campo Data)* RFC_DATE xsd:dateTime

Internamente, l'adapter deserializza il valore in un oggetto DateTime . Richiama quindi il metodo DateTime.ToUniversalTime per convertire il valore di questo oggetto in FORMATO UTC. Infine, il componente date (DateTime.Date) viene usato per creare il valore inviato al sistema SAP. Il sistema SAP considera questo valore di data come ora locale.

È necessario specificare i valori di data come UTC per evitare la conversione. Il modello seguente è consigliato: "(\d-\d)T(00:00:00)(.*)Z".
Datetime

È necessario specificare i valori di data come UTC (DateTime.Kind = DateTimeKind.Utc) per evitare la conversione.
DEC (importo) RFC_BCD xsd:decimal Note: l'adattatore SAP esegue il round off dei valori decimali in base alla definizione del parametro DECIMAL. Ad esempio, se un parametro DECIMAL può accettare fino a cinque cifre dopo il punto decimale, un valore come 4.000028 viene arrotondato a 4.00003. Decimal
FLTP (virgola mobile) RFC_FLOAT xsd:double Double
INT1 RFC_INT1 xsd:unsignedbyte Byte
INT2 RFC_INT2 xsd:short Int16
INT4 RFC_INT xsd:int Int32
LANG (chiave di lingua) RFC_CHAR xsd:string string
LCHR RFC_STRING xsd:string string
LRAW (seq di byte lungo) RFC_BYTE xsd:base64binary Byte[]
NUMC* RFC_NUM xsd:int
xsd:long
xsd:string
Int32 se lunghezza <=9
Int64 se lunghezza >9 e <=19
Stringa se lunghezza > 19
PREC (accuratezza) RFC_INT2 xsd:short Int16
QUAN (Quantità) RFC_BCD xsd:decimal Note: l'adattatore SAP esegue il round off dei valori decimali in base alla definizione del parametro DECIMAL. Ad esempio, se un parametro DECIMAL può accettare fino a cinque cifre dopo il punto decimale, un valore come 4.000028 viene arrotondato a 4.00003. Decimal
RAW (sequenza di byte) RFC_BYTE xsd:base64binary Byte[]
RAWSTRING (lunghezza variabile) RFC_BYTE xsd:base64binary Byte[]
STRING (lunghezza variabile) RFC_STRING xsd:string string
TIMS (campo ora)* RFC_TIME xsd:datetime

Internamente, l'adapter deserializza il valore in un oggetto DateTime . Richiama quindi il metodo DateTime.ToUniversalTime per convertire il valore di questo oggetto in FORMATO UTC. Infine, il componente ora (DateTime.Time) viene usato per creare il valore inviato al sistema SAP. Il sistema SAP considera questo valore di ora come ora locale.

È necessario specificare i valori di ora come UTC per evitare la conversione. Il modello seguente è consigliato: "(0001-01-01)T(\d:\d:\d\d)(.*)Z".

Ad esempio, se l'ora locale è 9:15, esprimere questa opzione come "(001-01-01)T(09:15:00)Z"
Datetime

È necessario specificare i valori di ora come UTC (DateTime.Kind = DateTimeKind.Utc) per evitare la conversione.
UNIT (Unità per Qty) RFC_CHAR xsd:string string
[Non supportato] -- -- string

*Indica che l'adattatore visualizza il tipo di dati in modo diverso quando la digitazione sicura è abilitata.

Digitazione sicura abilitata

La tabella seguente mostra i tipi di dati del database che vengono visualizzati in modo diverso quando la digitazione sicura è abilitata (la proprietà di associazione EnableSafeTyping è true).

Tipo di dati del database Tipo RFC XSD Tipo .NET Formato valore stringa
ACCP (periodo di registrazione) RFC_NUM xsd:string string Stringa di caratteri
NUMC RFC_NUM xsd:string string Stringa di caratteri
DATS (campo Data) RFC_DATE xsd:string string YYYYMMDD
TIMS (campo Ora) RFC_TIME xsd:string string HHMMSS

I tipi di dati non presenti in questa tabella vengono visualizzati nello stesso modo di quando la digitazione sicura non è abilitata.

Facet XSD supportati

L'adapter SAP supporta i facet XSD seguenti.

Tipo RFC Facet XSD (EnableSafeTyping = false) Facet XSD (EnableSafeTyping = true)
RFC_BCD Facet del modello XSD

Zero cifre decimali:"([\\-]{0,1})(([0-9]{1,"+ digitsBeforeDecimal +"}))"

Una o più posizioni decimali:"([\\-]{0,1})(([0-9]{0," + digitsBeforeDecimal +``"}\\.[0-9]{0,"``+ digitsAfterDecimal +``"})&#124;([0-9]{1,"``+ digitsBeforeDecimal +``"}))"
uguale
RFC_NUM Facet XSD totalDigits se lunghezza <=19

Facet del modello XSD se lunghezza > 19
Facet maxLength XSD (dipende dalla lunghezza del valore in SAP)
RFC_DATE Facet del modello XSD

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

Il modello contiene l'ora 00:00:00 per essere compatibile con xsd:datetime
Facet maxLength XSD = 8
RFC_TIME Facet del modello XSD

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

Il modello contiene la data 0001-01-01 per essere compatibile con xsd:datetime
Facet maxLength XSD = 6
RFC_CHAR Facet maxLength XSD uguale

Tipi di dati non supportati

L'adattatore SAP non supporta il tipo di dati seguente:

  • Tipi di tabella ITAB II (gerarchico)