点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我想在动态where条件下使用动态选择查询。 为此,我使用了下面的代码,但是在使用此代码时出现了转储。
如果还有其他方法可以满足此要求,请提出建议。
谢谢
Sanket Sethi
代码***************
参数:p_tabnam TYPE标签名, p_selfl1 TYPE edpline, p_value TYPE edpline, p_where1 TYPE edpline。 数据:lt_where edpline TYPE TABLE, lt_sel_list edpline类型表, l_wa_name TYPE字符串, ls_where TYPE edpline, l_具有TYPE字符串, dref TYPE REF TO数据, itab_type类型参考cl_abap_tabledescr, struct_type类型参考cl_abap_structdescr, elem_type类型参考cl_abap_elemdescr, comp_tab TYPE cl_abap_structdescr => component_table, comp_fld TYPE cl_abap_structdescr =>组件。 类型:f_count个类型i。 FIELD-SYMBOLS:TYPE ANY TABLE, * TYPE ANY, TYPE ANY。 struct_type?= cl_abap_typedescr => describe_by_name(p_tabnam)。 elem_type?= cl_abap_elemdescr => describe_by_name('F_COUNT')。 comp_tab = struct_type-> get_components()。 comp_fld-name ='F_COUNT'。 comp_fld-type = elem_type。 APPEND comp_fld至comp_tab。 struct_type = cl_abap_structdescr => create(comp_tab)。 itab_type = cl_abap_tabledescr => create(struct_type)。 l_wa_name ='l_WA'。 创建数据dref TYPE HANDLE itab_type。 ASSIGN dref-> *至 。 *创建数据dref TYPE HANDLE struct_type。 * ASSIGN dref-> *至 。 *选择字段的创建 将p_selfl1附加到lt_sel_list。 将" COUNT(*)AS F_COUNT"附加到lt_sel_list。 **创建" where"子句 * CONCATENATE p_selfl1'=''p_value''。' * INTO ls_where *按空格分隔。 * APPEND ls_where到lt_where。 *创建" where"子句 追加p_where1到lt_where。 *创建"具有"子句 l_having ='count(*)> = 1'。 *动态选择 选择(lt_sel_list) FROM(p_tabnam) 表 的对应字段。 *在(lt_where)。
嗨,
不要将CONCATENATE用于Select语句中的Where-Clause,而应将REPLACE与字段名和值一起使用。
这是逻辑:
谢谢\
Mahesh
嗨,Sanket,
我上面给出的逻辑对您有用,将代码放在If条件中,然后尝试-
如下所示:
谢谢\
Mahesh
我认为您的动态Where表为空....
转储的错误分析怎么说?
致谢
Priyank
嗨priyank,
我已经按照您的建议更改了代码。 但是问题是我将值之后的时间段连接起来
(例如Equnr ='000000000010000000'。)
它穿过转储????。 无论如何,谢谢大家的宝贵建议。
删除该点"。"
一周热门 更多>