Subscribe

UiPath Studio

UiPath Studio 指南

在库中加载网页服务

Studio 可以通过“服务编辑器”窗口直接从 SOAP 或 REST 网页服务或 Postman 集合生成活动。

SOAP 和 REST 网页服务

该窗口可用于自动加载给定网页服务(REST 或 SOAP)中的所有方法或端点,只要所提供的链接包含服务定义(Swagger 或 WSDL)即可。

加载后,您可以选择通过哪些端点或方法自动创建活动。所有选定的项目随即会在“活动”面板中显示,位于您在“服务编辑器”窗口提供的“命名空间”下。

之后便可将这些库打包为 .nupkg 文件,并将其发布到 Orchestrator 或自定义位置。如此一来,您便可与其他合作开发者轻松共享新定义的活动。

添加服务

按照下方的步骤,从网页服务生成活动:

  1. 按照“关于库”页面中的说明,在 Studio 中创建一个库。
  2. 在“设计”选项卡中,单击“新建服务”或右键单击“项目”面板中的“服务”,然后单击“新建服务”。系统随即会显示“服务编辑器”窗口。
  1. 向 Swagger 或 WSDL 资源添加文件路径或链接,然后单击“加载”。网页服务中定义的所有端点现已加载到“服务编辑器”窗口中。
  1. 在“搜索操作”搜索框中键入您需要的方法或操作,再查看下方的结果。对于 Swagger,各个端点中的方法将使用不同的颜色来标记。使用“取消全选”复选框来取消选择所有端点,然后选择您要加载的端点。命名空间会自动生成,键入新名称即可更改。
  2. 单击“保存”。该服务现已集成到项目树中。
  1. 若要在“设计器”面板中使用生成的活动,请前往“活动”面板,在“可用”活动部分中根据服务命名空间搜索,然后将各个活动拖入面板中。

📘

Note:

对于 SOAP 服务,建议仅加载 SOAP 客户端,不要加载 HttpGetHttpPost 客户端。
对于 Swagger 服务,当服务无法反序列化服务器的响应时,建议检查 Swagger 方案并在模型定义中搜索所需的属性。

若要编辑服务,只需在“项目”面板的“服务”下右击所需的服务,再选择“编辑服务”。

请注意,如果您的项目受到来源控件的管理,则只需签出库的 project.json 文件即可为已加载 SOAP 或 REST 网页服务的 .xaml 文件启用“编辑服务”选项。

添加和编辑服务后,含有库定义的 project.json 文件以及服务文档中也会有相应体现。project.json 文件中会添加 webServices 节点,各项服务通过以下元素来标识:

Parameter

Description

namespace

The name of the service provided in the Service Editor window.

serviceDocument

The path to the .json file containing metadata for the SOAP or Swagger service. The file is used when the service is repaired, and should be versioned as part of the project.

webDocumentUri

The file path or link to the Swagger or SOAP resource (provided when the service is created in the Service Editor window).

uniqueReference

A reference needed for versioning the service.

修复服务

从 SOAP 或 REST 网页服务生成的 dll 文件不会推送到来源控件存储库。因此,在签出含有服务的库时,其项目会在“设计器”面板中包含未解决的活动。

若要修复这些活动并重新生成服务 .dll 文件,可在“项目”面板中右击相应服务节点,再从上下文菜单中选择“修复服务”。

SOAP 或 REST 服务元数据及其他信息存储在 Studio 中加载的各项服务的 .json 文件中。如果加载的服务缺少相关的 .json 文件,您可以通过“服务”节点的“修复服务”上下文菜单选项,利用创建服务时提供的网页文档描述符的链接生成所缺失的 .json 文件。因此,不再应用服务最初生成时可能应用的筛选器,并且导入通过前述路径或链接提供的所有资源。

Publishing libraries using UiPath.Studio.CommandLine.exe command-line user interface detailed in the Mass Update Command Line Parameters page does not take web services into consideration.

📘

Note:

从“SOAP”或“REST”服务生成的活动无法在 Studio 中本地化。

要在一个循环中多次调用从网页服务生成的活动,请从主库文件创建单独的工作流,然后在其中调用服务方法。在主工作流中,使用“For Each”活动中的“调用工作流文件”活动,并调用先前创建的工作流。

For more details about generated activities from web services, check out this page.

导入命名空间

由于使用导入式 Swagger 服务,Studio v2020.4 在库方面发生了显著变化。在 Swagger 服务中,Studio 解读.json 文件的方式已经改变。因此,当且仅当从“编辑服务”窗口编辑现有服务时,才会产生向后兼容性问题。

