UiPath Documentation
process-mining
2021.10
true

Process Mining 用户指南

上次更新日期 2026年5月5日

Example: Creating a Python Script

简介

此示例说明如何将UiPath Process Mining平台与外部 Python 脚本接口,以实现外部数据处理。

备注:

本节中的示例基于 Python 版本 3。

简要概述

系统将创建一个 Python 脚本,该脚本:

  • .CSV文件作为输入,该文件将在其命令行中指定为唯一的必需参数,
  • “金额”值乘以 2,
  • 将结果写入其标准输出通道。

步骤

  1. 设置服务器设置;
  2. 设置工作区;
  3. 设置脚本数据源;
  4. 设置数据源;
  5. 编写脚本。

设置服务器设置

通用脚本数据源需要用于要运行的所有外部流程的处理程序。

请按照以下步骤添加通用脚本处理程序。

步骤操作
1转到“超级管理员设置”选项卡。
2添加一个字段GenericScriptHandlers ,并将一个具有一个键“py”的对象作为值,该对象将 Python 可执行文件的路径作为值。例如: "GenericScriptHandlers": { "py": "P:/Python/bin/python.exe" }
3单击“保存”

设置工作区

首先创建一个尚不进行任何数据处理的最小脚本。此脚本将用于验证您的 Python 设置是否正在工作,以及是否从UiPath Process Mining平台调用您的脚本。

此示例脚本显示了如何生成将在脚本执行日志中显示的输出,以及脚本的退出代码如何影响UiPath Process Mining平台的行为。

步骤

操作

1

在您喜欢的编辑器中,启动一个空白文本文件。

2

输入以下文本:

/user/bin/python import sys def runtime(message): sys.stderr.write(message)runtime("Hello World!") 退出(1)

注意: debug(“Hello world!”)命令是如何使用标准错误通道输出消息和调试输出的示例。

3

将文本文件保存为script.py

4

script.py文件上传到您的工作区。

此脚本仅输出“Hello World!”消息。脚本接口使用标准输出,进行从脚本到UiPath Process Mining平台的数据通信。如果要在脚本中包含状态消息,则应将其写入标准错误

备注:

示例脚本以状态代码 1 退出。UiPath Process Mining平台会将 0 以外的任何状态代码解释为错误条件。

设置脚本数据源

接下来,在将调用脚本的应用程序中设置一个数据源表。 从一些虚拟数据开始,因为您的脚本尚未处理数据。 在此阶段,将验证脚本是否按预期执行,即您是否可以看到“Hello world!”消息。

步骤

操作

1

在开发环境中打开应用程序。

2

转到“数据”选项卡,然后新建“连接字符串表”。

3

New_table重命名为PythonExample

4

右键单击PythonExample表格,然后选择“高级” >“选项…”

5

“表格选项”对话框中,将“表格范围”设置为“工作区”

6

双击PythonExample表格以打开“编辑连接字符串表格”窗口。

7

输入以下内容作为“连接字符串”

``'driver={mvscript

8

输入以下内容作为Query

