点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
以下与AMDP中的HANA SQLScript相关。
在SELECT子句中考虑此字段表达式:SELECT ...,
CASE:INTAB.A_NUMBER 当" 1234" THEN(1//(:INTAB.A_NUMBER-:INTAB.A_NUMBER)) 当" 5678" 然后:INTAB.SOME_OTHER_NUMBER 其他0 END RESULT_FIELD,
当输入数据集包含" A_NUMBER" ='1234'的记录时,自然会以除以零的错误进行转储。 如果没有这样的记录,则不会转储。 很好,符合预期。
现在考虑以下字段表达式:
案例:INTAB.COMPANY 当" 1234" 然后(CONVERT_CURRENCY( AMOUNT => amount_field SOURCE_UNIT => loc_currency TARGET_UNIT =>'GBP' REFERENCE_DATE => ref_date 客户=>'010' 模式=>:lv_schema)) 当" 5678" 然后:INTAB.SOME_OTHER_VALUE 其他0 END AS key_figure_1,
当我使用不带COMPANY ='1234'的数据集运行此程序时,出现有关未设置货币换算的错误。 即使WHEN表达式不正确,看起来CONVERT_CURRENCY过程仍在运行。
这至少可以说是出乎意料的。 有人有什么解释吗?
在放弃之前先尝试一下颠簸...
您好,Matthew,
所选值将用 与结果无关的转换并不表示将不执行该转换(如您所显示的:-))。
执行计划是使用占位符作为未知数创建的,因此需要 包括所有案例分支。 如果HANA不执行不必要的分支会很好,但只要结果正确,那将不是一个错误。 实际上,首先对所有记录执行分支,然后再丢弃不必要的结果可能会更快。
我知道,这实际上并不能帮助回答如何重写此语句以避免错误。 ,但也许您可以基于INTAB数据选择转换参数,而不是选择转换过程调用。
从文档:
您有这些表格吗?
还有更正说明 2455436-S/4转换:不正确 具有UNIT_CONVERSION的CDS视图中的架构 使用CURRENCY_CONVERSION 可以解决S/4转换后的问题,默认的SCHEMA参数是S/4转换前的参数。
一周热门 更多>