In the following example, we've illustrated the change using the Petstore demo web service.

在 Studio v2020.4 之前的版本中将服务添加到库项目中后,可以使用“浏览类型…”上下文菜单在 SwaggerPetstore 程序集名称下可以找到下列命名空间:

进一步探索 UiPath.WebClient._ClientNamespace,您将可以找到以下类型:

因此,如果在 Studio 库的 xaml 文件中使用了 AddPet 活动,则该活动将成为 UiPath.WebClient._ClientNamespace 的一部分。_ClientAddPetRequest 类型用于生成请求,如以下摘录所示:

xmlns:uw_="clr-namespace:UiPath.WebClient._ClientNamespace;assembly=SwaggerPetstore" 
...
<uw_:AddPetActivity BearerToken="{x:Null}" ClientCertificate="{x:Null}" ClientCertificatePassword="{x:Null}" Headers="{x:Null}" OAuth2Token="{x:Null}" Password="{x:Null}" Username="{x:Null}" DisplayName="AddPet" Endpoint="[&quot;https://petstore.swagger.io/v2&quot;]" sap:VirtualizedContainerService.HintSize="200,22.4" sap2010:WorkflowViewState.IdRef="AddPetActivity_1" TimeoutMS="30000">
      <uw_:AddPetActivity.Request>
        <uw_:_ClientAddPetRequest Body="{x:Null}" />
      </uw_:AddPetActivity.Request>
    </uw_:AddPetActivity>
  </Sequence>
</Activity>

使用 Studio v2020.4 导入相同的网页服务时,可以找到以下命名空间:

展开 UiPath.WebClient.PetClientNamespace 时会发现以下类型:

因此,如果在用 v2020.4 创建的 Studio 库的 xaml 文件中使用了 AddPet 活动,则该活动属于 UiPath.WebClient.PetClientNamespace 的一部分,并且 PetClientAddPetRequest 类型用于生成请求。如果使用 v2020.4 之前的版本创建库,这些命名空间和类型将会有所不同。

以下是使用 v2020.4 创建此类库时的摘录:

xmlns:uwp="clr-namespace:UiPath.WebClient.PetClientNamespace;assembly=SwaggerPetstore"
...
<uwp:AddPetActivity BearerToken="{x:Null}" ClientCertificate="{x:Null}" ClientCertificatePassword="{x:Null}" Headers="{x:Null}" OAuth2Token="{x:Null}" Password="{x:Null}" Username="{x:Null}" DisplayName="AddPet" Endpoint="[&quot;https://petstore.swagger.io/v2&quot;]" sap:VirtualizedContainerService.HintSize="200,22.4" sap2010:WorkflowViewState.IdRef="AddPetActivity_1" TimeoutMS="30000">
      <uwp:AddPetActivity.Request>
        <uwp:PetClientAddPetRequest Body="{x:Null}" />
      </uwp:AddPetActivity.Request>
    </uwp:AddPetActivity>
  </Sequence>
</Activity>

Postman 集合

The Postman application can be used for creating and grouping API definitions into collections, thus organizing and chaining your requests together. Postman supports scripts for passing data between API requests. Check out the Postman online documentation to learn about creating a collection.

如果您已有 Postman 集合,则可以将其请求加载到 Studio 中并生成活动。集合的维护是在 Postman 中完成,所有更改也会在您的工作流中进行。

Studio 通过其 API 密钥接收对 Postman 集合的访问权限,并且该 API 密钥必须添加到“服务编辑器”窗口的“文件”或“链接”字段中。因此,只需在 Postman 中完成请求修改,无需再在 Studio 执行修改。

Studio 会加载集合中定义的所有请求,并且无法单独执行请求。在 Studio 中编辑和修复集合的方式与 SOAP 或 REST 网页服务相同。

Postman 集合先决条件

建议在安装 Newman 后重新启动计算机。

Postman 集合示例

以下示例使用 Postman 集合来get特定货币的值,并将其显示在 Studio 的“输出”面板中。

In this example, we wrote a test scrip to iterate through the received data. We declared a global variable directly in the script, but this can also be done with the Set a global variable snippet in Postman, read more about this here.

In 参数将货币 EUR 值传递给了 Out 参数,其中 In 参数在库中的“属性”面板 >“输入”>“集合”中可见。在同一面板的“输出”部分中,则可以看到 Out 参数。

活动中的输出参数映射到变量后,其值将写入“输出”面板。

You can use an If activity to validate the variable's returned value. In this example, we validated that the value is returned, and then wrote it to the Output panel.

11 个月前更新



在库中加载网页服务


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.