使用 ODataConnector 執行 Info*Engine 服務
ThingWorx Navigate 現在支援 OData 連接器來執行 Info*Engine 任務。如果您的自訂任務使用 Info*Engine 任務,則使用 OData 連接器呼叫這些 Info*Engine 任務。
OData 連接器支援以下 Windchill 發行版本:
• 11.1 M010 或更新版本
• 11.1 F000 CPS03 或更新版本
• 11.0 M030 CPS09 或更新版本
|
在 ThingWorx Navigate 的未來發行版本中,將取代對 Windchill 連接器、ptc-windchill-connector 與 ptc-windchill-swagger-connector 的支援。針對平滑轉移至不支援舊 Windchill 連接器的發行版本,現在使用本主題中的步驟,透過 ptc-windchill-OData-connector 執行 Info*Engine 任務。
|
欲使用 OData 連接器執行 Info*Engine 任務,請首先將 ptc-windchill-OData-connector 配置為連線至 Info*Engine 網域 Windchill REST 服務。然後,您可以使用 Windchill REST 服務執行 Info*Engine 任務。
|
• 確保使用 ThingWorx 中的新 Composer 使用者介面以配置 OData 連接器及執行 Info*Engine 任務。
|
1. 在 ThingWorx Composer 中搜尋 ptc-windchill-OData-connector,然後將其開啟。「一般資訊」頁即會開啟。
2. 按一下「組態」。「組態」頁即會開啟。
您的組態取決於您的驗證方法:單一登入、Windchill 驗證或固定驗證。
單一登入
如果您已配置單一登入,請遵循下列步驟:
1. 在「泛用連線器連線設定」下的「驗證類型」中,選取 SSO。
2. 在「授權伺服器 ID」底下,輸入您在 sso-settings.json 中提供的 AuthorizationServerSettingsID 值,例如 PingFed1。
3. 在 Authorization Server Scope 下按一下「新增」。「授權伺服器範圍設定」視窗隨即開啟。
4. 在「範圍」底下,輸入您在 PingFederate 中註冊的 Windchill 範圍,例如 WINDCHILL_READ。
5. 按一下「新增」。
6. 在「CSRF 設定」下輸入以下資訊:
◦ 「CSRF 取得請求的相對 URL」 - servlet/odata
◦ 「CSRF 權杖名稱」 - CSRF_NONCE
7. 在「OData 連線器連線設定」下,按一下「新增」。「OData 連接器連線設定」視窗隨即開啟。
8. 在「服務根相對 URL」下輸入 IE,然後按一下「新增」。如果您已新增服務根相對 URL,請跳至步驟 9。
9. 在「HTTP 連接器連線設定」底下,輸入以下資訊:
◦ 「基礎 URL」 - Windchill URL。URL 的結尾必須為 /oauth/。使用此格式:
[https]://[Windchill Host]:[port]/[Windchill-web-app]/oauth/
此格式用於指定連線使用 OAuth 標準,並允許請求資源提供者中的資料。
◦ 「相對 URL」 - servlet/odata
不需要輸入使用者名稱與密碼。
10. 按一下「儲存」。OData 連接器現已配置為在單一登入環境中工作。
現在,跳過「執行 Info * Engine 任務」部份。
Windchill 驗證
如果您已配置 Windchill 驗證,請遵循下列步驟:
1. 在「泛用連線器連線設定」下的「驗證類型」中,選取 None。
2. 在「CSRF 設定」下輸入以下資訊:
◦ 「CSRF 取得請求的相對 URL」 - servlet/odata
◦ 「CSRF 權杖名稱」 - CSRF_NONCE
3. 在「OData 連線器連線設定」下,按一下「新增」。「OData 連接器連線設定」視窗隨即開啟。
4. 在「服務根相對 URL」下,輸入此值:
tw.friendly-name.ServiceRootReletive
如果您已新增服務根相對 URL,請跳至步驟 6。
5. 按一下「新增」。
6. 在「HTTP 連接器連線設定」底下,輸入以下資訊:
◦ 「基礎 URL」 - 從 ODataConnector 接收 Info*Engine 請求的 Windchill 伺服器。使用此格式:
[https]://[Windchill Host]:[port]/[Windchill-web-app]/sslClientAuth
◦ 「相對 URL」 - servlet/odata
◦ 「連線 URL」 - /servlet/WindchillGW/wt.httpgw.HTTPServer/ping
不需要輸入使用者名稱與密碼。
7. 按一下「儲存」。
8. 按一下「服務」。
9. 按一下 GetCustomerHeaderParameters。
10. 按一下「編輯」。
11. 在輸入中複製及貼上此指令集:
var sessionQueryParam = "wt.effectiveUid";
var Language = Resources["CurrentSessionInfo"].GetCurrentUserLanguage();
var params = {
infoTableName : "InfoTable",
dataShapeName : "NavigateCustomHeadersDataShape"
};
var result = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);
var CurrentUser = Resources["CurrentSessionInfo"].GetCurrentUser();
params = {
tableName: "GenericConnectorConnectionSettings" /* STRING */
};
var configTable = me.GetConfigurationTable(params);
var row = configTable.getRow(0);
var authType = row.getStringValue("AuthenticationType");
if("None".equals(authType)) {
var camelHttpQuery = sessionQueryParam + "=" + CurrentUser;
row = {"Accept-Language" : Language, "CamelHttpQuery": camelHttpQuery };
} else {
row = {"Accept-Language" : Language };
}
result.AddRow(row);
12. 按一下「儲存並繼續」,然後按一下「完成」。
13. 按一下「儲存」。
現在,跳過「執行 Info * Engine 任務」部份。
固定驗證
如果您已配置固定驗證,請依照下列步驟配置 OData 連接器:
1. 在「泛用連線器連線設定」下的「驗證類型」中,選取 Fixed。
2. 在「CSRF 設定」下輸入以下資訊:
◦ 「CSRF 取得請求的相對 URL」 - servlet/odata
◦ 「CSRF 權杖名稱」 - CSRF_NONCE
3. 在「OData 連線器連線設定」下,按一下「新增」。「OData 連接器連線設定」視窗隨即開啟。
4. 在「服務根相對 URL」下輸入 IE,然後按一下「新增」。如果您已新增服務根相對 URL,請跳至步驟 5。
5. 在「HTTP 連接器連線設定」底下,輸入以下資訊:
◦ 「使用者名稱」- 您的 Windchill 管理員使用者名稱
◦ 「密碼」 - 您的 Windchill 管理員密碼
◦ 「基礎 URL」 - 從 ODataConnector 接收 Info*Engine 請求的 Windchill 伺服器。使用此格式:
[https]://[Windchill Host]:[port]/[Windchill-web-app]
◦ 「相對 URL」 - servlet/odata
6. 按一下「儲存」。OData 連接器現已配置為在固定驗證環境中工作。
繼續進行「執行 Info * Engine 任務」部份。
執行 Info * Engine 任務
現在,使用下列服務執行 Info*Engine 任務:
1. 按一下「服務」。「服務」頁即會開啟。
2. 針對
RefreshEndpointCache,按一下
。
「執行服務」視窗即會開啟。
3. 按一下「執行」。您將會收到訊息:Success。您的服務已成功執行。
4. 按一下「完成」。
5. 針對
InvokeIETask,按一下
。
6. 在「輸入」視窗中,新增下列 JSON 格式的資訊:
◦ Task - Info*Engine 任務的 XML 檔案。此檔案位於此處:<Windchill 安裝>/<Windchill_Home>/tasks/。
| 請確定此任務已啟用以待執行。欲執行此操作,請確認下列標示顯示在 XML 檔案的開頭: <%@page language="java" access="http"%> |
◦ Params - (選用) 包含可作為參數傳遞到 Info*Engine 任務之名稱值對的 JSON 陣列。
範例:
{
"Task": "wt/federation/delegates/windchill/QueryObjects.xml",
"Params": [
{ "Name": "type", "Value": "wt.part.WTPart" },
{ "Name": "where", "Value": "name=SOME_PART_NAME" }
]
}
7. 按一下「執行」以啟動 Info*Engine 任務。服務的輸出為 JSON 格式,包含下列內容:
◦ @odata.context - 有效負載的前後關聯 URL。
◦ Value - 包含具有 Groupname 與 Element 內容的 JSON 物件之 JSON 陣列。
8. 欲執行其他 Info * Engine 任務,請重複步驟 1-7。