建立 SAP 系統連線 URI
Microsoft BizTalk Adapter for mySAP Business Suite 連線 URI 包含配接器用來建立 SAP 系統連線的屬性。
重要
根據預設,SAP 用戶端程式庫 (librfc32u.dll) 最多支援 100 個 SAP 系統的連線。 如果您超過此數目的連線,將會擲回例外狀況。 基於這個理由,您應該設定 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 (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 中的主機資訊
) 的 hostinfoparams (SAP 主機資訊是由 SAP 連線 URI 中的下列元素表示: connectiontype/conndetail1/conndetail2
。 這些參數會指定 SAP 系統的用戶端連線詳細資料。 您可以在query_string中指定有關 SAP 用戶端連線的其他詳細資料,以及建立作為 SAP RFC 目的地接聽程式的詳細資料。 SAP 配接器支援 SAP 連線 URI 中的下列用戶端連線類型:
答:應用程式主機型連線,其中連線 URI 會指定 SAP 配接器連線至 SAP 的應用程式伺服器。
B:負載平衡的連線,其中連線 URI 會指定 SAP 配接器連線至 SAP 的訊息伺服器。
D:以目的地為基礎的連線,其中連接 URI 會指定 saprfc.ini 檔案中的目的地,其中包含 SAP 的連線參數。
下表描述如何在 SAP 連線 URI 中指定這些連線。
連接類型 | Conndetail1 | Conndetail2 | 描述 |
---|---|---|---|
A | ASHOST (應用程式伺服器主機) | SYSNR (SAP 系統號碼) | 指定應用程式主機型連線。 針對應用程式主機型連線,可以在query_string中指定選擇性閘道主機和閘道服務。 |
B | MSHOST (訊息伺服器主機) | R3NAME (SAP R3 Name) | 指定透過訊息伺服器的負載平衡連線。 針對負載平衡連線,可以在query_string中指定選擇性伺服器群組和訊息服務。 |
D | DEST (目的地,其中包含 saprfc.ini 檔案中的連線參數) | -- | 指定以目的地為基礎的連線。 SAP 連線參數包含在 saprfc.ini 檔案中指定的目的地中。 在目的地中只能指定 A 型別和 B 型連線。 |
注意
如果您在 saprfc.ini 檔案中指定連接值,請確定該檔案位於存取檔案的相同資料夾中 .exe,或存取 SAP 系統所需的標準位置。 如需詳細資訊,請參閱 SAP 檔。
SAP 連線 URI 中的查詢資訊
SAP 連線 URI 中 (query_string) 的查詢資訊包含可包含的選擇性參數,以指定下列專案:
應用程式主機型連線的其他連線詳細資料, (A) 。
B (B) 負載平衡連線的其他連線詳細資料。
在 SAP 系統上指定 RFC 目的地的接聽程式詳細資料,讓 SAP 系統可以將 RFC、TRFC 和 IDocs 傳送至 SAP 配接器。
是否要啟用 SAP 安全網路通訊 (SNC) 。
指定偵錯組態的詳細資料。
查詢參數是選擇性的;不過,必須指定接聽程式詳細資料,SAP 配接器才能作為 RFC 伺服器。
下表描述查詢參數,並指出其有效 SAP 連線類型。
值 | 有效的連線類型 | Description |
---|---|---|
GwHost | A | 指定應用程式主機型連線中選擇性閘道主機的名稱。 |
GwServ | A | 指定應用程式主機型連線中選擇性閘道服務的名稱。 |
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/hostname/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) |
登入資訊 | 語言 | 語言 (userinfoparams) |
訊息伺服器 | 應用程式伺服器組名 | 群組 (查詢字串) |
訊息伺服器 | 訊息伺服器主機 | Conndetail1 (主機資訊連線類型 B) |
訊息伺服器 | 訊息伺服器服務 | MsServ (查詢字串) |
訊息伺服器 | R/3 系統名稱 | Conndetail2 (主機資訊連線類型 B) |
其他 | 連接類型 | 連線類型 (主機資訊:A、B 或 D) |
其他 | SAP 路由器 | SAPROUTER (查詢字串) |
RFC 伺服器 | 目的地名稱 | ListenerDest (查詢字串) |
RFC 伺服器 | 閘道器主機 | ListenerGwHost (查詢字串) |
RFC 伺服器 | 閘道器服務 | ListenerGwServ (查詢字串) |
RFC 伺服器 | Program Id | 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 檔案中指定連接值,請確定檔案位於與存取檔案或 SAP 系統所需之標準位置相同的位置 .exe。 如需詳細資訊,請參閱 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 屬性 ] 索引標籤中指定它們原狀,也就是不使用任何逸出字元。 如果您直接在 [ 設定 URI ] 欄位中指定 URI,且連接參數包含保留字元,則必須使用適當的逸出字元來指定連接參數。
如果您在 BizTalk Server 管理主控台中建立傳送或接收埠時指定 URI,且連線參數包含保留字元,則必須使用適當的逸出字元來指定連接參數。
使用連線 URI 連線至 SAP 系統
如需如何在下列情況下建立 SAP 系統連線的相關資訊:
使用取用配接器服務 BizTalk 專案增益集或新增配接器服務參考 Visual Studio 外掛程式,請參閱 連線到 Visual Studio 中的 SAP 系統。
在BizTalk Server解決方案中設定傳送埠或接收埠 (位置) ,請參閱手動設定實體埠系結至 SAP 介面卡。
在程式設計解決方案中使用 WCF 通道模型,請參閱 使用 SAP 建立通道。
在程式設計解決方案中使用 WCF 服務模型,請參閱 設定 SAP 系統的用戶端系結。
使用 WCF ServiceModel 中繼資料公用程式工具 (svcutil.exe) ,請參閱 搭配 BizTalk Adapter for mySAP Business Suite 使用 ServiceModel 中繼資料公用程式工具。