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