计划功能宏错误消息

2020-09-06 02:21发布

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

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


嗨,大家好

我为一个按钮分配了计划序列和Plandatasave命令。

子按钮1002_Click()

使结果变暗

将lResult1变暗

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

lResult = Application.Run(" SAPExecuteCommand"," PlanDataSave")

结束子

不幸的是,如果在计划功能执行期间发生错误,则不会显示错误消息。 最后,它将运行Plandatasave功能。 如果我自己运行Planning函数,它将显示整个错误消息。

有人知道我如何捕获Planning函数的整个错误消息并显示出来吗?

当然,我可以将Planning函数和Plandatasave的执行划分为2个不同的按钮。 但是最终用户希望在一个按钮中同时具备两种功能。

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

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


嗨,大家好

我为一个按钮分配了计划序列和Plandatasave命令。

子按钮1002_Click()

使结果变暗

将lResult1变暗

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

lResult = Application.Run(" SAPExecuteCommand"," PlanDataSave")

结束子

不幸的是,如果在计划功能执行期间发生错误,则不会显示错误消息。 最后,它将运行Plandatasave功能。 如果我自己运行Planning函数,它将显示整个错误消息。

有人知道我如何捕获Planning函数的整个错误消息并显示出来吗?

当然,我可以将Planning函数和Plandatasave的执行划分为2个不同的按钮。 但是最终用户希望在一个按钮中同时具备两种功能。

付费偷看设置
发送
4条回答
愤怒的猪头君
1楼 · 2020-09-06 03:06.采纳回答

您是说一次只收到一个邮件,您就会得到正确的拒绝消息? 如果将宏分成两个过程并从常规模块中调用它们,会发生什么情况? 看来您是从工作表模块中调用它们的,这有时会不希望地影响行为。 您还可以在宏中添加一个结尾,以在没有写东西时立即提醒用户。

请参阅示例:

子按钮1002_Click()
     首先致电Macro
     致电secondMacro

 结束子


 '这两个宏将在公共模块上
 公开子firstMacro()
     Dim lresult as Long:lresult = Application.Run(" SAPExecutePlanningSequence"," PS_1")
         如果lresult = 0,则
                 MsgBox" SapExcecute计划序列失败。所有宏都停止了。"
                 结束
         万一

 结束子


 公共Sub secondMacro()
     Dim lresult As Long:lresult = Application.Run(" SAPExecuteCommand"," PlanDataSave")
         如果lresult = 0,则
                 MsgBox""保存计划数据"操作失败。所有宏都停止了。"
                 结束
         万一

 结束子
 
大道至简
2楼-- · 2020-09-06 03:10

在我看来,工作表模块中代码的位置根本没有作用。 并且也不需要2个子。 Gregor Dieckmann 清楚地解释了所需的更改。

CJones
3楼-- · 2020-09-06 03:07

嗨,克里斯蒂安,

只有当IResult = 1时,第一个才应评估IResult并调用PlanDataSave。对于消息,如果以编程方式调用函数,则可能不直接发送消息。 如果所有API调用都直接发送消息,可能会很烦人。 我希望程序中的处理工作包括消息处理,即,发送消息取决于程序。 因此,您可以检查AO API,例如SAPAddMessage和函数SAPListOfMessages,参见。 AO文档。

问候,

Gregor

hongfeng1314
4楼-- · 2020-09-06 03:19

嗨,大家好

谢谢您的回答。 我是这样解决的:

子Button10001_Click()Dim lResult作为长Dim lResult1作为变量lResult = Application.Run(" SAPExecutePlanningSequence"," PS_2")lResult1 = Application.Run(" SAPListOfMessages"," ERROR")如果IsArray(lResult1)则如果 UBound(lResult1)> 0则lResult = Application.Run(" SAPExecutePlanningSequence"," PS_2")如果否则结束lResult = Application.Run(" SAPExecuteCommand"," PlanDataSave")如果结束则结束

一周热门 更多>