Advertisement

使用UiPath和AA构建的解决方案 7. 销售订单处理

阅读量:

让我们从我们项目的第二个阶段开始。我们计划通过自动化手段实现所有销售订单的处理

当组织接收到采购订单(编号为PO)时会生成相应的销售订单(编号为SO)。这一订单旨在采购一批或多个项目。采购订单明确了客户所需的具体产品和服务。销售订单则用于管理和维护库存系统。

在该自动化项目中, 我们将通过电子表格系统提取订单信息, 并将这些数据导入到Apptivo平台下的订单管理系统中进行处理

以下是我们将在本项目中介绍的内容:

  • 该自动化解决方案支持Excel文档的自动化流程。
  • 该平台提供Web应用的自动化支持。
  • 可利用A2019版本创建自动化脚本以记录操作步骤。
  • 可将复杂的 automation 任务划分为父机器人和子机器人模块进行管理。
  • 该解决方案提供了一套完整的异常处理机制以确保系统的稳定性。

技术要求

让我们看看这个项目所需的硬件和软件:

  • 访问自动化Anywhere A2019社区版,请前往该网站地址:https://www.automationnywhere.com/products/community-edition。
  • 配置了一台运行自动化AnyWhere个人版A2019代理功能的PC设备。
  • 配置了一台运行自动化AnyWhere扩展包的Google Chrome浏览器。
  • 支持Excel 2007及其以后版本。
  • 访问其官方网站进行Apptivo SaaS应用程序和Orders应用程序的免费注册。
  • 请确保以下客户(包括Amazon、Uber及Salesforce)以及以下物品(如笔记本电脑、路由器和手机)已经成功添加至Apptivo订单管理系统中……您将在第3章和第5章中学习如何完成这一操作。

项目概述

根据之前的讨论,我们将采用Excel电子文档中的数据创建SO.这些数据通常来源于采购订单.项目组假设有一个由采购订单生成的Excel表.该系统可以通过Automation Anywhere IQ bot来实现,它能够处理PDF格式的采购订单记录,从而生成包含所需数据的电子文档.其中的部分内容不在当前初步版本中的自动化系统中.我们在第10章介绍了IQ机器人.

在本项目中,我们计划配置一台A2019机器人以从Excel表格读取SO详细信息,并将这些信息保存到Input文件夹中.该机器人将逐行处理SO数据,并将其处理结果导入Apptivo Order应用程序.每当Apptivo Order应用程序接收一个订单时,机器人程序会提取相关SO编号并更新对应的Excel电子表格.在所有SO数据均被成功处理完成之后,机器人程序会将完整的电子表格转移至processed文件夹.

我们已对项目有透彻的理解,请深入探究细节以便建立自动化流程。

项目详细信息

在Automation Anywhere这一平台上,我们已部署了一系列机器人以执行各项任务。本项目将建立一个能够依次完成全部流程的主机器人。该主机器人将调用子机器人程序以生成SO。

根据名称命名,Parent bot相仿于UiPath系统中的核心流程。该系统将设置一个主流程,并随后调用相关辅助流程。

以下是SO创建序列图,包含Parent和Child序列:

如图所示, 我们首先在Parent bot中打开并读取Excel文件. 接着, 数据被系统性地提取后存入数据表变量中. 然后依次遍历数据表中的每一笔记录, 并利用Child-CreateSalesOrder机器人程序生成相应的SO订单编号. 最后由Child机器人程序将生成的所有SO订单编号反馈至Parent机器人程序.

Parent bot识别此SO编号,并记录其在Excel工作表中的相应行位置;在处理完所有数据后, Excel文件会被移动至processed文件夹中。

在为自动化构建这些组件之前,我们将为该项目做一些基础工作。

项目基础工作

在实现自动化之前,请确保我们已经准备好了相关项目支持材料。请按照以下步骤操作:1. 检查并确认所有项目支持材料的完整性;2. 确保团队成员已获得相关信息。

让我们创建一个Excel电子表格,其中包含一些要处理的示例SO。

Excel SO文件将包括PO#(订单编号)、Customer(客户信息)、Address(地址信息)、City(城市)、State(州)、Zip(邮政编码)、ItemName(物品名称)、Quantity(数量)以及SO列的具体内容,请参考以下详细说明。

  1. 基于我们在之前的ApptiVIA项目中的经验,请使用Automation Anywhere A2019版本来构建您的自动化脚本。
  2. 导航至菜单中的供应链设置部分,在其中找到并点击"订单"选项。
  3. 请注意,在启动机器人程序时,默认情况下您已在此处进行过操作。
  4. 为了方便操作,请使用Automation Anywhere A2019版本来构建您的自动化脚本。
  5. The approach outlined in Chapter 6 will be followed here.
  6. A2019社区版的访问地址为https://community.cloud.automationanywhere.digital/#/login, 请通过浏览器访问该页面。

