共用方式為


基本 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 +``"})&#124;([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 (階層式) 資料表類型