我正在尝试使用Blueprism自动化其中一个SAP GUI屏幕。文本框的Id经常更改。所以无法窥探文本框。
我已经发现了使用SAP模式的元素。由于文本框的ID正在动态更改(大约6小时(,Blue Prism无法识别元素,因此该过程失败。
ID为:CCD_ 1。
在这里,值T000KW
将频繁地变化。有谁能帮我处理这个问题吗?
tl;dr:您可能应该获取正在更改的GuiComponent的ID并使用它。在最坏的情况下,您可以检测GuiComponent的父级并列出其子级的ID。
有几种方法,其中一些可能最终奏效:
-
在Application Modeller中进行监视时,属性的匹配模式默认设置为Equal。有时放松匹配条件会有所帮助。
- 尝试使用通配符进行匹配,例如
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
- 与Regex:
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
相同 - 您可以获得
wnd[0]/usr/subSUB_MAIN:/COCKPIT/SAPLDISPLAY46:0385/subSUB_HDR:/COCKPIT/SAPLDISPLAY46:0405/tabsG_STRIP_HDR/tabpTAB5/ssubSUB:/COCKPIT/SAPLDISPLAY46:0436/
组件的子级列表(当然有一个Code阶段,但甚至可能有一个Read阶段(,从而检测到变化的部分。有了这些信息,您可以为元素设置动态匹配模式,在该模式中,您将根据这些信息计算ID
- 尝试使用通配符进行匹配,例如
-
使用代码阶段与SAP交互(这是我通常做的(,而不是应用程序模型。在那里,您可以通过获取不变元素的直接子元素并计算元素的ID来模拟上述(1.3.(方法。SAP GUI对象模型的文档非常好。有一次我遇到了和你完全相同的问题,这就是我真正解决它的方式
请注意,我在家里写这个答案,目前没有访问Blue Prism。或SAP。
在这种情况下,我可能会尝试使用不同的间谍模式。你试过在这里用它吗?
另一种解决方案是使用SAP API和Bálint ErdŞsi建议的代码阶段。