使用Blueprism的SAP GUI自动化。文本框ID经常更改。因此无法监视文本框

时间:2018-12-14 12:14:04

标签: blueprism

我正在尝试使用Blueprism自动化SAP屏幕之一。文本框的ID经常更改。因此无法监视文本框。

我使用SAP模式监视了元素。由于文本框的ID会动态更改(大约6小时),因此Blue Prism无法识别元素,并且该过程失败了。

ID为: session.findById(“ wnd [0] / usr / subSUB_MAIN:/ COCKPIT / SAPLDISPLAY46:0385 / subSUB_HDR:/ COCKPIT / SAPLDISPLAY46:0405 / tabsG_STRIP_HDR / tabpTAB5 / ssubSUB:/ COCKPIT / SAPLDISPLAY46:0436 / ssub_strong> T000KW :0200 / ctxt / COCKPIT / SHDR_DISP-RPA“)。text =”“

此处突出显示的值“ T000KW”将自由更改。谁能帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

tl; dr:您应该应该获取并使用更改的GuiComponent的ID。在最坏的情况下,您可以检测到GuiComponent的父级并列出其子级ID。

有几种方法,其中一些最终可能会起作用:

  1. 在Application Modeller中进行监视时,属性的匹配模式默认情况下设置为“相等”。有时放宽匹配条件会有所帮助。

    1. 尝试按通配符进行匹配,例如wnd[0]/usr/subSUB_MAIN:/COCKPIT/SAPLDISPLAY46:0385/subSUB_HDR:/COCKPIT/SAPLDISPLAY46:0405/tabsG_STRIP_HDR/tabpTAB5/ssubSUB:/COCKPIT/SAPLDISPLAY46:0436/ssubSUB_OTHERS:%_*:0200/ctxt/COCKPIT/SHDR_DISP-RPA
    2. 与正则表达式相同:wnd\[0\]/usr/subSUB_MAIN:/COCKPIT/SAPLDISPLAY46:0385/subSUB_HDR:/COCKPIT/SAPLDISPLAY46:0405/tabsG_STRIP_HDR/tabpTAB5/ssubSUB:/COCKPIT/SAPLDISPLAY46:0436/ssubSUB_OTHERS:%_.*:0200/ctxt/COCKPIT/SHDR_DISP-RPA
    3. 您有可能获得wnd[0]/usr/subSUB_MAIN:/COCKPIT/SAPLDISPLAY46:0385/subSUB_HDR:/COCKPIT/SAPLDISPLAY46:0405/tabsG_STRIP_HDR/tabpTAB5/ssubSUB:/COCKPIT/SAPLDISPLAY46:0436/组件的子代列表(肯定具有Code阶段,甚至可能具有Read阶段),从而可以检测到变化的部分。借助此信息,您可以为元素设置动态匹配模式,在该模式下,您将根据该信息来计算ID。
  2. 使用代码阶段与SAP交互而不是应用程序模型(这是我通常要做的)。在那里,您可以通过获取不变的元素的直接子元素并计算元素的ID来模仿上述方法(1.3。)。 SAP GUI object model's documentation非常好。一旦我遇到了与您完全相同的问题,这就是我实际解决问题的方式。

请注意,我正在家里写此答案,而当前没有访问Blue Prism。或SAP。

答案 1 :(得分:0)

在这种情况下,我可能会尝试使用其他间谍模式。您尝试过在这里使用它吗?

另一种解决方案是按照BálintErdősi的建议将SAP API与代码阶段一起使用。