既然我们已经完成了基础工作,现在是时候创建Parent机器人了。

创建父机器人

让我们首先创建主任务机器人,我们称之为父机器人:

为了实现这一目标,请导航至左侧面板的 Automation 选项,在右侧执行 Create new 操作。

在弹出对话框时,请输入机器人程序名称,并点击"创建"及"编辑"按钮以生成机器人并打开画布界面,并配置其工作流程。
为此项目选择列表视图模式。
当您使用A2019列表视图时,请注意有时难以将操作准确插入至所需位置。
建议切换至"流"视图,在期望位置执行操作后返回至列表模式。

让我们切换到画布上的列表视图,并从异常处理开始。

异常处理

让我们添加一个错误处理程序try-catch,以便在出现错误时正常退出。

  1. 为了实现这一目标,请首先定位并拖动错误处理程序至Try操作的位置。在后续章节中我们将在这个Try块内整合大多数自动化步骤。
  2. 在此之前,请将Catch操作插入到Try块之后。
  3. 请在Catch属性设置中选择AllErrors类型的异常来处理捕获到的错误信息。
  4. 定义一个名为errorMessage的字符串变量用于接收错误信息。
  5. 点击输入框右侧的小向导图标来生成新变量。
  1. 向CATCH部分添加一条消息框,并在其中显示"Following error occurred"以及错误信息errorMessage
  2. 最后一步是确保在打开Excel文件之前执行此操作,请确保在此操作之前保存当前机器人程序的状态。

打开和读取Excel数据

我们将从Excel中读取SO数据并将其存储在数据表变量中开始。

正如我们在UiPath中采用序列来实现功能划分一样,在AutomationAnywhere中我们同样会在Step活动中进行功能划分。特别地,在这些Excel活动中将特别地设置第一步活动。

在此步骤中,我们将添加两个命令来打开和读取Excel数据:

在Excel中使用Open操作打开输入文件。请添加以下属性设置:

  • 会话名称:S1
  • 在弹出窗口中选择桌面文件类型,并指定目标Excel文件路径。
  • 在打开时设置为可读可写的格式。
    确认工作表是否包含页眉设置项:

在Excel中实施基础功能:获取多个单元格的操作;随后,在该操作中配置其属性为Session name:S1以及Loop-through:All行;接着生成一个名为excelTable的Table类型变量,并将其值赋值给该变量

当前我们已将数据成功导入至数据库表中。接下来的操作将是依次遍历每一条记录,并通过调用Child bot实现SO的建立。在此前,请先建立一个新Child机器人。为此,请关掉Parent机器人,并访问"我的机器人"页面进行新机器人的添加(点击"创建机器人")。这与我们之前为Parent所做的步骤一致。

现在让我们配置Child机器人。

创建用于SO处理的子机器人

在Apptivo平台中创建软件组件SO。由于操作主要集中在点击按钮和输入数据上,我们需要使用捕获动作来完成这些任务。建议您使用谷歌Chrome浏览器访问Apptivo平台,在此环境下进行操作会更加流畅。因为操作主要集中在点击按钮和输入数据上,请您确保所有记录器已正确配置以便捕获所有操作步骤。

使用记录器捕获SO创建

在新建立的机器人程序中, 我们将增添一个Step流程, 以实现创建SO记录器功能模块. 在这一Step流程中, 首先点击create按钮, 然后依次选择Apptivo平台中的Order相关设置. 按照以下具体步骤进行操作:

  1. 创建一个记录类型变量,并将其用于从Parent bot获取所需数据。转至左窗格Variables部分,在Actions和Triggers下方找到Add按钮并点击以新增该记录。
  2. 创建一个命名为RowRecord的记录类型变最,并将其设置为Input字段类型Use。
  1. 在Recorder Capture功能中点击Apptivo Orders屏幕上的Create按钮。
  2. 在捕获设置中将'窗口'选为'对象详细信息'的位置。
  3. 从下拉菜单中选择Orders|Apptivo-Google Chrome选项。
  4. 点击捕获对象(如图所示),然后定位到Chrome中的Apptivo创建按钮:

