联接vs对于所有条目-错误处理/未找到记录

2020-09-10 21:15发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)亲爱的 成为一个好公民之类...

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

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


亲爱的

成为一个好公民之类的人,我知道应该朝着使用联接甚至代码下推而不是FAE的方向努力。

但是,后者似乎更适合进行更用户友好的错误处理。

假设我有以下联接(为简化起见,简化了)

选择q〜qmnum
 从qmel AS q
 内联ihpa AS i
 开q〜objnr = i〜objnr
 q〜qmnum输入@it_qmnum_range
 AND i〜parvw ='Y4'
 插入表@DATA(lt_notification)。

因此,我本质上想获取所有服务通知,其中已为特定的合作伙伴类型(技术人员= Y4)分配了任务。

使用上述连接执行此操作后,如果出现某些故障,我不知道是否由于通知号不在" it_qmnum_range"范围内而失败,或者在" ihpa"中找不到" Y4"条目,

如果我要去FAE,我可以解决,准确找出问题出在哪里,并向用户返还有意义的错误。

如何在仍然选择联接/下推代码的同时克服此类问题。


欢呼

Jens

6条回答

空结果集不是失败的联接。
联接操作正确(并希望很快)可以确定记录的无组合是否符合提供的条件。

现在,您想获取有关为什么会这样的更多信息。

p>

您可以检查查询中的每个过滤条件是否(单独使用)是否会产生非空结果。 那有帮助吗? 不可以,因为筛选出特定记录的原因很可能是所有筛选器(或仅某些筛选器)的组合。

到那时,要提供关于为什么未在结果集中包含某些记录的简明反馈,您将必须通过所有过滤器组合进行工作,这对于"错误处理"而言可能会变得很复杂。

在"一般情况"中是如此。

对于您的示例,您要做的(这就是我的假设)是,一旦发现结果集是 如果为空,则您的代码将检查IPHA是否具有PARVW ='Y4'的任何条目,以及QMEL是否返回QMNUM_RANGE的任何记录。 您可以通过运行两个附加语句来使用SQL进行完全相同的操作。

除此以外,我必须承认,我之前和之前都没有看到过"为什么找不到"的要求 对于我来说,获取服务通知的示例并没有发生,最终用户希望/需要解释为什么没有通知。

除了"可能很好"这一点之外: 在什么情况下,您会为用户提供这种反馈?

一周热门 更多>