AMDP模糊搜索多个搜索词

2020-08-31 05:10发布

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

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


亲爱的

我需要对数据库表ADR6中的电子邮件地址进行系统范围的容错搜索。 我设法通过AMDP方法做到这一点:

方法amdp_search_dupl_work_addr
       按数据库程序
       对于组屋
       语言SQLSCRIPT
       选项只读
       使用adr6。

     et_duplicates =选择to_decimal(score(),3,2)作为得分,
                            smtp_addr作为电子邮件
                     来自adr6
                     其中包含(smtp_addr,iv_email,fuzzy(:iv_score))
                      ORDER BY分数描述;

   终结法。
 

您可以通过参数'iv_email'看到我可以搜索一封电子邮件。

现在,要求已更改,应该立即搜索多封电子邮件。

我阅读了有关APPLY_FILTER的信息(在AMDP中处理SELECT-OPTIONS参数),但我认为这无法涵盖我已经完成的仅搜索一个电子邮件地址的容错搜索。

据我了解,它将在执行模糊搜索之前过滤表。 如果是这种情况,那么模糊搜索的整个重点就变得毫无用处了。

此外,我检查了具有多个'contains(...)'的选项,但是我不知道如何根据要搜索的电子邮件地址来动态创建它们。

我是否可以使用AMDP达到上述要求? 请让我知道您的想法和想法。

最好的问候

Sascha

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

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


亲爱的

我需要对数据库表ADR6中的电子邮件地址进行系统范围的容错搜索。 我设法通过AMDP方法做到这一点:

方法amdp_search_dupl_work_addr
       按数据库程序
       对于组屋
       语言SQLSCRIPT
       选项只读
       使用adr6。

     et_duplicates =选择to_decimal(score(),3,2)作为得分,
                            smtp_addr作为电子邮件
                     来自adr6
                     其中包含(smtp_addr,iv_email,fuzzy(:iv_score))
                      ORDER BY分数描述;

   终结法。
 

您可以通过参数'iv_email'看到我可以搜索一封电子邮件。

现在,要求已更改,应该立即搜索多封电子邮件。

我阅读了有关APPLY_FILTER的信息(在AMDP中处理SELECT-OPTIONS参数),但我认为这无法涵盖我已经完成的仅搜索一个电子邮件地址的容错搜索。

据我了解,它将在执行模糊搜索之前过滤表。 如果是这种情况,那么模糊搜索的整个重点就变得毫无用处了。

此外,我检查了具有多个'contains(...)'的选项,但是我不知道如何根据要搜索的电子邮件地址来动态创建它们。

我是否可以使用AMDP达到上述要求? 请让我知道您的想法和想法。

最好的问候

Sascha

付费偷看设置
发送
1条回答
compass1988
1楼-- · 2020-08-31 05:42

我能够实现多个CONTAINS(),但只能进行硬编码。 如果可以动态构建它,那就太好了。 有人有主意吗?

我的目标是一次容错搜索多个电子邮件地址。

这是具有多个CONTAINS()的硬编码版本。

 METHOD amdp_search_dupl_work_addrs
       按数据库程序
       对于组屋
       语言SQLSCRIPT
       选项只读
       使用adr6。

     et_duplicates =选择to_decimal(score(),3,2)作为得分,
                            smtp_addr作为电子邮件
                     来自adr6
                     其中(contains(smtp_addr,iv_email0,Fuzzy(:iv_score))
                             或包含(smtp_addr,iv_email1,fuzzy(:iv_score))
                             或包含(smtp_addr,iv_email2,fuzzy(:iv_score))
                             或包含(smtp_addr,iv_email3,fuzzy(:iv_score))
                             或包含(smtp_addr,iv_email4,fuzzy(:iv_score))
                             或包含(smtp_addr,iv_email5,fuzzy(:iv_score))
                             或包含(smtp_addr,iv_email6,fuzzy(:iv_score))
                             或包含(smtp_addr,iv_email7,fuzzy(:iv_score))
                             或包含(smtp_addr,iv_email8,fuzzy(:iv_score))
                             或包含(smtp_addr,iv_email9,fuzzy(:iv_score)))
                      ORDER BY分数描述;

   终结法。
 

如果有人可以分享他们的想法,我将非常感谢。

一周热门 更多>