RPA实战(UiPath)经验总结

R033---UiPath中调用Python的Activity中

2019-07-19  本文已影响3人  柴班说

​一、缘起

前面文章写了《R027---Uipath调用python编译后的exe(第2版)》。

本文写的是UiPath中调用Python相关的Activity中文说明及实践。

二、UiPath中调用Python相关的Activity

关于Python活动包

https://activities.uipath.com/docs/about-the-python-activities-pack

       Python活动包已经成为开源的。欢迎在我们的Github存储库上进行协作。

此包的目的是使您能够直接从我们的产品中调用任何工作流中的Python脚本和方法。您还可以将输入参数传递给调用的代码,以及检索活动生成的输出数据。

在Python的范围容器活动连接在计算机上安装Python环境,使您可以使用内本身的活动的其余部分。

该PythonObject变量专门用于处理和操作Python数据。通过使用“ 加载Python脚本”活动,您可以轻松地将包含Python脚本的任何文件中的代码分配给a,PythonObject并且还可以使用“ 获取Python对象”活动将其转换为.NET数据类型。

有了这个强大的变量,您可以通过使用每个任务的专用活动来运行脚本,提取.NET类型或调用Python方法。

发行说明

https://activities.uipath.com/docs/release-notes-python

UiPath.Python.Activities v1.1.6857.17236

发布日期: 2018年10月10日

新功能和增强功能

我们理解您需要支持机器学习模型,因此我们改进了Python Activities包,增加了对Python x64的支持。

这一刻终于来了 - 整个UiPath平台已经本地化,因此您可以拥有真正身临其境的体验,从安装到设计和执行。现在,除了英语,您还可以使用日语访问所有内容,包括我们的在线文档。

Bug修复

修复了导致Python脚本错误无法在Studio中正确显示的问题。

UiPath.Python.Activities v1.0.6716.23055

发布日期:2018年6月4日

该UiPath.Python.Activities是一项新的活动包,创建以使从工作流运行Python脚本和方法直接。它包含以下活动:

获取Python对象 - 检索指定Python脚本中使用的.NET类型。

Python Scope - 为Python活动提供范围的容器。

调用Python方法 - 帮助您直接在工作流中从Python脚本运行指定的方法。

加载Python脚本 - 将Python代码转换为PythonObject变量。

运行Python脚本 - 使您能够执行Python代码。您可以直接在活动中输入代码或为其提供文件路径。

2.1、Python Scope

https://activities.uipath.com/docs/python-scope

UiPath.Python.Activities.PythonScope

一个容器,它为Python活动提供范围并初始化指定的Python环境。当Python Scope活动结束时,所有加载到该点的Python对象都将被删除。

属性

共同

DisplayName - 活动的显示名称。

输入

Path - Python环境安装文件夹的路径。该字段仅支持字符串和字符串变量。

版本 - 包含该列表的下拉列表使您可以选择要使用的Python版本。默认情况下,此属性设置为“ 自动”。

注意:

设置为“ 自动”时,此属性仅检测v3.5以上的版本。

杂项

Private - 如果选中,则不再以Verbose级别记录变量和参数的值。

2.2、加载Python脚本

https://activities.uipath.com/docs/load-script

UiPath.Python.Activities.LoadScript

使您能够将Python脚本的处理程序存储在PythonObject变量中。您可以使用结果变量来调用代码中的方法。如果除了脚本中存在的方法之外还有内联代码,则代码也会在运行时执行。只能在Python Scope活动中使用。

由于软件限制,此活动默认使用Python活动包的安装位置作为脚本的运行目录。要更改此设置,并且能够在脚本中使用相对路径,可以将以下代码添加到已加载的脚本中作为解决方法:

蟒蛇

importsys

importos

sys.path.append(os.path.dirname(os.path.realpath(__file__)))

import<yourmodulehere>

属性

共同

DisplayName - 活动的显示名称。

输入

代码 - 要加载的Python代码。该字段仅支持字符串和字符串变量。

文件 - 包含要加载的Python代码的文件的路径。该字段仅支持字符串和字符串变量。

杂项

Private - 如果选中,则不再以Verbose级别记录变量和参数的值。

输出

结果 - 存储在PythonObject变量中的指定Python脚本的处理程序。

2.3、调用Python方法

https://activities.uipath.com/docs/invoke-method

UiPath.Python.Activities.InvokeMethod

帮助您直接在工作流中从Python脚本运行指定的方法。首先需要使用Load Python Script活动将包含该方法的脚本加载到环境中。只能在Python Scope活动中使用。

属性

共同

