步驟 1: 將 SAP 成品發佈為 WCF 服務
完成時間: 10 分鐘
目的: 您可以使用 WCF 配接器服務開發精靈來產生可在裝載環境中裝載的 WCF 服務,例如 Internet Information Services (IIS) 或 Windows Process Activation Service (WAS) 。 本主題示範如何使用精靈來產生 WCF 服務檔案。
必要條件
執行精靈之前,請先安裝下列專案:
Microsoft Windows Communication Foundation (WCF) BUSINESS (LOB) Adapter SDK 搭配 [ 完成 ] 選項或 [ 自訂 ] 選項 (並選擇此選項內的 [ 工具 ]) 。 這會安裝 WCF 配接器服務開發精靈的 Visual Studio 範本。
來自 BizTalk 配接器套件的 Microsoft BizTalk Adapter for mySAP Business Suite。
必要的 SAP 用戶端程式庫。
如需這些必要條件的詳細資訊,請參閱 BizTalk 配接器套件安裝指南。 安裝指南通常會安裝在 < 安裝磁片磁碟機 > :\Program Files\Microsoft BizTalk 配接器套件\Documents。
將 SAP 成品發佈為 WCF 服務
啟動 Visual Studio,然後建立專案。
在 [ 新增專案 ] 對話方塊中,從 [ 專案類型 ] 窗格中,選取 [Visual C#]。 從 [ 範本] 窗格中,選取 [WCF 配接器服務]。
或者,從 [ 專案類型] 窗格展開 [Visual C#],然後選取 [Web]。 從 [ 範本] 窗格中,選取 [WCF 配接器服務]。
注意
如果您使用 Web 開發元件安裝Visual Studio 2013,您也可以從[新增網站] 選項取得WCF 配接器服務範本。
指定解決方案的名稱和位置,然後按一下 [ 確定]。 WCF 配接器服務開發精靈隨即啟動。
在 [歡迎] 頁面中按 [下一步] 。
在 [選擇作業] 頁面上,指定要連線到 SAP 系統的連接字串。 若要這樣做:
在 [ 選取系結 ] 清單中,按一下 [sapBinding],然後按一下 [ 設定]。
在 [ 設定配接器 ] 對話方塊中,按一下 [ 安全性] 索引 標籤。
在 [用戶端認證類型] 清單中,選取 [ 使用者名稱],然後指定有效的 SAP 使用者名稱和密碼以連線到 SAP 系統。
按一下 [ URI 屬性] 索引 標籤,然後指定連接參數的值。 如需 SAP 配接器連線 URI 的詳細資訊,請參閱 建立 SAP 系統連線 URI。
注意
如果連接參數包含任何保留字元, (例如 XML 特殊字元) ,您必須在 [URI 屬性 ] 索引標籤中依原樣指定它們,也就是不使用任何逸出字元。 不過,如果您直接在 [ 設定 URI ] 方塊中指定 URI,而連接參數包含保留字元,則必須使用適當的逸出字元來指定連接參數。
按一下 [ 系結屬性] 索引 標籤,然後針對您想要鎖定的作業指定系結屬性的值。 在本教學課程中,會叫用BAPI_SALESORDER_GETLIST RFC 來取得特定客戶的銷售訂單清單。 銷售訂單資訊也可能包含日期資料行。 擷取日期資料行的值時,建議您在產生中繼資料時將 EnableSafeTyping 系結屬性設定為 True 。 如果設定這個屬性,SAP DATS 資料類型會以字串的形式呈現。
如需 SAP 資料類型如何對應至對等 .NET 類型的詳細資訊,請參閱 基本 SAP 資料類型。
For more information about binding properties, see Read about BizTalk Adapter for mySAP Business Suite binding properties.
按一下 [確定],然後按一下 [ 連線]。 建立連線之後,線上狀態會顯示為 [已連線]。
在 [選擇作業] 頁面上的 [ 選取合約類型 ] 清單中,按一下 [ 用戶端 (輸出作業]) 。
在 [ 選取類別] 方塊中,展開 SAP 成品類型。 例如,展開 RFC 節點以查看包含您想要產生 WCF 服務之 RFC 的功能群組。
在 [ 可用的類別和作業 ] 方塊中,選取您要產生 WCF 服務的作業,然後按一下 [ 新增]。 選取的作業會列在 [ 新增類別和作業 ] 方塊中。
注意
您可以為每個成品新增一個以上的作業。 您也可以為不同的 SAP 成品新增作業。 例如,您可以為 RFC 新增一個作業,另一個用於 IDOC。 此外,您可以在搜尋運算式中指定萬用字元來搜尋特定作業。 如需可搜尋作業之支援的特殊字元和節點層級的詳細資訊,請參閱 使用新增配接器中繼資料精靈連線至 Visual Studio 中的 SAP
在此範例中,會新增SD_RFC_CUSTOMER_GET和BAPI_SALESORDER_GETLIST RFC。
注意
某些版本的 SAP 系統會公開RFC_CUSTOMER_GET RFC,而不是SD_RFC_CUSTOMER_GET。
在 [選擇作業] 頁面上,按 [下一步]。
在 [設定服務和端點行為] 頁面上,指定要設定服務和端點行為的值。
在 [ 服務行為組態] 方塊中,指定下列各項的值:
針對 屬性 指定值 EnableMetadataExchange 將此設定為 True ,以建立中繼資料交換端點。 藉由將此設定為 True,您可以使用標準化通訊協定來提供服務中繼資料,例如 WS-Metadata Exchange (MEX) 和 HTTP/GET 要求。
預設值為 False。IncludeExceptionDetailsinFault 將此設定為 True ,以詳細說明傳回給用戶端以進行偵錯的 SOAP 錯誤,以包含 Managed 例外狀況資訊。 預設值為 False。 名稱 服務行為組態的名稱。 UseServiceCertificate 指定您是否要使用 WCF 的訊息層級安全性模式。 預設值為 True。
在本教學課程中,您必須將此設定為 False。FindValue 字串,指定要在 X.509 憑證存儲中搜尋的值。
注意: 只有當 UseServiceCertificate 設定為 True時,才指定此屬性的值。StoreLocation 值,指定服務可用來驗證用戶端憑證的憑證存放區位置。
注意: 只有當 UseServiceCertificate 設定為 True時,才指定此屬性的值。StoreName 要開啟的 X.509 憑證存儲名稱。
注意: 只有當 UseServiceCertificate 設定為 True時,才指定此屬性的值。X509FindType 要執行之 X.509 搜尋的類型。
注意: 只有當 UseServiceCertificate 設定為 True時,才指定此屬性的值。注意
如需憑證和相關屬性的詳細資訊,請參閱 上的 https://go.microsoft.com/fwlink/?LinkId=103771 「X509ClientCertificateCredentialsElement 屬性」。
在 [ 端點行為設定 ] 方塊中,指定下列各項的值:
針對 屬性 指定值 驗證類型 - 將此設定為 ClientCredentialUserNamePassword ,讓用戶端在取用 WCF 服務時指定使用者名稱和密碼。
- 將此設定為 HTTPUserNamePassword ,讓用戶端能夠將使用者名稱和密碼指定為 HTTP 標頭的一部分。
- 將此設定為 [自動 ] 以先讓用戶端透過 ClientCredential 介面指定認證。 如果失敗,用戶端可以傳遞認證做為 HTTP 標頭的一部分。
預設值為 Auto。若要讓 Microsoft Office SharePoint Server 取用 WCF 服務,您應該將此設定為 HTTPUserNamePassword。名稱 指定端點行為組態的名稱。 UsernameHeader 使用者名稱標頭的名稱。 在此範例中,請指定 MyUserHeader。 For more information about HTTP headers, see "Support for Custom HTTP and SOAP Headers" at https://go.microsoft.com/fwlink/?LinkId=106692.
注意: 如果 驗證類型 設定為 HTTPUserNamePassword,您必須指定此屬性的值。 如果 [驗證類型 ] 設定為 [自動],則此屬性是選擇性的。PasswordHeader 密碼標頭的名稱。 在此範例中,請指定 MyPassHeader。 For more information about HTTP headers, see "Support for Custom HTTP and SOAP Headers" at https://go.microsoft.com/fwlink/?LinkId=106692.
注意: 如果 驗證類型 設定為 HTTPUserNamePassword,您必須指定此屬性的值。 如果 [驗證類型 ] 設定為 [自動],則此屬性是選擇性的。下圖顯示具有指定值的 [設定服務和端點行為] 頁面。
在 [設定服務和端點行為] 頁面上,按 [下一步]。
在 [設定服務端點系結和位址] 頁面上,[ 選取要 設定的合約] 方塊會列出您在 [選擇作業] 頁面上選取作業的 SAP 成品。
例如,如果您在 RFC 和 IDOC 下選取成品, 選取要設定的合約 會同時列出 RFC 和 IDOC。 如果您只選取 RFC,則方塊只會列出 RFC。
[ 選取的合約] 方塊底下的 [作業 ] 會顯示您在 [選擇作業] 頁面上針對每個成品選取的作業。
在 [ 設定合約的位址和系結 ] 方塊中,指定下列的值:
針對 屬性 指定值 繫結組態 精靈僅支援基本 HTTP 系結。 因此,系結組態欄位會自動填入 System.ServiceModel.Configuration.BasicHttpBindingElement。
按一下省略號按鈕 (...) 變更 HTTP 系結的屬性。 若要使用安全通道,您必須一律將 Mode 屬性設定為 Transport。 精靈會將 Mode 屬性的預設值設定為 Transport。
For more information about the other bindings exposed, see "BasicHttpBindingElement Members" at https://go.microsoft.com/fwlink/?LinkId=103773.端點名稱 指定合約的端點名稱。 此頁面上的其他欄位會根據您在先前頁面中指定的值自動填入。
按一下 [套用]。 針對 [ 選取要設定的合約 ] 方塊底下顯示的所有合約執行此步驟。
注意
如果您未在此頁面上指定任何值,則會接受所有合約的預設值。
下圖顯示具有指定值的 [設定服務端點系結和位址] 頁面。
在 [設定服務端點系結和位址] 頁面上,按 [下一步]。 [摘要] 頁面會列出 SAP 成品的樹狀結構,在該結構下,針對每個成品選取的作業。
檢閱摘要,然後按一下 [ 完成]。
精靈會建立 WCF 服務,並將下列檔案新增至 Visual Studio 專案:
.svc 檔案。 這是 WCF 服務檔案。 精靈會為每個合約產生一個檔案。
Web.config 檔案。
服務程式代碼 (.cs 檔案)
發佈 WCF 服務。
請確定已針對 Internet Information Services (IIS) 啟用 SSL。 如需如何啟用 IIS SSL 的指示,請參閱 https://go.microsoft.com/fwlink/?LinkId=197170 。
以滑鼠右鍵按一下方案總管中的專案,然後按一下 [發佈]。
在 [ 發佈 Web ] 對話方塊中,指定 WCF 服務的 URL。 例如:
https://<computer_name>/Customer_Order/
從 [ 複製] 方塊中,按一下 [所有專案檔]。
按一下 [發佈]。
確認 WCF 服務已成功發佈。
啟動 IIS Microsoft Management Console。 按一下 [ 開始] 並指向 [ 系統管理工具],然後按一下 [ Internet Information Services (IIS) 管理員]。
流覽至您發佈服務的節點。 針對Customer_Order服務,流覽至[Internet Information Services>< 電腦名稱稱 >>網站>預設網站> ]Customer_Order。
在右窗格中,以滑鼠右鍵按一下 Rfc.svc 檔案,然後按一下 [ 流覽]。
網頁會顯示用來擷取 WSDL 的 URL。 您可能想要使用 svcutil 命令來測試中繼資料擷取。 例如,擷取Customer_Order服務的中繼資料的命令為:
svcutil.exe https://<computer_name>/Customer_Order/Rfc.svc?wsdl
後續步驟
若要建立 SAP 成品的應用程式定義檔,請使用商務資料目錄定義編輯器。 如需指示 ,請參閱步驟 2:為 SAP 成品建立應用程式定義檔 。 應用程式定義檔會識別 LOB 資料的儲存位置及其儲存格式。