Microsoft BizTalk Adapter for mySAP Business Suite 連線 URI 包含配接器用來建立 SAP 系統連線的屬性。
這很重要
根據預設,SAP 用戶端連結庫 (librfc32u.dll) 最多支援對 SAP 系統的 100 個連線。 如果您超過此數目的連線,就會拋出異常。 基於這個理由,您應該設定 MaxConnectionsPerSystem 系結屬性,以限制 SAP 配接器嘗試在 SAP 系統上開啟的連線數目;或設定CPIC_MAX_CONV環境變數,以增加 SAP 用戶端連結庫支援的連線數目。 如果您變更CPIC_MAX_CONV,您必須重新啟動計算機,變更才會生效。 如需 SAP 配接器系結屬性的詳細資訊,請參閱 閱讀 BizTalk Adapter for mySAP Business Suite 系結屬性。
本主題提供 SAP 連線 URI 的相關信息,也提供其他主題的連結,說明如何在不同的程式設計案例中指定連線 URI。
SAP 配接器的連線 URI
典型的 WCF 端點位址 URI 表示如下:
scheme://userinfoparams@hostinfoparams?query_string
端點位址 URI 包含下列元件:
scheme 是方案名稱。
userinfoparams 是端點進行用戶驗證所需的參數名稱值集合。
hostinfoparams 是建立與主機連線所需的資訊;例如,路徑。
query_string是選擇性的名稱和值的集合,是由問號(?)分隔的參數集合。
SAP 配接器用於 SAP 系統的端點位址 URI 是使用 SAP 連線 URI 來指定。 SAP 配接器會實作此連線 URI,如下所示:
sap://user=[USER_NAME];passwd=[PASSWORD];Client=[CLIENT];lang=[LANGUAGE];[UseSnc]=[True|False]@connectiontype/conndetail1/conndetail2?GwHost=[GWHOST]?GwServ=[GWSERV]?MsServ=[MSSERV]?Group=[GROUP]?ListenerDest=[LISTENERDEST]?ListenerGwHost=[LISTENERGWHOST]?ListenerGwServ=[LISTENERGWSERV]?ListenerProgramId=[LISTENERPROGRAMID]?RfcSdkTrace=[true/false]?AbapDebug=[true/false]
下列各節將說明連線 URI 的元件。
SAP 連線 URI 配置
SAP 連線 URI 的配置為 「sap」。
SAP 連線 URI 中的用戶資訊
SAP 連線 URI 中的使用者資訊 (userinfoparams) 會以使用者驗證、客戶端識別和語言規格所需的參數名稱值集合表示。 下列表格描述這些參數。
房產 | 說明 |
---|---|
使用者 | SAP 系統上的用戶名稱;這個值區分大小寫。 您必須將 AcceptCredentialsInUri 系結屬性設定為 true ,才能在連線 URI 中指定使用者名稱和密碼。 注意: SAP 配接器會保留您在 SAP 系統上開啟連線時輸入的使用者名稱的大小寫。 |
Passwd | SAP 系統上用戶的密碼;這個值區分大小寫。 您必須將 AcceptCredentialsInUri 系結屬性設定為 true ,才能在連線 URI 中指定使用者名稱和密碼。 注意: SAP 配接器會在 SAP 系統上開啟連線時,保留您為密碼輸入的值大小寫。 |
客戶 | SAP 系統用戶端識別碼。 |
語言 | 語言。 |
UseSnc | 選擇性參數,指定是否啟用 SAP 安全網路通訊(SNC)。 此值可以是 True 或 False;如果為 True,則為啟用 SNC。 預設值為 False 當您啟用 SNC 時,也必須設定 SncPartnerName 和 SncLibrary 系結屬性。 如需詳細資訊,請參閱 查看 BizTalk Adapter for mySAP Business Suite 系結屬性。 如果已啟用SNC且連線 URI 包含認證,配接器會擲回例外狀況。 注意: UseSnc 連線參數僅適用於連線類型 A 和 B。本主題稍後會詳細說明不同的連線類型及其重要性。 |
備註
您必須在 SAP 連線 URI 中指定客戶端和語言。
SAP 配接器會顯示 AcceptCredentialsinUri 系結屬性,因此您可以控制是否可以在連線 URI 中指定 SAP 系統認證。 這是因為認證在連線 URI 中以純文本表示,這會造成固有的安全性風險。 根據預設, AcceptCredentialsInUri 系結屬性為 false,如果連接 URI 中指定認證,配接器會擲回例外狀況。
在某些情況下,您必須在連線 URI 中指定認證;例如,當您使用 WCF 服務模型或 WCF 通道模型時,若要從 SAP 系統接收輸入作業。 您可以針對這些案例將 AcceptCredentialsInUri 屬性設定為 true。 不過,最佳做法是避免直接在連線 URI 中提供認證。 如需如何更安全地提供 SAP 連線認證的詳細資訊,請參閱 保護 SAP 應用程式。
這很重要
如果您藉由將UseSnc參數設定為 true 來啟用安全網路通訊 (SNC),配接器會擲回例外狀況。
SAP 連線 URI 中的主機資訊
SAP 主機資訊 (hostinfoparams) 是由 SAP 連線 URI 中的下列元素表示: connectiontype/conndetail1/conndetail2
。 這些參數會指定與 SAP 系統之用戶端連線的詳細數據。 如需在query_string中指定有關SAP客戶端連線的其他詳細資訊,以及作為SAP RFC目的地接收端的連線詳細資訊,請參閱以下說明。 SAP 配接器支援 SAP 連線 URI 中的下列用戶端連線類型:
答:應用程式主機型連線,其中連接 URI 會指定 SAP 配接器連線至 SAP 的應用程式伺服器。
B:負載平衡連線,其中連線 URI 會指定 SAP 配接器連線至 SAP 的訊息伺服器。
D:目的地型連線,其中連接 URI 會在包含 SAP 連線參數的 saprfc.ini 檔案中指定目的地。
下表描述如何在 SAP 連線 URI 中指定這些連線。
連線類型 | Conndetail1 | Conndetail2 | 說明 |
---|---|---|---|
一個 | ASHOST (應用程式伺服器主機) | SYSNR (SAP 系統號碼) | 指定基於應用程式主機的連線。 針對應用程式主機型連線,可以在query_string中指定選擇性的閘道主機和閘道服務。 |
B | MSHOST (訊息伺服器主機) | R3NAME (SAP R3 名稱) | 指定透過訊息伺服器進行負載平衡連線。 針對負載平衡連線,可以在 query_string 中指定選擇性伺服器群組和訊息服務。 |
D | DEST (目的地,其中包含 saprfc.ini 檔案中的連線參數) | -- | 指定以目的地為基礎的連線。 SAP 連線參數包含在 saprfc.ini 檔案中指定的目的地中。 目的地中只能指定 A 型別和 B 型連線。 |
備註
如果您在 saprfc.ini 檔案中指定連接值,請確保此檔案與存取該檔案的 .exe 檔案位於同一資料夾中,或放置於符合 SAP 系統要求的標準位置。 如需詳細資訊,請參閱 SAP 檔。
SAP 連線 URI 中的查詢資訊
SAP 連線 URI 中的查詢資訊 (query_string)包含選擇性參數,可用來指定下列專案:
應用程式主機型連線的其他連線詳細數據(A)。
負載平衡連線的其他連線詳細數據(B)。
在 SAP 系統中指定 RFC 目的地的接聽器詳細信息,以使 SAP 系統能夠通過 SAP 配接器發送 RFC、TRFC 和 IDocs。
是否要啟用 SAP 安全網路通訊 (SNC)。
指定偵錯組態的詳細數據。
查詢參數是選擇性的;不過,必須指定接聽程式詳細數據,讓 SAP 配接器作為 RFC 伺服器。
下表描述查詢參數,並指出它們有效的 SAP 連線類型。
價值觀 | 有效的連線類型 | 說明 |
---|---|---|
GwHost | 一個 | 指定應用程式主機型連線中選擇性閘道主機的名稱。 |
GwServ | 一個 | 指定應用程式主機型連線中選擇性閘道服務的名稱。 |
MsServ | B | 指定負載平衡連線中選擇性訊息服務的名稱。 |
群體 | B | 指定負載平衡連線中應用程式伺服器的選擇性群組。 |
ListenerDest | (R) | 指定 rfc 伺服器連線中 saprfc.ini 檔案中的選擇性目的地。 目的地必須指定 R 型別連線。 |
ListenerGwHost | (R) | 指定 RFC 伺服器連線的閘道主機。 此參數是選擇性的;不過,如果想要 rfc 伺服器連線,且未指定 LISTENERDEST,或 saprfc.ini 檔案中的目的地未指定任何閘道主機,則 LISTENERGWHOST 必須包含有效的閘道主機。 |
ListenerGwServ | (R) | 指定 RFC 伺服器連線的閘道服務。 此參數是選擇性的;不過,如果想要 rfc 伺服器連線,且未指定 LISTENERDEST,或 saprfc.ini 檔案中的目的地未指定任何閘道服務,則 LISTENERGWSERV 必須包含有效的閘道服務。 |
聽眾程式識別碼 (ListenerProgramId) | (R) | 指定 rfc 伺服器連線的程式識別碼。 此參數是選擇性的;不過,如果想要 rfc 伺服器連線,且未指定 LISTENERDEST,或未由 saprfc.ini 檔案中的目的地指定閘道服務,則 LISTENERPROGRAMID 必須包含有效的閘道服務。 |
RfcSdkTrace | 全部 | 選擇性參數,指定是否啟用 RFC 連結庫追蹤。 此值可以是 True 或 False;如果為 True,則會啟用 RFC 連結庫追蹤。 預設值為 False。 RfcSdkTrace 參數所啟用的追蹤層級取決於環境變數RFC_TRACE。 - 如果RFC_TRACE不存在,或設定為 0,則會啟用追蹤的最低層級。 - 您可以將RFC_TRACE設定為 1 或 2,以增加追蹤層級。 |
AbapDebug | 全部 | 選擇性參數,指定是否已啟用來自 Visual Studio 的 ABAP 偵錯。 此值可以是 True 或 False;如果為 True,則會啟用 ABAP 偵錯。 預設值為 False。 如果 AbapDebug 為 True,則會開啟 SAP GUI。 |
SAPROUTER | 全部 | 當 SAProuter 用於透過防火牆進行連線時,可選參數。 此參數是主機名和服務名稱/埠號碼的清單,格式如下:/H/主機名/S/portnumber。 |
查詢字串中的參數是 SAP 參數,而其值是由 SAP 所定義。 如需這些參數的詳細資訊,請參閱您的 SAP 檔。
下列顯示應用程式主機型連線的範例連線 URI:
sap://Client=800;lang=EN@A/YourSAPHOST/00
設定配接器對話框中的連線 URI 屬性
當您使用 [取用配接器服務 BizTalk 專案附加元件] 或 [新增配接器服務參考 Visual Studio 外掛程式] 連接到 SAP 系統時,可以在 [設定配接器] 對話框中的 [URI 屬性] 索引標籤設定連線 URI 參數。 下表顯示 URI 屬性如何顯示在 [URI 屬性 ] 工作表中。 ([URI 屬性] 工作表會依照群組以及它們出現的順序來列出 URI 屬性。)
類別 | URI 屬性 | URI元件 |
---|---|---|
應用程式伺服器 | 應用程式伺服器主機 | Conndetail1 (主機資訊連線類型 A) |
應用程式伺服器 | 閘道主機 | GwHost (查詢字串) |
應用程式伺服器 | 閘道服務 | GwServ (查詢字串) |
應用程式伺服器 | 系統號碼 | Conndetail2 (主機資訊連線類型 A) |
目的地 | 目的地名稱 | Conndetail1 (主機資訊連線類型 D) |
診斷 | RFC 追蹤 | RfcSdkTrace (查詢字串) |
診斷 | ABAP 偵錯 | AbapDebug (查詢字串) |
登入資訊 | 客戶 | 用戶端(使用者資訊參數) |
登入資訊 | 語言 | 語言 (userinfoparams) |
訊息伺服器 | 應用程式伺服器組名 | 群組 (查詢字串) |
訊息伺服器 | 訊息伺服器主機 | Conndetail1 (主機資訊連線類型 B) |
訊息伺服器 | 訊息伺服器服務 | MsServ (查詢字串) |
訊息伺服器 | R/3 系統名稱 | Conndetail2 (主機資訊連線類型 B) |
其他 | 連線類型 | 連接類型(主機資訊:A、B 或 D) |
其他 | SAP 路由器 | SAPROUTER (查詢字串) |
RFC 伺服器 | 目的地名稱 | ListenerDest (查詢字串) |
RFC 伺服器 | 閘道主機 | ListenerGwHost (查詢字串) |
RFC 伺服器 | 閘道服務 | ListenerGwServ (查詢字串) |
RFC 伺服器 | 程式識別碼 | ListenerProgramId (查詢字串) |
SNC | UseSnc | UseSnc (使用者資訊) |
如何指定 RFC 伺服器連線的連線 URI。
若要透過 SAP 配接器建立作為 RFC 伺服器的端點位址,您必須指定一個 SAP 程式識別碼、一個 SAP 閘道主機,以及與 SAP 系統上的 RFC 目的地相對應的 SAP 閘道服務。 如需如何在 SAP 上設定 RFC 目的地的資訊,請參閱 建立 RFC、RFC 目的地,以及從 SAP 傳送 RFC。
您可以使用下列兩種方式之一,在連線 URI 中指定程式識別碼、閘道主機和閘道服務:
藉由設定 ListenerGwHost、ListenerGwServ 和 ListenerProgramId 查詢參數
藉由將 ListenerDest 查詢參數設定為指定 R 類型連線之 saprfc.ini 檔案中的目的地。
備註
如果您在 saprfc.ini 檔案中指定連線值,請確定檔案位於存取該檔案的 .exe 檔案相同的位置,或者在 SAP 系統要求的標準位置。 如需詳細資訊,請參閱 SAP 檔。
若要指定 RFC 伺服器連線的連線 URI,您可以使用查詢字串中指定的 RFC 目的地指定一般用戶端連線,如下列範例所示:
sap://Client=800;lang=EN@A/YourSAPHOST/00?ListenerGwHost=YourSAPHOST&ListenerGwServ=SAPGW00&ListenerProgramId=MyProgramId
SAP 配接器會使用連線 URI 中 userinfoparams 和 hostinfoparams 中包含的資訊,從 SAP 系統擷取元數據,並使用查詢字元串中的接聽程式參數所提供的資訊,在 SAP RFC 目的地註冊自己為接聽程式。
在連線 URI 中使用保留字元
SAP 配接器不支援指定具有任何參數值特殊字元的連接 URI。 如果連接參數值包含特殊字元,請確定您執行下列其中一項:
如果您使用 [新增配接器服務參考外掛程式] 或 [取用配接器服務載入巨集] 在 Visual Studio 中指定 URI,則必須在 [URI 屬性 ] 索引標籤中指定它們 as-is,也就是不使用任何逸出字元。 如果您直接在 [ 設定 URI ] 字段中指定 URI,而連接參數包含保留字元,則必須使用適當的逸出字元來指定連接參數。
如果您在 BizTalk Server 管理控制台中建立傳送或接收埠時指定 URI,而且連接參數包含保留字元,您必須使用適當的逸出字元來指定連接參數。
使用連線 URI 連線至 SAP 系統
有關如何在下列情況下建立與 SAP 系統連線的資訊:
使用 Consume Adapter Service BizTalk 專案附加元件或新增 Adapter Service Reference Visual Studio 插件,請參閱 在 Visual Studio 中連接到 SAP 系統。
在 BizTalk Server 解決方案中設定傳送埠或接收埠(位置),請參閱 手動設定實體埠系結至 SAP 配接器。
在程式設計解決方案中使用 WCF 通道模型,請參閱 使用 SAP 建立通道。
在程式設計解決方案中使用 WCF 服務模型,請參閱 設定 SAP 系統的用戶端系結。
使用 WCF ServiceModel 元數據實用工具(svcutil.exe),請參閱 使用 BizTalk Adapter for mySAP Business Suite 搭配 ServiceModel 元數據實用工具的指導。