使用 OData 连接器执行 Info*Engine 服务
ThingWorx Navigate 现在支持 OData 连接器以执行 Info*Engine 任务。如果您的自定义任务使用 Info*Engine 任务,则使用 OData 连接器调用这些 Info*Engine 任务。
有关
Windchill OData 连接器支持的最新信息,请查看
ThingWorx Navigate 平台支持一览表。
|
在即将发布的 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 任务。
1. 在 ThingWorx Composer 中,搜索 ptc-windchill-OData-connector,然后打开它。“常规信息”页面随即打开。
2. 单击“配置”。将显示“配置”页面。
您的配置取决于身份验证方法:单一登录、Windchill 身份验证或固定身份验证。
单一登录
如果您配置了单一登录,请按照下列步骤操作:
1. 在“通用连接器连接设置”下,对于“身份验证类型”,选择 SSO。
2. 在“授权服务器 ID”下,输入在 sso-settings.json 中提供的 AuthorizationServerSettingsID 值,例如 PingFed1。
3. 在 Authorization Server Scope 设置下,单击“添加”。AuthorizationServerScopesSettings 窗口随即打开。
4. 在“范围”下,输入在 PingFederate 中注册的 Windchill 范围,例如 WINDCHILL_READ。
5. 单击“添加”。
6. 在“CSRF 设置”下,输入以下信息:
◦ “CSRF Get 请求相对 URL”- servlet/odata
◦ “CSRF 标记名称”- CSRF_NONCE
7. 在“OData 连接器连接设置”下,单击“添加”。ODataConnectorConnectionSettings 窗口随即打开。
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 Get 请求相对 URL”- servlet/odata
◦ “CSRF 标记名称”- CSRF_NONCE
3. 在“OData 连接器连接设置”下,单击“添加”。ODataConnectorConnectionSettings 窗口随即打开。
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 Get 请求相对 URL”- servlet/odata
◦ “CSRF 标记名称”- CSRF_NONCE
3. 在“OData 连接器连接设置”下,单击“添加”。ODataConnectorConnectionSettings 窗口随即打开。
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. 单击“执行”。您应该会收到消息:“成功”。您的服务已成功执行。
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 - JSON 数组,包含带有 Groupname 和 Element 属性的 JSON 对象。
8. 要执行另一个 Info*Engine 任务,请重复步骤 1-7。