DisplayName - 活动的显示名称。

输入

输入参数 - 要调用的Python脚本的输入参数列表(如果有)。该字段仅支持IEnumerable<Object>变量。

实例 - 包含要运行的方法的Python脚本,存储在PythonObject变量中。该字段仅支持PythonObject变量。

Name - 要调用的方法的名称。该字段仅支持字符串和字符串变量。

杂项

Private - 如果选中,则不再以Verbose级别记录变量和参数的值。

输出

结果 - 调用方法的结果,存储在PythonObject变量中。可以使用Get Python Object活动进一步处理并转换为.NET数据类型。

2.4、获取Python对象

https://activities.uipath.com/docs/get-object

UiPath.Python.Activities.GetObject<System.Object>

将Python.Object其他Python活动(如Load Python Script)返回的变量转换为您选择的.NET数据类型。只能在Python Scope活动中使用。

属性

共同

DisplayName - 活动的显示名称。

输入

Python Object - 存储在PythonObject变量中的Python对象,您希望将其转换为.NET类型。该字段仅支持PythonObject变量。

TypeArgument - 要将PythonObject变量转换为的.NET数据类型。默认情况下,它设置为Object。支持Studio中可用的所有数据类型。

杂项

Private - 如果选中,则不再以Verbose级别记录变量和参数的值。

产量

结果 - PythonObject变量转换为在TypeArgument属性中选择的.NET类型变量。

2.5、运行Python脚本

https://activities.uipath.com/docs/run-script

UiPath.Python.Activities.RunScript

使您能够执行Python代码。您可以直接在活动中输入代码或为其提供文件路径。只能在Python Scope活动中使用。

由于软件限制,此活动默认使用Python活动包的安装位置作为脚本的运行目录。要更改此设置,并且能够在脚本中使用相对路径,可以将以下代码添加到已加载的脚本中作为解决方法:

蟒蛇

importsys

importos

sys.path.append(os.path.dirname(os.path.realpath(__file__)))

import<yourmodulehere>

属性

共同

DisplayName - 活动的显示名称。

输入

代码 - 您要运行的Python代码。该字段仅支持字符串和字符串变量。

文件 - 包含要运行的Python代码的文件的路径。该字段仅支持字符串和字符串变量。

杂项

Private - 如果选中,则不再以Verbose级别记录变量和参数的值。

三、实践:调用Python脚本

https://activities.uipath.com/docs/invoking-a-python-script

为了举例说明如何使用此活动包,我们构建了一个自动化过程来调用Python脚本,该脚本定义了两个操作:Add和Subtract。然后从脚本调用其中一个方法Add,并将整数变量列表作为输入参数。然后将存储在专有PythonObject变量中的结果转换为.NET数据类型,以便在Studio中进一步使用。

注意:

您要使用的Python版本必须安装在要运行该过程的计算机上。

这就是演示的构建方式:

打开Studio并启动一个新进程。

将Python Scope活动拖到工作流设计器中。

在Python Scope活动的Path属性中指定Python的安装目录。默认情况下,位置是,您使用的Python版本在哪里。%LOCALAPPDATA%\Programs\Python\PythonXX\python.exeXX

在Python Scope的Do部分中拖动Load Python Script活动,并将文件路径添加到File属性中的Python脚本。MathOperations.py

创建一个新PythonObject变量,调用MathFunctions并将其添加到Result属性字段中。

添加Invoke Python Method活动并按如下方式配置其属性:

输入参数 -{2,3}

实例 - 将在步骤5中创建的变量添加MathFunctions到此字段。

名称 - 在这种情况下,在要使用的脚本中添加方法的名称add。

结果 - 创建一个PythonObject名为的新变量,SumResultPython并将其添加到此属性字段中。

接下来,将Get Python Object活动拖到工作流程中。配置其属性如下:

Python对象 - 将SumResultPython变量添加到此字段。

TypeArgument - Int32从下拉列表中选择。

结果 - 创建一个新Int32变量,调用Result并将其添加到此字段。

在项目结束时添加消息框活动并将其配置为显示Result变量。

您的项目应如下所示:

9.运行该过程。该消息框显示的结果添加方法。

10.Demo下载地址:

https://www.uipath.com/hubfs/Documentation/WorkflowExamples/18.3%20Examples/Python.7z

(正文结束)

附1:关于本公众号

微信公众号名称:柴班说

欢迎转载与分享,也请注明出处。

附2:关于本文作者

微信号:chaijw

识别下面的二维码,可以与作者进行更为深入的交流。

上一篇下一篇

猜你喜欢

热点阅读