点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
尝试。 et_agents = VALUE#(基础et_agents 在l_agents中使用ls_agent LET check = NEW zcl_te_pos_deleg(CONV#(ls_agent-objid) )-> is_within_limit(CONV#(iv_amount)) 在 (COND#(当check = abap_true时 然后对应#(ls_agent) 其他抛出恢复zcx_swf_no_agent_found() ) ) )。 取消缠绕之前捕获zcx_swf_no_agent_found。 恢复。 ENDTRY。 在表_行为INITIAL的地方删除et_agents。" <-我想避免这样做
问题在于,在引发异常并将其恢复后,在处理下一个IT_AGENTS迭代之前,在表ET_AGENTS中附加了空行。
FOR LOOP表达式中是否有一种方法像CHECK或CONTINUE语句一样,就像在传统的LOOP/ENDLOOP语句中一样?
谢谢
So田。
感谢 Sandra Rossi 可以很好地工作(即使没有完整的类型),这意味着不需要上面的代码 引发异常并恢复它-我希望SAP在将来的版本中提供一个选项,以允许在此FOR LOOP表达式内使用CHECK或CONTINUE选项,以便可以优雅地实现它。 存在WHERE条件,但在上述情况下不起作用; 因此我们希望看到一个增强的WHERE,它可以像FOR LOOP中的"检查"一样工作。
Mateusz Adamus a>嗨,Mateusz的可读性更好,而且还取决于个人喜好-当实现使用函数式编程(即LHS = RHS就像数学方法)而不是编写"故事"时,我发现它具有更好的可读性和逻辑性 老式编程的案例-我想这是SAP升级其ABAP语言以使其能够与其他现代现代语言保持一致的一种现代主要原因。
最诚挚的问候,
Sougata。
不存在(自7.53起)。
NB:在您的情况下,您可以使用以下技巧作为变通方法, 在每个循环中,将内部表的行添加为0或1行(语法未经验证;您可能需要定义内部表的实际完整类型而不是#):
还有一些愚蠢的解决方法,我不想提及。
你好Sougata,
出于好奇。
为什么只用几行就可以使用旧语法来实现新语法呢?
亲切的问候,
Mateusz
一周热门 更多>