基本 SAP 資料類型
Microsoft BizTalk Adapter for mySAP Business Suite 支援的參數類型受下列管理:
SAP 支援的 ABAP 資料類型
SAP 支援的資料庫資料類型
本節提供 ABAP 和資料庫資料類型之間的對應,以及其對應的 .NET 和 XML 架構類型。
注意
本節中的資訊適用于 RFC、tRFC 和 BAPIs。 SAP 資料類型一律以字串表示, (IDOC 中的 xsd:string) 。 這是為了支援BizTalk Server一般檔案剖析器。
支援的 ABAP 資料類型
Microsoft BizTalk Adapter for mySAP Business Suite 支援某些 ABAP 資料類型的安全輸入。 啟用安全輸入時,這些資料類型會以字串表示。 您可以設定 EnableSafeTyping 系結屬性來設定安全輸入。 預設會停用安全輸入。 如需 SAP 配接器系結屬性的詳細資訊,請參閱 閱讀 BizTalk Adapter for mySAP Business Suite 系結屬性。
下表顯示當未啟用安全輸入時,ABAP 資料類型的呈現方式。 (EnableSafeTyping 為 false) 。 啟用安全輸入時呈現不同的資料類型會以星號標示 (*) 。
ABAP 資料類型 | RFC 類型 | XSD 類型 | .NET 類型 | 格式字串 |
---|---|---|---|---|
我 (整數) | RFC_INT | xsd:int | Int32 | - |
內部 (RFC_INT1) | RFC_INT1 | xsd:unsignedByte | Byte | - |
內部 (RFC_INT2) | RFC_INT2 | xsd:short | Int16 | - |
F (浮點數) | RFC_FLOAT | xsd:double | Double | - |
P (BCD 數位) | RFC_BCD | xsd:decimal if length < = 28 如果長度 > 為 28,則為 xsd:string |
Decimal String |
十進位數。 具有 0 個小數位數 十進位數。 具有 > 0 個小數位數 |
C (字元) | RFC_CHAR | xsd:string | 字串 | - |
D (日期:YYYYMMDD) * | RFC_DATE | xsd:dateTime | DateTime | 在內部,配接器會將值還原序列化為 DateTime 物件。 然後,它會叫用 DateTime.ToUniversalTime 方法,將這個物件的值轉換為 UTC。 最後,日期元件 (DateTime.Date) 用來建立傳送至 SAP 系統的值。 SAP 系統會將此日期值視為當地時間。 您應該將日期值指定為 UTC 以避免轉換。 - 針對 xsd:dateTime,建議使用下列模式:「 (\d\d-\d-\d-\d\d) T (00:00:00) (.*) Z」。 - 針對 DateTime 物件,將 DateTime.Kind 設定為 DateTimeKind.Utc。 |
T (時間:HHMMSS) * | RFC_TIME | xsd:dateTime | DateTime | 在內部,配接器會將值還原序列化為 DateTime 物件。 然後,它會叫用 DateTime.ToUniversalTime 方法,將這個物件的值轉換為 UTC。 最後,日期時間元件 (DateTime.Time) 是用來建立傳送至 SAP 系統的值。 SAP 系統會將這個時間值視為當地時間。 您應該將時間值指定為 UTC 以避免轉換。 - 針對 xsd:dateTime,建議使用下列模式:「 (0001-01-01) T (\d\d:\d\d:\d\d\d) (.*) 」。 - 針對 DateTime 物件,將 DateTime.Kind 設定為 DateTimeKind.Utc。 例如,如果您的當地時間是上午 9:15,請將這表示為 「 (001-01-01) T (09:15:00) Z」 |
N (數值字串) * | RFC_NUM | xsd:int if lenrth < = 9 xsd:long if length > 9 and < = 19 如果長度 > 為 19,則為 xsd:string |
Int32 long 字串 |
- |
X (Byte) | RFC_BYTE | xsd:base64Binary | Byte[] | - |
STRING | RFC_STRING | xsd:string | 字串 | - |
XSTRING | RFC_BYTE | xsd:base64Binary | Byte[] | - |
*指出啟用安全輸入時,資料類型會以不同的方式呈現。
已啟用安全輸入
下表顯示啟用安全輸入時, (EnableSafeTyping 系結屬性為 true 時,以不同方式呈現的 ABAP 資料類型) 。
ABAP 資料類型 | RFC 類型 | XSD 類型 | .NET 類型 | 格式字串 |
---|---|---|---|---|
D (日期:YYYYMMDD) | RFC_DATE | xsd:string | 字串 | SAP 日期格式:YYYYMMDD。 日期數位允許字元,因此此值基本上是八個字元字串 |
T (時間:HHMMSS) | RFC_TIME | xsd:string | 字串 | SAP 時間格式:HHMMSS。 時間位數允許字元,因此此值基本上是六個字元字串 |
N (數值字串) | RFC_NUM | xsd:string | 字串 | n 個字元字串;其中 n = numc 欄位的長度。 |
未在此資料表中的 ABAP 資料類型會以與未啟用安全輸入時一樣呈現。
日期和時間欄位的支援
未啟用安全輸入時,ABAP Date (D) 和 Time (T) 類型會顯示為 xsd:dateTime;不過,針對日期和時間類型呈現的模式 Facet 不同。
Date 的模式 Facet 為:
(\d\d\d\d-\d\d-\d\d)T(00:00:00)(.*)
例如,2007 年 7 月 7 日 (2007-07-07) 會以下列方式表示:
(2007-07-07)T(00:00:00)
.Time 的模式 Facet 為:
(0001-01-01)T(\d\d:\d\d:\d\d)(.*)
例如,18:30:30 (下午 6:30 和 30 秒) 會以下列方式表示:
(0001-01-01)T(18:30:30)
.
配接器如何代表 SAP) (輸入訊息的最小和最大時間值?
SAP 配接器從 SAP 系統接收時間值時,會使用下列指導方針:
- 配接器會將 000000 (hhmmss) 和 240000 (hhmmss) 視為 0 小時、0 分鐘和 0 秒。
支援的資料庫資料類型
Microsoft BizTalk Adapter for mySAP Business Suite 呈現資料庫資料類型的方式也取決於是否啟用安全輸入。 下表顯示當未啟用安全輸入時,配接器如何呈現資料庫資料類型, (EnableSafeTyping 系結屬性為 false) 。 啟用安全輸入時呈現不同的資料類型會以星號標示 (*) 。
資料庫資料類型 | RFC 類型 | XSD | .NET 類型 |
---|---|---|---|
ACCP (張貼期間) * | RFC_NUM | xsd:int | Int32 |
CHAR | RFC_CHAR | xsd:string | 字串 |
CLNT (用戶端) | RFC_CHAR | xsd:string | 字串 |
CURR (貨幣欄位) | RFC_BCD | xsd:decimal 注意: SAP 配接器會根據 DECIMAL 參數的定義來舍去十進位值。 例如,如果 DECIMAL 參數可以在小數點之後接受最多五位數,則 4.000028 之類的值會四捨五入為 4.00003。 | Decimal |
CUKY (貨幣金鑰) | RFC_CHAR | xsd:string | 字串 |
DATS (日期欄位) * | RFC_DATE | xsd:dateTime 在內部,配接器會將值還原序列化為 DateTime 物件。 然後,它會叫用 DateTime.ToUniversalTime 方法,將這個物件的值轉換為 UTC。 最後,日期元件 (DateTime.Date) 用來建立傳送至 SAP 系統的值。 SAP 系統會將此日期值視為當地時間。 您應該將日期值指定為 UTC 以避免轉換。 建議使用下列模式:「 (\d\d\d\d-\d-\d\d\d) T (00:00:00) (.*) Z」。 |
DateTime 您應該將日期值指定為 UTC (DateTime.Kind = DateTimeKind.Utc) 以避免轉換。 |
DEC (金額) | RFC_BCD | xsd:decimal 注意: SAP 配接器會根據 DECIMAL 參數的定義來舍去十進位值。 例如,如果 DECIMAL 參數可以在小數點之後接受最多五位數,則 4.000028 之類的值會四捨五入為 4.00003。 | Decimal |
FLTP (浮點數) | RFC_FLOAT | xsd:double | Double |
INT1 | RFC_INT1 | xsd:unsignedbyte | Byte |
INT2 | RFC_INT2 | xsd:short | Int16 |
INT4 | RFC_INT | xsd:int | Int32 |
LANG (語言金鑰) | RFC_CHAR | xsd:string | String |
LCHR | RFC_STRING | xsd:string | 字串 |
LRAW (long byte seq) | RFC_BYTE | xsd:base64binary | Byte[] |
NUMC* | RFC_NUM | xsd:int xsd:long xsd:string |
如果長度 < =9,則為 Int32 如果長度 > 為 9 和 < =19,則為 Int64 如果長度 > 為 19 的字串 |
PREC (精確度) | RFC_INT2 | xsd:short | Int16 |
QUAN (Quantity) | RFC_BCD | xsd:decimal 注意: SAP 配接器會根據 DECIMAL 參數的定義來舍去十進位值。 例如,如果 DECIMAL 參數可以在小數點之後接受最多五位數,則 4.000028 之類的值會四捨五入為 4.00003。 | Decimal |
RAW (位元組序列) | RFC_BYTE | xsd:base64binary | Byte[] |
RAWSTRING (可變長度) | RFC_BYTE | xsd:base64binary | Byte[] |
STRING (可變長度) | RFC_STRING | xsd:string | 字串 |
TIMS (時間欄位) * | RFC_TIME | xsd:datetime 在內部,配接器會將值還原序列化為 DateTime 物件。 然後,它會叫用 DateTime.ToUniversalTime 方法,將這個物件的值轉換為 UTC。 最後,日期時間元件 (DateTime.Time) 是用來建立傳送至 SAP 系統的值。 SAP 系統會將這個時間值視為當地時間。 您應該將時間值指定為 UTC 以避免轉換。 建議使用下列模式:「 (0001-01-01) T (\d\d:\d\d:\d\d\d) (.*) Z」。 例如,如果您的當地時間是上午 9:15,請將這表示為 「 (001-01-01) T (09:15:00) Z」 |
DateTime 您應該將時間值指定為 UTC (DateTime.Kind = DateTimeKind.Utc) 以避免轉換。 |
Qty) 的 UNIT (單位 | RFC_CHAR | xsd:string | 字串 |
[不支援] | -- | -- | 字串 |
*指出介面卡在啟用安全輸入時,會以不同的方式呈現資料類型。
已啟用安全輸入
下表顯示啟用安全輸入時, (EnableSafeTyping 系結屬性為 true 時,以不同方式呈現的資料庫資料類型) 。
資料庫資料類型 | RFC 類型 | XSD | .NET 類型 | 字串值格式 |
---|---|---|---|---|
ACCP (張貼期間) | RFC_NUM | xsd:string | 字串 | 字元字串 |
NUMC | RFC_NUM | xsd:string | 字串 | 字元字串 |
DATS (日期欄位) | RFC_DATE | xsd:string | 字串 | YYYYMMDD |
TIMS (時間欄位) | RFC_TIME | xsd:string | 字串 | HHMMSS |
不在此資料表中的資料類型會以未啟用安全輸入時的方式呈現。
支援的 XSD Facet
SAP 配接器支援下列 XSD Facet。
RFC 類型 | XSD Facet (EnableSafeTyping = false) | XSD Facet (EnableSafeTyping = true) |
---|---|---|
RFC_BCD | XSD 模式 Facet 零小數位數: "([\\-]{0,1})(([0-9]{1," + digitsBeforeDecimal + "}))" 一或多個小數位數: "([\\-]{0,1})(([0-9]{0," + digitsBeforeDecimal +``"}\\.[0-9]{0,"``+ digitsAfterDecimal +``"})|([0-9]{1,"``+ digitsBeforeDecimal +``"}))" |
相同 |
RFC_NUM | 如果長度 < =19,XSD totalDigits Facet 如果長度 > 為 19,則為 XSD 模式 Facet |
XSD maxLength facet (取決於 SAP) 的值長度 |
RFC_DATE | XSD 模式 Facet"(\d\d\d\d-\d\d-\d\d)T(00:00:00)(.*)" 模式包含與相容的時間 00:00:00 xsd:datetime |
XSD maxLength Facet = 8 |
RFC_TIME | XSD 模式 Facet"(0001-01-01)T(\d\d:\d\d:\d\d)(.*)" 模式包含要與相容日期 0001-01-01 xsd:datetime |
XSD maxLength Facet = 6 |
RFC_CHAR | XSD maxLength Facet | 相同 |
不支援的資料類型
SAP 配接器不支援下列資料類型:
- ITAB II (階層式) 資料表類型