提示后执行计划序列

2020-09-12 14:07发布

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

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


亲爱的

一旦用户在提示中填写了所需的值,我就需要执行一个计划序列。

使用Workbook_SAP_Initialize()部分中的以下句子可以轻松实现这一目标,

lResult = Application.Run(" SAPExecutePlanningSequence"," PS_1")

不幸的是,只有在第一次打开模板时才起作用,而不是在打开模板的情况下执行提示之后。

回调" AfterRedisplay"不允许执行序列和函数以避免无限循环,因此没有太多选择。

有人能达到类似的目的吗?

非常感谢。

卡洛斯。

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

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


亲爱的

一旦用户在提示中填写了所需的值,我就需要执行一个计划序列。

使用Workbook_SAP_Initialize()部分中的以下句子可以轻松实现这一目标,

lResult = Application.Run(" SAPExecutePlanningSequence"," PS_1")

不幸的是,只有在第一次打开模板时才起作用,而不是在打开模板的情况下执行提示之后。

回调" AfterRedisplay"不允许执行序列和函数以避免无限循环,因此没有太多选择。

有人能达到类似的目的吗?

非常感谢。

卡洛斯。

付费偷看设置
发送
7条回答
ZJXianG
1楼-- · 2020-09-12 14:23

一个避免无限循环的想法。

使用第一个计划函数公式作为参数控制来设置计划序列,以某种方式在所需参数为空时强制执行短转储。

Climb_Ma
2楼-- · 2020-09-12 14:35

格雷戈里奥嗨,

感谢您的反馈,但是不幸的是,此锁默认来自Analysis for Office,在此无关。 如果您尝试在预定的callbak中执行某些操作,则返回代码始终为" 0"。

此注释中的其他细节:

https://launchpad.support.sap.com/#/notes/2577920

非常感谢

Carlos。

d56caomao
3楼-- · 2020-09-12 14:34

嗨,Carlos,

您是否尝试过参数RSPLF_NO_VARIABLE_REUSE(在注释23167731中引入)。请相应地实施以下注释,以确保该参数有效 正确地:

2542608-BEx随后的更正:规划序列的变量值
2444666-在tr中的"变量屏幕"中输入新值后,过滤器变量的值未更新。 RSRT和计划顺序 2351945-随后的更正:规划序列的变量值


最诚挚的问候,
Sheldon

SAP砖家
4楼-- · 2020-09-12 14:28

Hi Sheldon,

感谢您的反馈,我已经阅读了说明,但我认为与我的问题无关。

我需要做的是在输入提示后刷新报告后执行计划序列。 我可以使用一个简单的按钮来实现此目的,但是用户希望自动行为。

我只能按需执行以下顺序:

1-加载报表后,我将呼叫放置在Workbook_SAP_Initialize()部分。

2-每次保存计划数据。

非常感谢

卡洛斯。

hongfeng1314
5楼-- · 2020-09-12 14:30

大家好,

目前,所有赌注都指向放置一个按钮以手动执行VBA宏,这没错,但这将是一种自动执行的方法。

亲切的问候

CJones
6楼-- · 2020-09-12 14:32

嗨,卡洛斯,

根据注释2577920:" AfterRedisplay回调中的命令SAPExecutePlanningSequence(以及大多数其他命令)的使用已由Analysis Office阻止。"

因此,您需要一种变通方法来触发AfterRedisplay回调之外的计划序列。

在AfterRedisplay回调中填充一个标志变量,然后将其与在工作表中的任何选择更改时触发的Excel Worksheet事件组合:

https ://msdn.microsoft.com/zh-cn/library/microsoft.office.tools.excel.worksheet.selectionchange.aspx

示例:

 Private Sub Worksheet_SelectionChange(ByVal目标作为范围)
     如果标志= 1则
     IResult = Application.Run(" SAPExecutePlanningSequence"," PS_1")
     标志= 0
     其他
     万一
 结束子
 

一周热门 更多>