Fiori UI上my contact加了Dr. 后搜索不出数据的奇怪问题
在My task UI上維護了Account后,再點Contact F4 value help:
我們發現在GM6上,只要在search field里加了”Dr”, 就搜索不出來contact,如下圖。但是換成諸如“Florianna Adler”就可以。
昨晚我們糾結了好久,想知道為什么會有這種奇怪的behavior。
上午經過debug找到了原因:
起初我們懷疑加了Dr之后的search沒出來結果,是因為DB 沒query到數據。今早經過驗證,發現不是。Contact 的open sql是下列這個方法里動態生成的:
主要就是這4張表做inner join:
然后在下列這個方法里動態執行OPEN SQL,命中40條數據。
命中40條的原因就是OPEN SQL的where條件是掃描account的mc_name1和contact的mc_name1, mc_name2這三個字段。
因此,像下圖中第一行和第三行這種數據也命中了,只因為它們的三個column中有一個column的value包含”DR”:
DB search做完后,對結果集做filter.
逐一遍歷結果集的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出來。
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
總結
以上是生活随笔為你收集整理的Fiori UI上my contact加了Dr. 后搜索不出数据的奇怪问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蚂蚁森林:网传存在污染地块,与蚂蚁森林公
- 下一篇: SAP Fiori 应用无法根据cont