点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我有一个AMDP类方法的Import参数,例如String类型的" iv_sel_opt"。
确实会有" CL_SHDB_SELTAB => combine_seltabs"中的值,因此它将转换报告屏幕的"选择选项"并将其转换为" SQL Where子句"。
现在无法在AMDP方法实现中将此" iv_sel_opt"用作" APPLY_FILTER"的第二个参数。
上面写着" SQLSCRIPT消息:参数不受支持的类型:APPLY_FILTER:第二个参数必须是标量变量&A0&A1&A2&A3&A4&A5&A6&A7&A8&A9"。
除了使用CDS表函数之外,还有其他方法可以实现吗?
非常有用的评论。
谢谢
四进
请找到我的代码:
CLASS zcl_demo_consume_amdp_abap定义 上市 最后 创建公众。 公共部分。 接口:if_amdp_marker_hdb。 类型: ty_mara的开始, matnr TYPE C LENGTH 40, ernam TYPE C LENGTH 12, ty_mara的结尾, tt_mara ty_mara的类型标准表。 类方法get_mara 输入 VALUE(iv_client)TYPE要求 VALUE(iv_sel_opt)TYPE字符串 出口 VALUE(et_mara)类型tt_mara。 受保护的部分。 专用部分。 ENDCLASS。 类别zcl_demo_consume_amdp_abap实施。 方法get_mara通过数据库过程 对于组屋 语言SQLSCRIPT 选项只读 使用玛拉。 et_mara = apply_filter(mara,iv_sel_opt); " <==这是错误 终结法。 ENDCLASS。
确保您得到此错误(在注释中提到),因为MARA表的字段比输出表ET_MARA中定义的字段多。 您可以使用以下示例进行解析:
正如我尝试添加':'的某些成员所强调的那样,
消息说:
可以采取任何措施来消除此错误吗?
我看到的唯一一点是,缺少用于解决AMDP中IV_SELOPT参数的冒号。 您可以在参数名称前面添加冒号吗?
我真的不知道为什么我的问题被某人否决了。 AMDP相当新,我无法通过互联网找到任何解决方案。
嗨,
第二个错误与Apply过滤器无关,它表示Apply过滤器的返回表结构与给定的LHS表不匹配。
在这种情况下,et_mara和mara(应用过滤器内部)具有不同的结构。
请验证并纠正LHS和RHS中的结构相同,然后et_mara = apply_filter(mara,:iv_sel_opt); 应该可以。
-克里希纳(Krishna S)
嗨弗洛里安,
首先非常感谢,是的,我错过了这一部分:
能否请您将此评论作为新的答案,以便我可以接受它作为此查询的解决方案。
谢谢
Sijin
我要补充一点,CE函数已过时(根据SQL参考指南),您应该使用SQL函数(从mara中选择a,b,c ...,其中column = :iv_sel_opt)
一周热门 更多>