首页 > 解决方案 > 在 Blue Prism Application Modeller 中使用正则表达式

问题描述

我正在使用 Blue Prism 5 自动执行 SAP 中的任务。我发现其中一个屏幕上的相同控件在视觉上具有不同的 ID。查看这些 ID 让我怀疑 SAP 客户端当时实际上正在显示不同的字段,但与我的任务在逻辑上是等效的。

这三个 ID 就是一个例子,它们都是从显示城市名称的对话框中的同一个地方窥探到的,但针对不同人的地址:

/app/con[0]/ses[0]/wnd[0]/usr/subSCREEN_3000_RESIZING_AREA:SAPLBUS_LOCATOR:2036/subSCREEN_1010_RIGHT_AREA:SAPLBUPA_DIALOG_JOEL:1000/ssubSCREEN_1000_WORKAREA_AREA:SAPLBUPA_DIALOG_JOEL:1100/ssubSCREEN_1100_MAIN_AREA:SAPLBUPA_DIALOG_JOEL:1101/tabsGS_SCREEN_1100_TABSTRIP/tabpSCREEN_1100_TAB_01/ssubSCREEN_1100_TABSTRIP_AREA:SAPLBUSS:0028/ssubGENSUB:SAPLBUSS:7016/subA05P01:SAPLBUA0:0400/subADDRESS:SAPLSZA7:0600/subCOUNTRY_SCREEN:SAPLSZA7:0601/ctxtADDR2_DATA-CITY1
/app/con[0]/ses[0]/wnd[0]/usr/subSCREEN_3000_RESIZING_AREA:SAPLBUS_LOCATOR:2036/subSCREEN_1010_RIGHT_AREA:SAPLBUPA_DIALOG_JOEL:1000/ssubSCREEN_1000_WORKAREA_AREA:SAPLBUPA_DIALOG_JOEL:1100/ssubSCREEN_1100_MAIN_AREA:SAPLBUPA_DIALOG_JOEL:1101/tabsGS_SCREEN_1100_TABSTRIP/tabpSCREEN_1100_TAB_01/ssubSCREEN_1100_TABSTRIP_AREA:SAPLBUSS:0028/ssubGENSUB:SAPLBUSS:7016/subA05P01:SAPLBUA0:0400/subADDRESS:SAPLSZA7:0600/subCOUNTRY_SCREEN:SAPLSZA7:0601/txtADDR2_DATA-CITY1
/app/con[0]/ses[0]/wnd[0]/usr/subSCREEN_3000_RESIZING_AREA:SAPLBUS_LOCATOR:2036/subSCREEN_1010_RIGHT_AREA:SAPLBUPA_DIALOG_JOEL:1000/ssubSCREEN_1000_WORKAREA_AREA:SAPLBUPA_DIALOG_JOEL:1100/ssubSCREEN_1100_MAIN_AREA:SAPLBUPA_DIALOG_JOEL:1101/tabsGS_SCREEN_1100_TABSTRIP/tabpSCREEN_1100_TAB_01/ssubSCREEN_1100_TABSTRIP_AREA:SAPLBUSS:0028/ssubGENSUB:SAPLBUSS:7016/subA05P01:SAPLBUA0:0400/subADDRESS:SAPLSZA1:0300/subCOUNTRY_SCREEN:SAPLSZA1:0301/ctxtADDR1_DATA-CITY1

如您所见,它们大多相同,仅在接近尾声时有所不同。

我认为这是在 Blue Prism Application Modeller 中使用正则表达式的机会。所以我尝试这样配置它。结果在以下屏幕截图中:

Blue Prism Object Studio 的屏幕截图

我显然尝试了几种形式的 RegExpr 和表达式的变体,但我无法让它找到那个控件。

有人可以告诉我我在这里做错了什么吗?是表达式语法还是我完全误解了 RegExpr 功能?

我的解决方法是分别监视每个变体,并有一个等待阶段来查找所有变体。

感谢您的阅读,如果您对此提出任何建议,我将不胜感激。

标签: regexsapblueprismrpa

解决方案


据我所知,正则表达式模式在 SAP 中不起作用。

我相信您的解决方法是正确的,在这种情况下我会建议这样做。

另一种方法是使用编码阶段连接到 SAP API,但这是一件复杂的事情。


推荐阅读