PERSONAS:重用脚本功能的最佳实践?

2020-09-20 02:25发布

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

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


嗨,

假设我在脚本" SCRIPT_1"中具有功能 useful_func ,我想在另一个脚本中重用 same

哪个选项最适合性能

1-

//内部SCRIPT_2

 var myScript = session.utils.getScriptById(" SCRIPT_1");
 myScript.useful_func();
 

2-使用全局javascript资源

//在SCRIPT_1和SCRIPT_2内部

 globalLibrary = session.utils.include(" ",true);
 globalLibrary.useful_func(); 

修改

3-

//内部SCRIPT_1
 globalLibrary = session.utils.include(" ",true);
 globalLibrary.useful_func(); 
//SCRIPT_2
 var myScript = session.utils.getScriptById(" SCRIPT_1");
 myScript.globalLibrary.useful_func();
 

此致

亚历山大(Alexandre)

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

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


嗨,

假设我在脚本" SCRIPT_1"中具有功能 useful_func ,我想在另一个脚本中重用 same

哪个选项最适合性能

1-

//内部SCRIPT_2

 var myScript = session.utils.getScriptById(" SCRIPT_1");
 myScript.useful_func();
 

2-使用全局javascript资源

//在SCRIPT_1和SCRIPT_2内部

 globalLibrary = session.utils.include(" ",true);
 globalLibrary.useful_func(); 

修改

3-

//内部SCRIPT_1
 globalLibrary = session.utils.include(" ",true);
 globalLibrary.useful_func(); 
//SCRIPT_2
 var myScript = session.utils.getScriptById(" SCRIPT_1");
 myScript.globalLibrary.useful_func();
 

此致

亚历山大(Alexandre)

付费偷看设置
发送
5条回答
Climb_Ma
1楼 · 2020-09-20 02:50.采纳回答

亚历山大,你好

也许这种解决方案可以帮助您:

我按照自己的喜好创建了一个"通用"脚本:" CommonFunctions"

我可以在脚本上方的蓝线中看到内部脚本名称:Conditionnement_03-ZPP_UM_OF-0100-wnd [0]/scrptPersonas_6

脚本定义:

RefreshPrintButtonsX = function()
{
//Mise禁止使用原始按钮
//Identification anddésactivationdes boutons
var Button1 =" wnd [0]/usr/btnPersonas_148360205268814 ";
session.findById(Button1).setProperty(" fontColor"," rgba(221,221,221,1)");
...

现在,我正在使用此脚本,并通过以下指令从其他脚本中调用它:executeScript

//Mise en forme du bouton d'imprimante
session.utils.executeScript(" wnd [0]/scrptPersonas_6");
var PrintButtons = RefreshPrintButtonsX();
.......

最诚挚的问候,

Pierre

宇峰
2楼-- · 2020-09-20 02:56

确定" ... executeScript .."是正确的调用。 我不知道为什么我对" ... getScriptById ..."固执己见。

Merci倾倒助手!

亚历山大(Alexandre)

微wx笑
3楼-- · 2020-09-20 02:57

嗨Alexandre,

如果您打算在其他地方使用相同的脚本(例如,使用另一种口味),那么在全局javascript中使用它们会很有意义 资源。
如果打算以相同的方式使用,则使用getScriptById应该足够。

致谢,
Cris

Doze时光
4楼-- · 2020-09-20 02:51

Hi Cris,

对于您的评论,我没有收到任何通知,对您的回复表示抱歉。 我想我理解:)最好使用带有" False"属性的全局资源(在一次会话中仅加载一次)。 现在,我一直使用"是",因为我没有成功启动脚本。 我已经尝试了一些,现在似乎可以了。

最后一个问题:

//Global.js资源
  myLogFn = function(sMessage){
  session.utils.log(sMessage);
 }; 

哪个选项更好?

//SCRIPT_1风格
 session.utils.include(" global.js GUID",false);
 myLogFn('Script1');

//口味为SCRIPT_2
 session.utils.include(" global.js GUID",false);
 myLogFn('Script2');


 =>我们在每个脚本中都包含了global.JS 


//SCRIPT_1风格
 session.utils.include(" global.js GUID",false);
 myLogFn('Script1');

//口味为SCRIPT_2
 var script = session.utils.getScriptById('SCRIPT_1');
 script.myLogFn('Script2'); //我想这种语法有效


 =>我们仅将global.JS包含在SCRIPT_1中,然后使用SCRIPT_1 reference 
南山jay
5楼-- · 2020-09-20 02:46

在SCRIPT_2中对其进行调用总结:最好使用global ressource => OK。 现在,如果我想将全局资源的方法调用成我喜欢的几个脚本,那么最好的方法是什么?

1)我在每个脚本中调用" session.utils.include"命令

2)或者,我在自己的一个脚本中调用" session.utils.include"命令(例如在" TOP_SCRIPT"中),然后在所有其他脚本中调用" TOP_SCRIPT.my_function();"。 "

3)1和2的表现相同

--------------------------------------------------- ------------------------

编辑:似乎选项2不能正常工作...

//----------------------------
//工作
//----------------------------
//session.utils.include("00505699466B1ED88FAD397B237EB234",否);
//var notifNo = session.findById(" wnd [0]/usr/ctxtPersonas_152086760259773");
//goToServiceNotif(notifNo.text,"IW53");

//----------------------------
//不工作:(
//----------------------------
 var script = session.utils.getScriptById('wnd [0]/scrptPersonas_00505699466B1EE88F98CE878BE76FD4');
 var notifNo = session.findById(" wnd [0]/usr/ctxtPersonas_152086760259773");
 script.goToServiceNotif(notifNo.text," IW53");


//=>我的语法错误吗????  <=我错过了某处的东西吗?还是我们无法使用角色扮演的东西?

此致

亚历山大(Alexandre)

一周热门 更多>