步驟 4:設定 BizTalk Server 解決方案
在上一個步驟中,您已建立並部署BizTalk Server應用程式,以將 Salesforce 通知接收到BizTalk Server,並將詳細資料插入內部部署SQL Server資料庫中。 在此步驟中,我們將在 BizTalk Server 管理主控台中設定應用程式。 設定應用程式主要牽涉到建立對應于我們在協調流程中建立之邏輯埠的實體埠。 它也牽涉到將實體埠系結至邏輯埠。 我們將執行下列步驟來設定BizTalk Server應用程式:
設定要求-回應 WCF-BasicHttpRelay 接收位置,以接收 Salesforce 的機會通知。
設定要求-回應 WCF-WebHttp 傳送埠,以將查詢傳送至 Salesforce,以擷取與所接收商機通知相關的產品詳細資料。 此傳送埠也會從 Salesforce 接收查詢回應。
設定單向 WCF-SQL 傳送埠,以將 Salesforce 的查詢回應插入內部部署SQL Server資料庫。
藉由將協調流程中的邏輯埠與在 BizTalk Server 管理主控台中建立的實體埠產生關聯,以設定BizTalk Server應用程式。
若要設定 WCF-BasicHttpRelay 接收位置
開啟 BizTalk Server 管理主控台。 展開 [應用程式] 節點,然後尋找 SalesforceIntegration 應用程式。 當您從 Visual Studio 部署BizTalk Server專案時,就會建立此應用程式。
展開 SalesforceIntegration 應用程式,以滑鼠右鍵按一下 [ 接收埠],指向 [ 新增],然後按一下 [ 要求-回應接收埠]。 將埠名稱指定為
ReceiveOppNotification
,並從左窗格中按一下 [ 接收位置]。在 [接收位置屬性] 對話方塊中,指定下列值:
參數 值 名稱 輸入 ReceiveOppNotification
。類型 選取 WCF-BasicHttpRelay 接收處理常式 選取 BizTalkServerApplication 接收管線 選取 XMLReceive 傳送管線 選取 PassThruTransmit 按一下 [針對埠類型進行設定]。
在 [WCF-BasicHttpRelay 傳輸屬性] 對話方塊中,指定下列值:
在 [ 一般 ] 索引標籤上,針對 [ 位址 (URI) ],輸入
https://btssalesforce.servicebus.windows.net/notifications/opportunity
。 在這裡, btssalesforce 是您在 步驟 1:建立服務匯流排命名空間中建立的命名空間。 您在此處指定的 URL 與您在 步驟 2:設定 Salesforce 系統中建立 Salesforce工作流程時所指定的 URL 相同。 您設定工作流程,每當商機階段設定為 [已關閉] 時,Salesforce 就會將通知傳送至 URLhttps://btssalesforce.servicebus.windows.net/notifications/opportunity
。 我們會在此指定相同的 URL 做為此接收位置設定的一部分。 啟用接收位置時,會在 Microsoft Azure 中建立 URL 指定的轉寄端點。在 [ 安全性] 索引標籤上,指定下列專案:
針對 [安全性模式],選取 [ 傳輸 ],然後針對 [ 轉送用戶端驗證類型],選取 [ 無]。
選取 [ 啟用服務探索 ] 核取方塊,以在 Service Registry中發佈服務行為。 指定 顯示名稱 ,代表服務發佈至登錄的名稱。 您可以將 探索模式 設定為公用或私人。 在本教學課程中,將 [顯示名稱 ] 設定為
SF Outbound Notification
,並將 [探索模式 ] 設定為 [公用]。在 [存取控制服務] 方塊下,按一下 [ 編輯]。 針對存取控制 服務 STS Uri,輸入
https://btssalesforce-sb.accesscontrol.windows.net/
。 針對 [簽發者名稱 ] 和 [ 簽發者金鑰],輸入您在 步驟 1:為[預設使用者 ] 和 [ 預設金鑰 ] 欄位建立服務匯流排命名空間中所儲存的值。
按一下 [確定 ],直到您結束所有開啟的對話方塊為止。
若要設定 WCF-WebHttp 傳送埠
展開 SalesforceIntegration 應用程式,以滑鼠右鍵按一下 [ 傳送埠],指向 [ 新增],然後按一下 [ 靜態 Solicit-Response 傳送埠]。
在 [傳送埠屬性] 對話方塊中,指定下列值:
參數 值 名稱 輸入 SalesforceREST
。類型 選取 WCF-WebHttp 傳送標頭 選取 BizTalkServerApplication 傳送管線 選取 PassThruTransmit 接收管線 選取 [新增][名稱空間 ],然後按一下管線的省略號按鈕以設定管線。
- 在 [階段 1:解碼] 下,針對 NamespaceBase輸入http://BtsSalesforceIntegration.QueryResult
。 這是您在 步驟 3b:使用 WCF-WebHttp 配接器從 Salesforce 擷取商機詳細資料的 QueryResult.xsd 架構命名空間。 當 AddNamespace 接收管線收到 Salesforce 的回應時,會將此命名空間新增至回應訊息。 根據預設,來自 Salesforce 的回應訊息不包含任何命名空間。
針對 NamespacePrefix,輸入sf
。
- 在 [階段 2:可反組譯]下,接受預設值,然後按一下 [ 確定]。在 [傳送埠內容] 對話方塊中 ,按一下 [ 針對埠類型進行設定]。
在 [WCF-WebHttp 傳輸屬性] 對話方塊中,指定下列值:
在 [一般] 索引標籤上,執行下列動作:
針對 [位址 (URI) ],輸入
https://<Salesforce_instance_name>.salesforce.com/services/data/v24.0
。 您可以複製 HTTPs:// 與 Salesforce.com 之間的文字,以擷取 Salesforce 實例名稱,網址列中已開啟 Salesforce.com 入口網站。 例如,如果 Salesforce 入口網站中的 URL HTTPs://na15.salesforce.com/home/home.jsp,Salesforce實例名稱會是na15。在 [HTTP 方法和 URL 對應] 方塊底下,指定下列專案:
<BtsHttpUrlMapping> <Operation Method="GET" Url="/query?q={VAR}" /> </BtsHttpUrlMapping>
以下是此設定的使用方式: 若要查詢 Salesforce 以擷取商機通知的詳細資訊,我們必須在 [ 位址 ] 欄位中指定的 Salesforce REST 端點上執行 GET 作業 (,) 並附加查詢以擷取商機詳細資料。 因此,URL 看起來應該像這樣:
https://na15.salesforce.com/services/data/v24.0/query?q=<query_string>
我們已在 [ 位址 (URI) ] 欄位中擁有 Salesforce REST 端點。 因此,作為 HTTP 方法和 URL 對應 屬性的一部分,我們會使用 GET 方法指定 ,並將 {VAR} 附加為變數。
在 [ 變數對應] 方塊中,按一下 [編輯]。 在此方塊中,您會指定在執行時間推斷 {VAR} 變數值的方式。
在 步驟 3b:使用 WCF-WebHttp 配接器從 Salesforce 擷取商機詳細資料,我們已升級 Query 屬性,導致建立 PropertySchema.xsd。 我們將使用該架構中的 Query 元素,將該專案對應至 URL 中的 {VAR} 變數,以傳遞查詢字串。
在 [變數對應] 對話方塊中, [變數 ] 資料行會列出您稍早指定的變數名稱,例如 VAR。 在 [ 屬性名稱] 資料行中,指定要傳遞至變數之查詢字串的升級屬性名稱。 在本教學課程中,該屬性名稱為 Query。 最後,針對 [屬性命名空間],指定 PropertySchema.xsd的命名空間,也就是
https://BtsSalesforceIntegration.PropertySchema
。 按一下 [確定]。索引標籤
在 [ 安全性] 索引標籤上,針對 [ 安全性模式],選取 [ 傳輸]。
在 [行為] 索引標籤上,使用您在步驟 3d:啟用BizTalk Server從 Salesforce 傳送和接收訊息以向 Salesforce進行驗證的自訂行為。 若要使用行為,請執行下列動作:
以滑鼠右鍵按一下 [EndpointBehavior ],然後選取 [ 新增擴充功能]。
在 [ 選取行為延伸模組 ] 對話方塊中,選取 [Microsoft.BizTalk.Adapter.Behaviors.Demo.Salesforce]。 我們已在將行為新增至 machine.config 時使用此行為名稱。
選取新增的行為,然後指定下列值:
參數 值 consumerKey (必要) 指定 Salesforce 帳戶的取用者金鑰。 您可以移至您在 步驟 2:設定 Salesforce 系統中所建立的 Salesforce 連線應用程式,以擷取用者金鑰。 consumerSecret (必要) 從您在 步驟 2:設定 Salesforce 系統中所建立的 Salesforce 連線應用程式中擷取者密碼。 必要密碼 () 指定 Salesforce 帳戶的密碼。 若要從協力廠商應用程式連線到 Salesforce,您必須以密碼格式指定密碼,後面接著安全性權杖。 例如,如果密碼為 密碼 ,且權杖為 XXXXXX,您必須輸入 passwordXXXXXX
。sessionTimeout 這是預設值 300。 必要使用者名稱 () 指定 Salesforce 開發人員登入帳戶。 索引標籤
在 [ 訊息] 索引標籤的 [ 輸出消息] 方塊下,針對 [ 隱藏動詞的本文],輸入
GET
。 這可確保 GET 方法不會在要求中傳送至 Salesforce 的訊息承載。按一下 [確定 ],直到您結束所有開啟的對話方塊為止。
設定 WCF-SQL 傳送埠
展開 SalesforceIntegration 應用程式,以滑鼠右鍵按一下 [ 傳送埠],指向 [ 新增],然後按一下 [ 靜態單向傳送埠]。
在 [傳送埠屬性] 對話方塊中,指定下列值:
參數 值 名稱 輸入 SendToSQL
。類型 選取 WCF-SQL 傳送標頭 選取 BizTalkServerApplication 傳送管線 選取 [XMLTransmit] 在 [傳送埠屬性] 對話方塊中 ,按一下 [ 根據埠類型進行設定]。
在 [WCF-SQL 傳輸屬性] 對話方塊中,指定下列值:
在 [一般] 索引標籤上,執行下列動作:
在 底下
Endpoint Address
,按一下 [ 設定]。 針對 InitialCatalog 屬性,指定包含必須輸入 Salesforce 回應資料之資料表的資料庫名稱。 在本教學課程中,請將此值輸入為Orders
。 針對[伺服器] 屬性,輸入安裝SQL Server資料庫的伺服器名稱。在 [SOAP 動作] 標頭下,指定要用於插入 OrderDetails 資料表的動作。 您必須輸入
TableOp/Insert/dbo/OrderDetails
。
在 [認證] 索引標籤上,如果您讓配接器保持空白,配接器會使用 Windows 驗證連線到SQL Server資料庫。 如果您想要使用任何其他形式的驗證,您可以指定相關的值。
按一下 [確定 ],直到您結束所有開啟的對話方塊為止。
設定BizTalk Server應用程式
在 BizTalk Server 管理主控台中,以滑鼠右鍵按一下SalesforceIntegration應用程式,然後按一下 [設定]。
在 [設定應用程式] 對話方塊中,選取 NotificationServiceClient 協調流程,然後從右窗格中執行下列動作:
針對 [主機],選取 [BizTalkServerApplication]。
將邏輯接收埠 SalesforceNotificationPort 對應至實體接收埠 ReceiveOppNotification。
將邏輯傳送埠 SalesforceRESTInterface 對應至實體傳送埠 SalesforceREST。
將邏輯傳送埠 SendToSQL 對應至實體傳送埠 SendToSQL。
按一下 [確定]。
以滑鼠右鍵按一下 SalesforceIntegration 應用程式,然後按一下 [ 啟動]。 這會啟動 NotificationServiceClient 協調流程、啟用接收位置,並啟動傳送埠。
在本主題中,我們已完成在 BizTalk Server 管理主控台中設定解決方案,方法是將協調流程中的邏輯埠與實體埠產生關聯。