我如何在abap中使用动态where条件

2020-09-09 13:41发布

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

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


hii

我要使用动态where条件。 这是我正在使用的当前代码:

数据:ts_req_log的lt_req_log类型标准表,
           ls_req_log类型ts_req_log,
           cond(72)C型,
           itab就像桌子一样。


 CONCATENATE'b〜req_date''BETWEEN'im_validfrom'AND'im_validto INTO cond由空格分隔。
     附加到itab。
     清除条件。

     如果im_customer不是INITIAL。
       CONCATENATE'AND''b〜customer_code''eq'im_customer INTO用空格分隔。
       附加到itab。
       清除条件。
     万一。

     如果im_consigneeee不是INITIAL。
       CONCATENATE'and b〜consignee_code eq'im_consignee INTO cond由空格分隔。
       附加到itab。
       清除条件。
     万一。

     如果im_material不是INITIAL。
       CONCATENATE'AND b〜material_code eq'im_material INTO cond以空格分隔。
       附加到itab。
       清除条件。
     万一。

     选择
       a〜request_no
       a〜item_no
       b〜customer_code
       b〜customer_name
       b〜收货人代码
       b〜收货人名称
       b〜material_code
       b〜material_desc
       b〜请求者
       b〜req_date
       a〜由1批准
       a〜approvedon1
       a〜由2批准
       a〜approvedon2
       一个〜被拒绝
       从/aag362/sd_apdet作为联接/aag362/sd_spreq AS b在a〜request_no EQ b〜request_no和a〜item_no EQ b〜item_no上
       进入表lt_req_log
       在哪里(itab)。
 * b〜req_date在AND_im_valid和AND〜b_customer_code eq im_customer之间。

     循环至lt_req_log INTO ls_req_log。
       附录ls_req_log到ex_req_log。
     ENDLOOP。

我没有收到任何错误,但也没有检索任何数据。

我要去哪里错了?

致谢

Siddharth

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

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


hii

我要使用动态where条件。 这是我正在使用的当前代码:

数据:ts_req_log的lt_req_log类型标准表,
           ls_req_log类型ts_req_log,
           cond(72)C型,
           itab就像桌子一样。


 CONCATENATE'b〜req_date''BETWEEN'im_validfrom'AND'im_validto INTO cond由空格分隔。
     附加到itab。
     清除条件。

     如果im_customer不是INITIAL。
       CONCATENATE'AND''b〜customer_code''eq'im_customer INTO用空格分隔。
       附加到itab。
       清除条件。
     万一。

     如果im_consigneeee不是INITIAL。
       CONCATENATE'and b〜consignee_code eq'im_consignee INTO cond由空格分隔。
       附加到itab。
       清除条件。
     万一。

     如果im_material不是INITIAL。
       CONCATENATE'AND b〜material_code eq'im_material INTO cond以空格分隔。
       附加到itab。
       清除条件。
     万一。

     选择
       a〜request_no
       a〜item_no
       b〜customer_code
       b〜customer_name
       b〜收货人代码
       b〜收货人名称
       b〜material_code
       b〜material_desc
       b〜请求者
       b〜req_date
       a〜由1批准
       a〜approvedon1
       a〜由2批准
       a〜approvedon2
       一个〜被拒绝
       从/aag362/sd_apdet作为联接/aag362/sd_spreq AS b在a〜request_no EQ b〜request_no和a〜item_no EQ b〜item_no上
       进入表lt_req_log
       在哪里(itab)。
 * b〜req_date在AND_im_valid和AND〜b_customer_code eq im_customer之间。

     循环至lt_req_log INTO ls_req_log。
       附录ls_req_log到ex_req_log。
     ENDLOOP。

我没有收到任何错误,但也没有检索任何数据。

我要去哪里错了?

致谢

Siddharth

付费偷看设置
发送
6条回答
Haoba3210
1楼-- · 2020-09-09 14:08

请尝试使用具有完整条件的字符串,而不是使用内部表。

我是小鹏鹏啊
2楼-- · 2020-09-09 14:05

将rhs变量保留在引号(')中。 这样的事情-执行连接时为'im_material'。

小熊yu生菜
3楼-- · 2020-09-09 13:51

仅在SELECT处设置断点。 查看 itab 的内容(这是内部表的可怕名称。 where_clause 呢?)。

那么您可能会得到 您看不到数据的原因。

SAP浪
4楼-- · 2020-09-09 14:00

S Nalluri 为什么不将其发布为答案?

粗暴的香蕉
5楼-- · 2020-09-09 13:58

感谢纠正。

昵称总是被占用
6楼-- · 2020-09-09 14:07

Sandra Rossi 站在我这一边。 正在评论其他内容,并在此处做了同样的操作。

一周热门 更多>