我正在尝试使用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”将自由更改。谁能帮我解决这个问题。
答案 0 :(得分:0)
tl; dr:您应该应该获取并使用更改的GuiComponent的ID。在最坏的情况下,您可以检测到GuiComponent的父级并列出其子级ID。
有几种方法,其中一些最终可能会起作用:
在Application Modeller中进行监视时,属性的匹配模式默认情况下设置为“相等”。有时放宽匹配条件会有所帮助。
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/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 object model's documentation非常好。一旦我遇到了与您完全相同的问题,这就是我实际解决问题的方式。
请注意,我正在家里写此答案,而当前没有访问Blue Prism。或SAP。
答案 1 :(得分:0)
在这种情况下,我可能会尝试使用其他间谍模式。您尝试过在这里使用它吗?
另一种解决方案是按照BálintErdősi的建议将SAP API与代码阶段一起使用。