进一步利用前面所述Capture操作的属性以保证Object属性如以下图所示。点击单击操作并将其超时时间设置为1000毫秒,请参考下文

  1. 对象属性包含强制属性(无法编辑)以及可选属性(我们可以选择)。我们需要谨慎选择这些可选属性。请在屏幕截图中找到对象属性的选择项,在这种情况下,请您查看以下选项:HTML标记、HTML类型、HTML内部文本、角色和可见性等。此外,我们还可以使用通配符和正则表达式来辅助配置。
  2. 接下来,请单击Apptivo平台上的Order选项按钮。为此,请增加一个记录器来捕获操作过程,并选择与当前订单相同的Google Chrome窗口作为操作源。
  3. 请单击捕获对象按钮并指向Apptivo上的订单选项进行操作。请注意,在这种情况下,请确认Object属性如屏幕截图所示已正确配置。
  4. 请您选择执行单击操作的选项,并将超时时间字段设置为1000毫秒值;具体设置方法请参考下文说明部分。
  1. 最后,保存机器人。

一些操作步骤将会启动以在右边页面展示一个"创建订单"界面,并指导您在此表单一并填写所有相关信息

填写SO的客户详细信息

我们将继续采取与前一小节相同的步骤行动。现在让我们填写客户信息:

引入新的记录器以执行捕获操作。
在相同的订单中,在[Apptivo-Google Chrome窗口]处进行操作。
单击捕获对象并在Apptivo的客户输入框处进行目标定位。
确保对象属性(特别是提供了HTML标记和HTML标记索引)以及对应的Action如上所述:

  1. 为了优化流程体验,在Recorder Capture界面中配置一个Delay Action,并将其延迟设置为500毫秒。这样可以确保输入提示框在用户输入值之前呈现。基于现有数据结构的假设,在Apptivo系统中存在客户名称和商品名称字段。我们的SO Excel数据集与第5章中添加的客户及项目信息具有完全相同的结构,请注意,在继续操作前,请确保已将所有必要的客户及项目信息导入Apptivo系统。

现在,请我们为输入字段赋值客户名称。为此目的,请我们计划添加模拟键盘操作步骤。在属性设置中,请选择相同的订单窗口,在Apptivo-Google Chrome窗口位置上。对于Keystrokes部分,请单击输入框中的Insert a variable选项,在此处选择By index设置为1的变量RowRecord。如需进一步了解,请参考以下步骤:

因为我们在从Excel工作表读取记录数据时会使用索引号来识别各个字段的内容。在此过程中,“索引号1”对应的是字段的位置信息,“索引号0”通常用于存储第一个数据项。因此,在这种情况下,“PO#”占据位置0的位置,“客户名称”则位于位置1的位置。

  1. 新增一个延迟动作,并将其时延参数设置为500毫秒。这样做的目的是确保在按下回车键前系统能够完整接收输入内容。
    建议您按照以下步骤进行操作:首先找到上一个类似的时延设置项,并将其复制后粘贴到新的位置作为新的时延动作项。
    举个例子来说,在机器人程序中频繁执行此操作可以帮助加快配置速度。

为了实现输入回车的效果,请执行以下步骤:首先,在Apptivo-Google Chrome窗口中选择相同的订单|Apptivo-Google Chrome窗口;接着,在输入框中点击显示的键盘图标;随后,在此键盘图标旁按下键盘上的Enter键;如上所述:

  1. 现在,请我们在客户信息中插入一个用于记录订单的新字段——PO编号。

  2. 请先点击捕获对象,并将其指向Apptivo中的一个输入框。

  3. 请确认屏幕上的Object属性与下图所示一致。

  4. 之后,请选择Set text for Action并设置Keystrokes为RowRecord[0](以便提取该属性的值)。

  5. 请确保在属性设置中添加一个500毫秒的时间间隔(位于Keystrokes字段下方)。

  6. 此外,在填写客户地址信息之前,请确认以下操作:
    a. 在Keystrokes下方执行四个捕获操作;
    b. 对每个捕获结果设置正确的RowRecord索引值以便后续的操作能够正常进行。
    通过上述步骤您可以成功地将类似前缀PO#的计费地址、城市、州及邮政编码数据正确地记录下来。

我们现在将继续在订单上添加项目详细信息。

填写SO的物料详细信息

