- 发行说明
- 入门指南
- 安装
- 配置
- 集成
- 身份验证
- Working with Apps and Discovery Accelerators
- AppOne 菜单和仪表板
- AppOne 设置
- TemplateOne 1.0.0 菜单和仪表板
- TemplateOne 1.0.0 设置
- TemplateOne menus and dashboards
- TemplateOne 2021.4.0 设置
- Purchase to Pay Discovery Accelerator 菜单和仪表板
- 购买到付款 Discovery Accelerator 设置
- Order to cash Discovery Accelerator 菜单和仪表板
- “订单到现金” Discovery Accelerator 设置
- Basic Connector for AppOne
- SAP Connectors
- 适用于 AppOne 的 SAP 订单到现金连接器
- 适用于 AppOne 的 SAP 采购到付款连接器
- SAP Connector for Purchase to Pay Discovery Accelerator
- SAP Connector for Order-to-Cash Discovery Accelerator
- Superadmin
- 仪表板和图表
- 表格和表格项目
- 应用程序完整性
- How to ....
- 使用 SQL 连接器
- Introduction to SQL connectors
- Setting up a SQL connector
- CData Sync extractions
- Running a SQL connector
- Editing transformations
- 释放 SQL 连接器
- Scheduling data extraction
- Structure of transformations
- Using SQL connectors for released apps
- Generating a cache with scripts
- Setting up a local test environment
- Separate development and production environments
- 实用资源
Process Mining 用户指南
简介
此示例说明如何将UiPath Process Mining平台与外部 Python 脚本接口,以实现外部数据处理。
本节中的示例基于 Python 版本 3。
简要概述
系统将创建一个 Python 脚本,该脚本:
- 将
.CSV文件作为输入,该文件将在其命令行中指定为唯一的必需参数, - 将“金额”值乘以 2,
- 将结果写入其标准输出通道。
步骤
- 设置服务器设置;
- 设置工作区;
- 设置脚本数据源;
- 设置数据源;
- 编写脚本。
设置服务器设置
通用脚本数据源需要用于要运行的所有外部流程的处理程序。
请按照以下步骤添加通用脚本处理程序。
| 步骤 | 操作 |
|---|---|
| 1 | 转到“超级管理员设置”选项卡。 |
| 2 | 添加一个字段GenericScriptHandlers ,并将一个具有一个键“py”的对象作为值,该对象将 Python 可执行文件的路径作为值。例如: "GenericScriptHandlers": { "py": "P:/Python/bin/python.exe" } |
| 3 | 单击“保存”。 |
设置工作区
首先创建一个尚不进行任何数据处理的最小脚本。此脚本将用于验证您的 Python 设置是否正在工作,以及是否从UiPath Process Mining平台调用您的脚本。
此示例脚本显示了如何生成将在脚本执行日志中显示的输出,以及脚本的退出代码如何影响UiPath Process Mining平台的行为。
| 步骤 | 操作 |
|---|---|
| 1 | 在您喜欢的编辑器中,启动一个空白文本文件。 |
| 2 | 输入以下文本: 注意: |
| 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 : “”
inputData 示例中的“#10”表示换行符。 即 我们定义以下虚拟 CSV 数据:
|
| 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 | 单击“确定”。 |
| 8 | 为Case_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 脚本生成的输出示例。
