Fiori UI上my contact加了Dr. 后搜索不出数据的奇怪问题

简介: Fiori UI上my contact加了Dr. 后搜索不出数据的奇怪问题

Sent: Thursday, April 16, 2015 1:13 PM

在My task UI上维护了Account后,再点Contact F4 value help:

image.png


我们发现在GM6上,只要在search field里加了”Dr”, 就搜索不出来contact,如下图。但是换成诸如“Florianna Adler”就可以。

image.png


昨晚我们纠结了好久,想知道为什么会有这种奇怪的behavior。


上午经过debug找到了原因:

image.pngimage.png

起初我们怀疑加了Dr之后的search没出来结果,是因为DB 没query到数据。今早经过验证,发现不是。Contact 的open sql是下列这个方法里动态生成的

主要就是这4张表做inner join

image.png

然后在下列这个方法里动态执行OPEN SQL,命中40条数据。


image.png

命中40条的原因就是OPEN SQL的where条件是扫描account的mc_name1和contact的mc_name1, mc_name2这三个字段。


image.png


因此,像下图中第一行和第三行这种数据也命中了,只因为它们的三个column中有一个column的value包含”DR”:

image.png


DB search做完后,对结果集做filter.

1

逐一遍历结果集的40条entry,对每个entry,执行三轮扫描,扫描条件定义在lt_search_f­里, 每个entry只有通过所有三轮扫描,才会最后返回给UI。






扫描的具体逻辑:检查某个entry的这三个红色的field里是否包含每轮扫描指定的key word。如果不包含,将该行entry从结果集中删除,再处理下一个。





因此,加了Dr后搜不出来结果的原因:


Contact F4 search仍然将Dr作为一个free text传入后台,在后台从DB取回来数据做filter之后,如果结果集的三个column里没有包含DR这个字符串的话,就会从结果集里过滤掉。只有name1 & name2里面形如Andrew,Dragon的contact才有机会呗search出来。

Fiori ui上Contact search看起来像google like search,但其实technical 实现(指DB query那部分)还是和Webclient ui上的search一样。


当然,它也支持enterprise search。



而BP 的title Dr是以key 0001的形式存放在field TITLE_ACA1里的,Dr只是0001的可翻译的description,所以通过Dr搜索得不到期望的结果。



BP的code里有个bug,他们希望执行多轮扫描时,长度较长的字符串先执行:

1



Sort之前:2,5,7




Sort之后:5,2,7 – 错了。




只有显式加上by length才行:SORT lt_search_f by length DESCENDING.




尽量follow ABAP help里定义的guideline来避免类似问题:


————————————————

版权声明:本文为CSDN博主「汪子熙」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/i042416/article/details/92805150

相关文章
|
3月前
|
前端开发
Element UI 【实战】纯前端对表格数据进行增删改查(内含弹窗表单、数据校验、时间日期格式)
Element UI 【实战】纯前端对表格数据进行增删改查(内含弹窗表单、数据校验、时间日期格式)
126 6
|
2月前
|
前端开发 JavaScript UED
element-ui 表格数据究竟隐藏着怎样的神秘样式与格式化技巧?快来揭开谜底!
【8月更文挑战第22天】《element-ui 表格数据样式及格式化案例》展示了如何利用 element-ui 的表格组件实现美观且易读的数据展示。通过简单配置,可以自定义表格样式,如边框、背景色等,并通过 formatter 实现数据格式化,例如将成绩保留一位小数。此外,还能依据条件设置行样式,如成绩达优则高亮显示,从而增强用户体验和数据可读性。
51 1
|
3月前
element UI 组件封装--搜索表单(含插槽和内嵌组件)
element UI 组件封装--搜索表单(含插槽和内嵌组件)
61 5
|
3月前
Element UI【级联选择器】el-cascader 获取选中内容的 label 数据,鼠标悬浮显示超长内容
Element UI【级联选择器】el-cascader 获取选中内容的 label 数据,鼠标悬浮显示超长内容
351 3
|
3月前
Element UI 多选表格--判断勾选数据行的 Checkbox 时为选中还是取消选中
Element UI 多选表格--判断勾选数据行的 Checkbox 时为选中还是取消选中
31 1
|
3月前
Element UI 多选表格【翻页多选】简易版(不支持翻页多选数据反显)
Element UI 多选表格【翻页多选】简易版(不支持翻页多选数据反显)
53 0
Element UI 多选表格【翻页多选】简易版(不支持翻页多选数据反显)
|
3月前
软件研发核心问题之在需求拆解过程中,“数据与UI如何关联”的问题如何解决
软件研发核心问题之在需求拆解过程中,“数据与UI如何关联”的问题如何解决
|
3月前
Element UI 多选表格【翻页多选】全能版(含翻页多选数据反显、toggleRowSelection失效的原因解析和解决方案)
Element UI 多选表格【翻页多选】全能版(含翻页多选数据反显、toggleRowSelection失效的原因解析和解决方案)
155 0
|
3月前
Element UI 表格数据格式化
Element UI 表格数据格式化
52 0
|
4月前
|
关系型数据库 MySQL API
实时计算 Flink版操作报错合集之同步MySQL数据到另一个MySQL数据库,第一次同步后源表数据发生变化时目标表没有相应更新,且Web UI中看不到运行的任务,该怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
181 0
下一篇
无影云桌面