Lumira Designer脚本问题

2020-09-19 16:38发布

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

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


你好

首先,我正在运行Lumira Designer版本21.0.0。

注意,下面的代码是我正在测试的原始脚本的简化,但是它表现出与原始脚本相同的问题,并且更简单地说明了该问题。

快速背景:在下面的代码中,我有两个数据源。 我希望在代码的第1行中选择DS_DETAIL变量,作为输入传递给DS_TOTAL中相同的Bex变量,以便DS_TOTAL中的KF返回更新后的值。 我无法在此处使用合并的提示,因为某些数据源包含一些变量,这些变量在启动脚本时不希望显示。

但是,当我执行脚本时,不会发生预期的行为。 提示屏幕将打开,并且DS_DETAIL正确接受我的输入。 但是,当执行第4行("调试器"行)时,结果警报将显示正确的变量值,但" getData"命令返回的关键指标将显示来自DS_TOTAL的关键指标的过时值。 如果使用相同的Bex变量输入值第二次执行脚本,则所有输出均正确。

 DS_DETAIL.openPromptDialog(300,100);
 var offer_org = DS_DETAIL.getVariableValueExt(" ZCM_ORGUNIT_V12");
 DS_TOTAL.setVariableValueExt(" ZCM_ORGUNIT_V12",offer_org);
 APPLICATION.alert(DS_TOTAL.getVariableValueExt(" ZCM_ORGUNIT_V12")+"," + DS_TOTAL.getDataAsString(" 86RCBSP2M3E6FH504BI738FLX",{}));
 

在我看来,执行"警告"行时,关键指标值(总和)尚未完成计算,但是在Design Studio和Designer中,我始终对每条后续行都印象深刻 直到所有前几行都完成了必要的计算后,脚本的脚本才会执行。 过去,我在更长或更复杂的脚本的开头使用了openPromptDialog,而没有出现此问题。 我对代码行在后台执行的方式的假设是否正确?

同时,在下面添加第4-5行似乎可以解决此问题-该脚本现在可以正确更新DS_TOTAL中的变量和KF。 但是,我仍然不确定为什么必须添加这两行,并希望更好地了解这里可能发生的情况。

 DS_DETAIL.openPromptDialog(300,100);
 var offer_org = DS_DETAIL.getVariableValueExt(" ZCM_ORGUNIT_V12");
 DS_TOTAL.setVariableValueExt(" ZCM_ORGUNIT_V12",offer_org);
 DS_TOTAL.unloadDataSource();
 DS_TOTAL.loadDataSource();
 APPLICATION.alert(DS_TOTAL.getVariableValueExt(" ZCM_ORGUNIT_V12")+"," + DS_TOTAL.getDataAsString(" 86RCBSP2M3E6FH504BI738FLX",{})); 

有人可以建议吗?

在此先感谢您的帮助。

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

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


你好

首先,我正在运行Lumira Designer版本21.0.0。

注意,下面的代码是我正在测试的原始脚本的简化,但是它表现出与原始脚本相同的问题,并且更简单地说明了该问题。

快速背景:在下面的代码中,我有两个数据源。 我希望在代码的第1行中选择DS_DETAIL变量,作为输入传递给DS_TOTAL中相同的Bex变量,以便DS_TOTAL中的KF返回更新后的值。 我无法在此处使用合并的提示,因为某些数据源包含一些变量,这些变量在启动脚本时不希望显示。

但是,当我执行脚本时,不会发生预期的行为。 提示屏幕将打开,并且DS_DETAIL正确接受我的输入。 但是,当执行第4行("调试器"行)时,结果警报将显示正确的变量值,但" getData"命令返回的关键指标将显示来自DS_TOTAL的关键指标的过时值。 如果使用相同的Bex变量输入值第二次执行脚本,则所有输出均正确。

 DS_DETAIL.openPromptDialog(300,100);
 var offer_org = DS_DETAIL.getVariableValueExt(" ZCM_ORGUNIT_V12");
 DS_TOTAL.setVariableValueExt(" ZCM_ORGUNIT_V12",offer_org);
 APPLICATION.alert(DS_TOTAL.getVariableValueExt(" ZCM_ORGUNIT_V12")+"," + DS_TOTAL.getDataAsString(" 86RCBSP2M3E6FH504BI738FLX",{}));
 

在我看来,执行"警告"行时,关键指标值(总和)尚未完成计算,但是在Design Studio和Designer中,我始终对每条后续行都印象深刻 直到所有前几行都完成了必要的计算后,脚本的脚本才会执行。 过去,我在更长或更复杂的脚本的开头使用了openPromptDialog,而没有出现此问题。 我对代码行在后台执行的方式的假设是否正确?

同时,在下面添加第4-5行似乎可以解决此问题-该脚本现在可以正确更新DS_TOTAL中的变量和KF。 但是,我仍然不确定为什么必须添加这两行,并希望更好地了解这里可能发生的情况。

 DS_DETAIL.openPromptDialog(300,100);
 var offer_org = DS_DETAIL.getVariableValueExt(" ZCM_ORGUNIT_V12");
 DS_TOTAL.setVariableValueExt(" ZCM_ORGUNIT_V12",offer_org);
 DS_TOTAL.unloadDataSource();
 DS_TOTAL.loadDataSource();
 APPLICATION.alert(DS_TOTAL.getVariableValueExt(" ZCM_ORGUNIT_V12")+"," + DS_TOTAL.getDataAsString(" 86RCBSP2M3E6FH504BI738FLX",{})); 

有人可以建议吗?

在此先感谢您的帮助。

付费偷看设置
发送
1条回答
软件心理学工程师
1楼-- · 2020-09-19 16:57

斯科特,你好

在执行与数据源操作相关的顺序脚本代码时,该脚本不一定"等待"一个操作完全完成才执行下一个操作。 这就是为什么在您这样的场景中,我建议将任何依赖于数据源更新的代码放在相应数据源的"按结果集更改"事件中。

我建议您尝试将第一个代码段中的DS_TOTAL.getDataAsString(" 86RCBSP2M3E6FH504BI738FLX",{}))代码行移至DS_TOTAL数据源的"结果集已更改"事件。

此致

穆斯塔法。

一周热门 更多>