这些商品是客户所需的产品。在我们的Excel表格中新增了笔记本电脑、路由器和手机等项目。在Apptivo平台中设置的项目名称字段是一个选择框字段类型,在之前的界面设计中已有类似的设计元素作为参考依据。因此,在当前的设计流程中将采用与之前相同的流程设置该字段类型参数以实现功能的一致性配置。接下来我们将执行Recorder操作,并在此基础上完成后续的操作步骤:随后执行Delay操作;最后执行Simulate Keystrokes并按回车键完成操作:

  1. 添加新的采集器捕获功能用于记录项目名称。
  2. 在Apptivo-Google Chrome窗口中选择相同的订单,单击捕获对象后,在Apptivo的产品/项目列表中定位到项目的名称字段进行设置。请确保将Object属性和Action参数配置为以下指定值:
  1. 接下来,在代码中插入一个延时操作(duration=500ms),随后执行一次击键模拟(如前所述)。
  2. 在属性设置中,在"Enter Keystrokes"字段处新增变量RowRecord[6]。这一设置旨在填写项目名称,请注意该名称位于记录列表的第六项位置。此外,在每条指令之间预留1000ms的时间间隔以避免冲突。
  3. 为了实现可靠的操作流程,在代码中首先插入一个延时操作(duration=500ms),随后执行一次用于执行Enter键的操作(press Enter key)。

现在,请我们添加一个Recorder Capture以引入项目Quantity。点击捕获对象并指向Apptivo中的数量字段。
确保Object属性如以下图片所示。选择Set text作为操作步骤,并设置Keystrokes为RowRecord[7](如图所示)。另外,在属性中增加500毫秒的延迟(此设定位于Keystrokes下方未展示):

  1. 最后一步,请安装另一个Recorder Capture工具以启动Create按钮并生成SO对象。请确保设置正确的Object属性以及相应的Action参数。

已成功接收数据并生成了索引表。现决定将索引列表按编号传输回父代理节点。

传递SO编号

在Apptivo平台中录入SO信息后(在Apptivo系统界面中完成SO数据录入),系统会自动分配一个唯一的SO编号(程序会自动生成独立的SO标识码)。随后,请记录下生成的这个唯一标识码,并将其传输至Parent bot系统(通过Parent bot接收端获取该唯一标识码),以确保在相关Excel工作表中正确引用该标识码进行后续操作。

有时表单可能会发生错误。为了更好地进行后续操作,请建议我们在获取So编号前立即处理相关问题。

  1. 访问Apptivo订单主页后,请依次访问供应链和订单流程。点击"创建"按钮后,请选择"订购"选项来生成新的SO表单请求。
  2. 转移到Variables模块,并创建一个名为SalesOrder的新变量,默认设置为字符串类型。
  3. 我们计划添加一个步骤来将这些操作归类,并命名为捕获销售订单编号。
  4. 在步骤设置中,请选择'对象'属性作为条件(在记录器界面下)。进一步设置时,请选择Apptivo窗口中的相应部分,在Apptivo上捕获错误对话框上的OK按钮。
  1. 现在让我们单击“确定”按钮,以便机器人可以执行下一笔交易。为Apptivo Orders窗口添加一个新的Capture操作,并指向OK按钮。对象属性看起来与If操作的属性类似。请确保在“操作”属性中选择“单击”。
  2. 我们还将SalesOrder变量设置为null,因为我们无法捕获它。
    添加String Assign以将SalesOrder变量设置为Null,如下所示:
  1. 在Else情况下(即创建成功的SO),我们记录生成的SO编号。在其后增加一个新的Else操作。
  2. 在Apptivo中打开一个伪订单以进入订单创建屏幕。
  3. 在此处增加一个新的Recorder Capture动作。
  4. 同一界面下定位Order#旁边的输入字段。
  5. 首先设置为HTML InnerText类型的操作被分配到SalesOrder变量

至此,Child机器人程序的配置已经设置完成。我们现在已经将SO输入到Apptivo中,并在Parent bot中设置了接收来自子系统的变量数据。请移步至Parent bot处继续完成剩余步骤。

调用Child机器人并更新Excel工作表

我们现在已经准备好在Parent bot中完成自动化。

通过调用SalesOrder bot获取SO编号后将其输入到Excel工作表中随后将该Excel工作表移至Processed文件夹内以避免干扰后续操作流程。在启动Child机器人之前先完成一些基础性的工作以确保系统的稳定性。

在行之间循环并调用Child机器人程序

建议您启动Parent bot。接下来的操作将基于我们从Try块中捕获的停止位置进行。

建议您启动Parent bot。接下来的操作将基于我们从Try块中捕获的停止位置进行。

我们计划在这一节的基础上引入一个新的Step操作来整合所有相关流程。为此我们需要为这一新流程命名并将其实现称为'循环与调用'模块最终将其接入我们的工作表系统。你也可以根据个人需求为其起一个具有意义的名字随后按照以下步骤进行详细设置