“”

  • '&scriptFile=' + urlencode("script.py")
  • '&inputData=' + urlencode("a;b;c"+#10+"1;2;3"+#10+"4;5;6"+#10)``

inputData 示例中的“#10”表示换行符。 即 我们定义以下虚拟 CSV 数据:

"a";"b";"c"

"1";"2";"3"

"4";"5";"6

9

单击“确定”

10

单击“是”

表格刷新失败,您应该会在错误日志中看到“Hello World!”消息

脚本文件的位置由表格范围决定。这可以设置为“服务器”“工作区” ,也可以设置为“无” 。如果设置为,则脚本文件的路径为绝对路径。如果设置为“服务器”“工作区” ,则脚本的位置将被解释为相对路径。

重要提示:

您需要获取“你好,世界!”以便能够成功完成剩余步骤,以使用外部 Python 脚本设置界面。

设置数据源

要导出要在外部脚本中处理的数据,第一步是在 Python 脚本中选择所需的字段。 方法是创建一个新表,其中包含 Python 脚本所需的所有字段。 稍后将以.CSV格式导出此表格,以便 Python 脚本可以读取该表格。

在此示例中,我们有一个包含“案例”表和“事件”表的应用程序。请参见下图。

文档图像

请执行以下步骤:

步骤操作
1创建新的全局PythonInputData
2添加新的表达式属性PythonInputData_Amount
3将“类型”设置为“查找”
4输入表设置为Cases_base
5将表达式设置为listtojson(text(double(records.Amount)))
6将表达式级别设置为
7单击“确定”
8Case_ID添加另一个查找表达式属性。将表达式设置为listtojson(text(double(records.Case_ID)))
备注:

查找表达式属性的格式应为字符串列表。这是因为csvtable()函数将用于将数据转换为.CSV格式,它需要一个(文本)记录列表。由于listtojson()函数要求其输入为文本类型,因此生成的 CSV 文件中的记录格式取决于所选属性的类型(在本例中,金额的类型“货币”)和当前活动的显示格式。此处的货币类型将转换为 Double 类型,以便稍后在 Python 脚本中解析记录。

编写脚本

在文本编辑器中,使用以下代码更新 script.py 文件。

#!/usr/bin/pytho
import csv
import sys
def debug(message):
    sys.stderr.write(message)
# Read the CSV header. This is used so that the script will output the fields
# in the same order that they were read in. This step is optional.
column_order = [];
with open(sys.argv[1]) as csv_file:
    reader = csv.reader(csv_file, delimiter=';')
    column_order = next(reader)
# Process the input file
with open(sys.argv[1]) as csv_file:
    reader = csv.DictReader(csv_file, delimiter=';')
    # Construct the output writer.
    writer = csv.DictWriter(
        sys.stdout,
        column_order,
        delimiter=';',
        restval='',
        quoting=csv.QUOTE_ALL
    )
    writer.writeheader()
    for row in reader:
        # Get data from row
        case_id = row['Case_ID']
        amount = int(row['Amount'])
        # Do computation
        amount = amount * 2
        # Write results
        writer.writerow({'Case_ID': case_id, 'Amount': amount})
# Exit indicating success
exit(0)
#!/usr/bin/pytho
import csv
import sys
def debug(message):
    sys.stderr.write(message)
# Read the CSV header. This is used so that the script will output the fields
# in the same order that they were read in. This step is optional.
column_order = [];
with open(sys.argv[1]) as csv_file:
    reader = csv.reader(csv_file, delimiter=';')
    column_order = next(reader)
# Process the input file
with open(sys.argv[1]) as csv_file:
    reader = csv.DictReader(csv_file, delimiter=';')
    # Construct the output writer.
    writer = csv.DictWriter(
        sys.stdout,
        column_order,
        delimiter=';',
        restval='',
        quoting=csv.QUOTE_ALL
    )
    writer.writeheader()
    for row in reader:
        # Get data from row
        case_id = row['Case_ID']
        amount = int(row['Amount'])
        # Do computation
        amount = amount * 2
        # Write results
        writer.writerow({'Case_ID': case_id, 'Amount': amount})
# Exit indicating success
exit(0)

请按照以下步骤操作。

步骤操作
1将新脚本上传到工作区(覆盖现有文件),然后返回到应用程序 。
2右键单击PythonExample表格,然后选择“编辑…”
3修改PythonExample表查询字符串的inputData参数: + '&inputData=' + urlencode(csvtable( "Case_ID", jsontolist(PythonInputData.Case_ID), "Amount" , jsontolist(PythonInputData.Amount), ))请参见下图。
4单击“确定”
5单击“是” (两次)。
6单击“确定”

文档图像

PythonExample表现在具有两个数据源属性,即“金额”“案例 ID” 。请参见下图。

文档图像

检查“金额”属性可以发现,所有金额都已乘以 2。请参见下图,这是 python 脚本生成的输出示例。

文档图像

  • 简介
  • 简要概述
  • 步骤
  • 设置服务器设置
  • 设置工作区
  • 设置脚本数据源
  • 设置数据源
  • 编写脚本

此页面有帮助吗?

连接

需要帮助? 支持

想要了解详细内容? UiPath Academy

有问题? UiPath 论坛

保持更新