SAP Personas脚本错误

2020-09-11 01:05发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我是角色工具的新手。 我已经录制了一个脚本来更改系统密码并将其分配给一个按钮。 该脚本无法通过按钮或在编辑器中使用。 请在错误下方找到。

"

脚本执行过程中的错误:
无法读取undefinedType的属性'Type'错误:无法读取Object.oPrivate.getPropertyValue( http://sapecd.aero.org :3471/sap/bc/personas3/core/script/sap/personas/fw/its /scripting/ScriptingEngine.js?20180514010622:7:17043)
在Object.get类型[作为类型]( http://sapecd.aero.org :3471/sap/bc/personas3/core/script/sap/personas/fw/its/scripting/ScriptingEngine.js?20180514010622:7:8210)
在sap.personas.scripting.scriptingEngine.oProtected.mObjects.GuiVComponent.get [作为类型]( http: //sapecd.aero.org :3471/sap/bc/personas3/core/script/sap/personas/fw/its/scripting/ScriptingEngine.js?20180514010622:7:18808)
at Object。 sap.personas.scripting.scriptingEngine.oProtected.createObject( http://sapecd.aero.org :3471/sap/bc/personas3/core/script/sap/personas/fw/its/scripting/ScriptingEngine.js?20180514010622:1:7916)
在sap.personas.scripting.scriptingEngine.oProtected.mObjects.GuiSession.sap.personas.scripting.scriptingEngine.GuiSession.findById( http://sapecd.aero.org :3471/sap/bc/personas3/core/script/sap/personas/fw/其/scripting/ScriptingEngine.js?20180514010622:52:3404)
在评估时[[AppID:SMEN]> [Flavor:Check_Reg]> [Script:wnd [0]/scrptPersonas_E6573FFEBC021ED993970CAC8E7F4014-GT25000]:6:9)< br> at Object.self.executeScriptInternal( http://sapecd.aero.org :3471 /sap/bc/personas3/core/script/sap/personas/fw/its/scripting/ScriptingEngine.js?20180514010622:65:10633)
at Object.sap.personas.scripting.executeScriptInternal( http://sapec d.aero.org :3471/sap/bc/personas3/core/script/sap/personas/fw/its/scripting/ScriptingEngine.js?20180514010622:65:12981)

评估时( http://sapecd.aero.org :3471 /sap/bc/personas3/core/script/sap/personas/fw/its/scripting/Runtime.js?eval:1:458)"

2019-03-25-12-54-48.jpg

2019-03-25-12-54-48.jpg (468.9 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我是角色工具的新手。 我已经录制了一个脚本来更改系统密码并将其分配给一个按钮。 该脚本无法通过按钮或在编辑器中使用。 请在错误下方找到。

"

脚本执行过程中的错误:
无法读取undefinedType的属性'Type'错误:无法读取Object.oPrivate.getPropertyValue( http://sapecd.aero.org :3471/sap/bc/personas3/core/script/sap/personas/fw/its /scripting/ScriptingEngine.js?20180514010622:7:17043)
在Object.get类型[作为类型]( http://sapecd.aero.org :3471/sap/bc/personas3/core/script/sap/personas/fw/its/scripting/ScriptingEngine.js?20180514010622:7:8210)
在sap.personas.scripting.scriptingEngine.oProtected.mObjects.GuiVComponent.get [作为类型]( http: //sapecd.aero.org :3471/sap/bc/personas3/core/script/sap/personas/fw/its/scripting/ScriptingEngine.js?20180514010622:7:18808)
at Object。 sap.personas.scripting.scriptingEngine.oProtected.createObject( http://sapecd.aero.org :3471/sap/bc/personas3/core/script/sap/personas/fw/its/scripting/ScriptingEngine.js?20180514010622:1:7916)
在sap.personas.scripting.scriptingEngine.oProtected.mObjects.GuiSession.sap.personas.scripting.scriptingEngine.GuiSession.findById( http://sapecd.aero.org :3471/sap/bc/personas3/core/script/sap/personas/fw/其/scripting/ScriptingEngine.js?20180514010622:52:3404)
在评估时[[AppID:SMEN]> [Flavor:Check_Reg]> [Script:wnd [0]/scrptPersonas_E6573FFEBC021ED993970CAC8E7F4014-GT25000]:6:9)< br> at Object.self.executeScriptInternal( http://sapecd.aero.org :3471 /sap/bc/personas3/core/script/sap/personas/fw/its/scripting/ScriptingEngine.js?20180514010622:65:10633)
at Object.sap.personas.scripting.executeScriptInternal( http://sapec d.aero.org :3471/sap/bc/personas3/core/script/sap/personas/fw/its/scripting/ScriptingEngine.js?20180514010622:65:12981)

评估时( http://sapecd.aero.org :3471 /sap/bc/personas3/core/script/sap/personas/fw/its/scripting/Runtime.js?eval:1:458)"

2019-03-25-12-54-48.jpg

2019-03-25-12-54-48.jpg (468.9 kB)
付费偷看设置
发送
3条回答
野沐沐
1楼 · 2020-09-11 01:33.采纳回答

尝试更换

 session.findById(" wnd [0]/tbar [0]/okcd")。text =" su01";
 session.findById("")。sendVKey(0);
 

使用

 session.callTransaction(" su01"); 

这将执行事务调用,而不是从"确定代码"条目中执行该宏的宏。

 session.findById("")。sendVKey(0);  

^这失败了,因为脚本不知道您要按Enter的位置。

 session.findById(" wnd [0]")。sendVKey(0);  

^此版本应该可以工作(对我来说有用),因为您指定了要在wnd [0]中运行的脚本。

作为参考,这是我不久前为帮助台设置的脚本(这是我的第一个角色项目):

尝试{
  //将用户名和密码插入变量。
   var usernameInit = session.findById(" wnd [0]/usr/ctxtPersonas_152648653659742")。text;
   var passwordNew = session.findById(" wnd [0]/usr/boxPersonas_152648144695534/txtPersonas_152648647873818")。text;
   var usernameUpper = usernameInit.toUpperCase();
   var passwordResetButton = session.findById(" wnd [0]/usr/boxPersonas_152648144695534/btnPersonas_152648635258444");
   var accountUnlockedIcon = session.findById(" wnd [0]/usr/boxPersonas_152648144695534/imagePersonas_152648633711112");
   var accountNameVerification = session.findById(" wnd [0]/usr/boxPersonas_152648144695534/lblPersonas_152648631005071");
  //如果"用户名"和"密码"字段中有值,请重新设置密码。
   如果(usernameUpper!== null && usernameUpper!=="" && passwordNew!== null && passwordNew!==""){
    //执行事务SU01-用户维护
     session.callTransaction(" su01");
    //大写用户名
     session.findById(" wnd [0]/usr/ctxtSUID_ST_BNAME-BNAME")。text = usernameUpper;
    //单击锁定按钮
     session.findById(" wnd [0]/tbar [1]/btn [29]")。press();
    //检查用户名是否有效
     如果(session.findById(" wnd [0]/sbar")。text ===" E:用户" + usernameUpper +"不存在"){
       session.findById(" wnd [0]/tbar [0]/btn [15]")。press();
       accountNameVerification.text = usernameUpper +"不存在"。
       usernameInit ="";
       passwordNew ="";
     }
    //检查用户帐户是否已锁定,并在需要时执行必要的步骤以将其解锁。
     其他{
       如果(session.findById(" wnd [1]")。title ===" Lock User" + usernameUpper){
         session.utils.log(" true");
         session.findById(" wnd [1]/tbar [0]/btn [12]")。press();
         session.findById(" wnd [0]/tbar [1]/btn [20]")。press();
       }其他{
         session.findById(" wnd [1]/tbar [0]/btn [7]")。press();
         session.findById(" wnd [0]/tbar [1]/btn [20]")。press();
       }
      //将password变量输入到弹出窗口中作为新密码,然后返回主屏幕。
       session.findById(" wnd [1]/usr/subPOPUP:SAPLSUID_MAINTENANCE:1101/pwdSUID_ST_NODE_PASSWORD_EXT-PASSWORD")。text = passwordNew;
       session.findById(" wnd [1]/usr/subPOPUP:SAPLSUID_MAINTENANCE:1101/pwdSUID_ST_NODE_PASSWORD_EXT-PASSWORD2")。text = passwordNew;
       session.findById(" wnd [1]/tbar [0]/btn [0]")。press();
       session.findById(" wnd [0]/tbar [0]/btn [15]")。press();

      //显示用户帐户解锁图标
       accountUnlockedIcon.show();
       accountNameVerification.text = usernameUpper +"重置密码";
       usernameInit ="";
       passwordNew ="";
     }
   }其他{
    //如果您没有在"用户名"和"密码"字段中输入任何内容,那么它会嘲笑您,并且只会告诉您什么。
     session.utils.alert("请同时输入用户名和密码。");
   }
  //将错误消息返回到日志以及一个弹出窗口。
 } catch(oError){
   var sErrorMessage ="执行脚本时发生错误。详细信息:\ n";
   sErrorMessage + ="错误ID:" + oError.name +" \ n";
   sErrorMessage + ="错误消息:" + oError.message;
   session.utils.alert(sErrorMessage);
   session.utils.log(sErrorMessage);
 }
 

我从webgui的"轻松访问"屏幕中运行它,并为其构建了一个小界面


这是编辑器视图,以及我在脚本开头使用的变量名。

黑丝骑士
2楼-- · 2020-09-11 01:52

您好,Elliott,

非常感谢您调查我的问题。 抱歉,我发布了错误脚本的日志。 但是下面的脚本也有相同的"类型"错误。

session.findById(" wnd [0]/tbar [0]/okcd")。text =" su01";

session.findById("")。sendVKey(0);

session.findById(" wnd [0]/usr/ctxtSUID_ST_BNAME-BNAME")。text =" 29774";

session.findById(" wnd [0]/usr/ctxtSUID_ST_BNAME-BNAME")。setFocus(); session.findById(" wnd [0]/tbar [1]/btn [20]")。press();

我通过从脚本(session.findById("")。sendVKey(0))中删除第二行来传递该错误。 虽然从角色角色调用脚本时失败了。 看到下面的错误。

注意-如果我使用SU01 T代码,则脚本可通过编辑器工作

在批处理步骤2上收到"找不到控件"消息:{" post":" focus/wnd [0]/usr/ctxtSUID_ST_BNAME-BNAME"," __ add_by_personas_scripting __":" X"}完整的批处理为:1: {" post":" okcode/ses [0]"," content":"/img/nsu01"," __ add_by_personas_scripting __":" X"} 2:{" post":" focus/wnd [0]/usr/ctxtSUID_ST_BNAME- BNAME"," ___________________ by_personas_scripting __":" X"} 3:3:{" post":" action/3/wnd [0]/tbar [1]/btn [20]"," __ added_by_personas_scripting __":" X"} 4:{ " get":" state/ur"}

谢谢

John

95年老男孩
3楼-- · 2020-09-11 01:44

介意发布与此相关的脚本吗? 图片中一个的可见部分看起来像是一个宏,用于输入校验寄存器数据并选择一个变体。

一周热门 更多>