当在数据表记录中执行循环操作时,在内部创建一个名为currentIteration的变量用于计数。
请在其值发生变化时更新该计数器。
为了便于后续操作,请将其命名为dictOutput并指定其类型为Dictionary。
请注意,在此过程中,请确保该变量被标记为'输入'和'输出'类型。

为了实现变量currentIteration的初始化,并将其设置为2。如图所示,请注意这一操作是为了从第二行读取数值。考虑到数据表包含标题信息

现在让我们遍历数据表中的每一行。设置一个迭代器,并选择For Each Row in Table For Iterator作为迭代器对象,选择Table for Data Variable作为目标表格变量,并将当前行的信息存储到RowRecord变量中。

在循环过程中首先放置step create sales order 到loop内部,并同时处理另一个步骤

调用Child机器人程序后, Child机器人程序会生成对应的SO编号.请协助我们完成对Excel表格的更新工作.

使用SO编号更新Excel

此处停留在原地,并建议增加一项内容:使用SO编号来更新Excel表格。我们计划增加一些步骤以完成此更新。

用于连接当前行号以获取特定的Excel单元格时,请将数字型变量子程序currentIteration转成字符串型。随后,在程序中添加"Number to string"操作来完成该类型转换,并将其输出结果赋值给一个命名为currentIterationString的新变量子程序(可以通过点击输入框右侧的"Create"图标来生成该新变量子程序)。按照以下步骤进行操作:

请利用Child bot获取的SO编号,在工作表中的第I列建立一个特定区域用于存储这些编号。向Excel中执行基础单元格设置操作,请确保以下配置:将Session名称配置为S1,并指定该单元格的内容设定为IcurrentIterationString。这样操作后,在当前迭代字符串的基础上自动递增生成如I2、I$3等序列号。

  1. 在完成要在循环中执行的各项活动后,请增加计数器。
    请加入编号分配操作,并在“源字符串变量选择框”中加入
    \texttt{currentIteration} + 1
    将目标编号变量设置为currentIteration号。

最后一步是关闭 Excel 工作表。
在处理 "循环、调用及添加至 Excel" 这一步骤时进行的 Excel 基本关闭操作。
通过 S1 更新当前会话名称(即打开 Excel 工作表时所使用的命名)。

我们成功地采用了SO编号系统来更新所有的Excel文件,并且这项工作已全部完成。请将所有修改后的Excel文件移至Processed文件夹中。

将Excel文件移动到Processed文件夹

我们将处理好的Excel文件被复制到processed文件夹中,并将原始文件被清空。

  1. 新增一项步骤命名为"移动至已处理目录"。
  2. 执行复制操作后,请指定源文档位置(即原始SO Excel工作表),目标存放位置(若不存在则会自动生成)。例如:"将源文档设置为原始工作表位置"。
  3. 移除原始Excel文档,并指定其属性指向该原始SO Excel 文件内容。
  4. 最后,请机器人触发成功提示对话框,在此对话框中显示所有生成订单和已完成转移的记录。

这就完成了自动化的配置。现在让我们运行它。

测试自动化

目前恰是时候测试我们所建立的自动化流程——父机器人与子机器人。在启动自动化前,请确保以下事项:

  • 在Apptivo系统中,请您确保Excel表中的所有客户信息均已同步更新。
  • 请按照以下步骤操作:首先,在Excel工作表中选择一个空白单元格作为目标单元格;然后将该单元格拖动至Apptivo系统中的相应位置以完成同步操作。
  • 请确认Excel文件是否已关闭。

一旦你确保了这些,转到父机器人并点击顶部菜单中的Run。

该系统会自动发送我们以往操作中的成功记录。请查看相关日志文件以确认机器人服务是否正常工作:

所有SO均按照Excel表格已被成功导入至Apptivo订单系统中。
须确保在SO Excel表中更新每个PO#行对应的SO列。
现应将SO相关的Excel文件放置于'已处理'文件夹内。

一旦你把所有这些都做好了,你就成功地处理了所有的SO。

总结

本项目是我们对Automation Anywhere A2019的第一个全面应用。我们的团队采用父代与子代机器人协同工作的方式,在电子表格中提取SO数据,并将这些信息传输到基于互联网的应用程序中。这些机器人不仅能够提取生成的SO编号,并且还能实时更新相关电子表格中的数据。通过这一项目的介绍,我们希望能够帮助您更深入地掌握A2019在Excel和网络自动化中的应用方法。在后续章节中,则会展示该软件在系统管理方面的更多应用场景。

全部评论 (0)

还没有任何评论哟~