自訂 Windchill Navigate > 建立自訂任務 > 配置 OData 連接器
配置 OData 連接器
Windchill Navigate 支援使用 OData 連接器與 Windchill REST Services 來存取您自訂任務的資料。
* 
Windchill Navigate 9.2 起,已移除 WindchillConnector (ptc-windchill-demo-thing)。如有必要,請更新您的自訂任務以使用 OData 連接器。
先決條件
您必須先配置 ThingWorx Integration Runtime,然後才能使用 OData 連接器。一般而言,ThingWorx Integration RuntimeWindchill Navigate 安裝工具在安裝流程中進行配置。
建立連接器
設定 OData 連接器的方式有兩種:您可建立連接器的新實例,也可使用現成連接器 ptc-windchill-OData-connector。選擇適用於您的使用案例的最佳選項。
對於使用 Info*Engine 任務的自訂任務,建議您使用現成 ptc-windchill-OData-connector。這是因為現成連接器已提供 Info*Engine 服務。
欲建立 OData 連接器的新實例,請遵循下列步驟:
1. ThingWorx Composer 中,瀏覽「建模」>「整合連接器」,然後按一下「新增」
2. 「選擇範本」視窗中,選取 ODataConnector 物範本,然後按一下「確定」
3. 輸入連接器名稱與專案。
現在您即已準備就緒,可以配置連接器了。
配置連接器
1. 在 Composer 中,開啟您建立的連接器,或搜尋 ptc-windchill-OData-connector 並將其開啟。「一般資訊」頁即會開啟。
2. 按一下「組態」標籤。「組態」頁即會開啟。
您的組態取決於您的驗證方法:單一登入、Windchill 驗證或固定驗證。
單一登入 
如果您已配置單一登入,請遵循下列步驟:
1. 「泛用連接器連線設定」下,針對「驗證類型」,選取 OAuth (「工作階段使用者」)。
2. 「授權伺服器 ID」底下,輸入您在 sso-settings.json 中提供的 AuthorizationServerSettingsID 值,例如 PingFed1
3. 「授權伺服器範圍設定」下按一下「新增」AuthorizationServerScopesSettings 視窗即會開啟。
4. 「範圍」底下,輸入您在 PingFederate 中註冊的 Windchill 範圍,例如 WINDCHILL
5. 按一下「新增」
6. 「CSRF 設定」下輸入以下資訊:
「CSRF 取得請求的相對 URL」- servlet/odata
「CSRF 權杖名稱」 - CSRF_NONCE
7. 「HTTP 連接器連線設定」底下,輸入以下資訊:
「基礎 URL」 - Windchill URL。URL 的結尾必須為 /oauth。使用此格式:
[https]://[Windchill Host]:[port]/[Windchill-web-app]/oauth
此格式用於指定連線使用 OAuth 標準,並允許請求資源提供者中的資料。
「相對 URL」- servlet/odata
不需要輸入使用者名稱與密碼。
8. 按一下「儲存」。OData 連接器現已配置為在單一登入環境中工作。
Windchill 驗證 
如果您已配置 Windchill 驗證,請遵循下列步驟:
1. 「泛用連接器連線設定」下的「驗證類型」中,選取 None
2. 「CSRF 設定」下輸入以下資訊:
「CSRF 取得請求的相對 URL」- servlet/odata
「CSRF 權杖名稱」 - CSRF_NONCE
3. 「HTTP 連接器連線設定」底下,輸入以下資訊:
「基礎 URL」 - 從 ODataConnector 接收 Info*Engine 請求的 Windchill 伺服器。使用此格式:
[https]://[Windchill Host]:[port]/[Windchill-web-app]/sslClientAuth
「相對 URL」- servlet/odata
「連線 URL」 - /servlet/WindchillGW/wt.httpgw.HTTPServer/ping
不需要輸入使用者名稱與密碼。
4. 按一下「儲存」
如果您使用現成 ptc-windchill-OData-connector 連接器,連接器現在已配置為在您的 Windchill 驗證環境中工作。
如果您已建立 OData 連接器的新實例,請遵循下列額外步驟:
1. 按一下「服務」標籤。「服務」頁即會開啟。
2. 找到 GetCustomHeaderParameters 服務,然後按一下 「取代」 來取代服務。
3. 將下列程式碼貼上至此服務中:
/*Get Current User Language*/
var Language = Resources["CurrentSessionInfo"].GetCurrentUserLanguage();
/*If it is undefined or "Default" use "en-US"*/
if (Language === undefined || Language === null || Language.length <= 0) {
Language = "en-US";
} else if (Language.indexOf("Default") !== -1) {
Language = Language.replace("Default", "en-US");
}
var params = {
infoTableName: "InfoTable",
dataShapeName: "PTC.WCODataCustomHeaderDataShape"
};
var result = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);
params = {
tableName: "GenericConnectorConnectionSettings" /* STRING */
};
var configTable = me.GetConfigurationTable(params);
var row = configTable.getRow(0);
var authType = row.getStringValue("AuthenticationType");
if ("None".equals(authType)) {
/*This is a case for Windchill as IDP connectivity type*/
var CurrentUser = Resources["CurrentSessionInfo"].GetCurrentUser();
/*Add authorization header having Base64 Encoded value of "username:emptypassword" */
var baseEncodedStr = base64EncodeString (CurrentUser + ':');
var authHeaderValue = "Basic " + baseEncodedStr;
row = {
"Accept-Language": Language,
"Authorization": authHeaderValue,
"Content-Type": "application/json",
"Prefer": "odata.maxpagesize=2000"
};
} else {
row = {
"Accept-Language": Language,
"Content-Type": "application/json",
"Prefer": "odata.maxpagesize=2000"
};
}
result.AddRow(row);
4. 按一下「儲存並繼續」以儲存服務。然後按一下「完成」
5. 按一下「儲存」以儲存連接器。OData 連接器現已配置為在 Windchill 驗證環境中工作。
固定驗證 
如果您已配置固定驗證,請遵循下列步驟:
1. 「泛用連接器連線設定」下的「驗證類型」中,選取 Fixed
2. 「CSRF 設定」下輸入以下資訊:
「CSRF 取得請求的相對 URL」- servlet/odata
「CSRF 權杖名稱」 - CSRF_NONCE
3. 「HTTP 連接器連線設定」底下,輸入以下資訊:
「使用者名稱」- 您的 Windchill 管理員使用者名稱
「密碼」 - 您的 Windchill 管理員密碼
「基礎 URL」 - 從 ODataConnector 接收 Info*Engine 請求的 Windchill 伺服器。使用此格式:
[https]://[Windchill Host]:[port]/[Windchill-web-app]
「相對 URL」- servlet/odata
4. 按一下「儲存」。OData 連接器現已配置為在固定驗證環境中工作。
顯露連接器上的服務
配置完連接器之後,接下來的步驟取決於您的自訂任務:
對於不使用 Info*Engine 任務的自訂任務,請顯露連接器上的所需服務。如需有關顯露服務的資訊,請參閱「 說明中心」的顯露整合連接器上的服務與為為服務建立新建 API 對應主題。
對於使用 Info*Engine 任務的自訂任務,請繼續透過 OData 連接器執行 Info*Engine 服務主題。
這是否有幫助?