
前言部分
在ABAP項目里面,F4搜索幫助是最常用的功能,我們可能會為屏幕字段開發搜索幫助,以幫助用戶輸入正確的數據。我的這篇文章不是關於如何創建搜索幫助的教程,我是來介紹ABAP 7.5x中提供的一些新功能。
搜索幫助概念
首先,讓我們快速回顧一下搜索幫助是什么。
搜索幫助(ABAP字典的存儲庫對象)用於以列表的形式顯示字段的所有可能值。此列表也稱為命中列表。我們可以從此命中列表中選擇要在字段中輸入的值,而不是手動輸入值,這很容易出錯。
搜索幫助類型
有幾種類型的搜索幫助:
基本搜索有助於:此類型實現用於確定可能條目的搜索路徑。
集體搜索有助於:此類型包含幾個基本搜索幫助。因此,集體搜索幫助為可能的條目提供了幾種備選搜索路徑。
追加搜索幫助:此類型可用於增強SAP通過客戶特定搜索路徑提供的集體搜索幫助,而無需進行修改。
基本搜索幫助的示例如下所示。我們將看到搜索幫助圖標該字段旁邊的圖標。輸入模式並點擊此圖標或F4,將顯示命中列表供我們選擇。

點擊搜索幫助后,顯示如下結果:

搜索引擎效果
我們來看一下搜索引擎是怎么來幫助我們模糊查找的,如下圖所示:

在我輸入sapm后,會出現上述的結果。
高級搜索幫助
如果在我們的ABAP 7.5x搜索中使用這種預查找功能或類似搜索引擎查找的功能會有什么幫助呢?
我來告訴你,這是可以的,今天我就來講一下。我們需要使用SAP NetWeaver 7.4 SP06以上版本才可以使用此功能,SAP建議使用Patch Level 6或更高版本。當然你也可以在ABAP 7.4 SP05上使用它,但是版本不能再低了,再低就沒有設個功能了,這時我們需要在DYNPRO中添加一個PBO部分來調用類CL_DSH_DYNPRO_PROPERTIES => enable_type_ahead。
對於今天寫的這篇文章,我在S/4 HANA 1809系統和GUI上使用的,所以我這個系統比較新,功能都可以使用。
首先,讓我們看一下調用搜索幫助的代碼。如我們所見,此程序是一個簡單的單行PARAMETER語句,它調用MATCHCODE OBJECT zsh。

接下來,讓我們雙擊搜索幫助zsh以進入事務Se11並進行更改。請注意一個名為ENHANCED OPTIONS的新內容。在本文中,我們將看到proposal Search for Input Fields的復選框。這將允許提前輸入 - 也稱為搜索類型 - 功能。通過選中此框,可以在搜索字段下方的下方框中顯示標准F4幫助中可能的搜索結果,從而實現更快,類似搜索引擎的用戶交互。

驗證結果
OK,現在讓我們更改激活並再次執行程序。結果和我預想的一樣,如果我開始輸入一個數字,如4,這里就會立即開始看到一個下拉的測試結果。

除了搜索幫助的新增強部分中的type-ahead選項之外,還有 Fuzzy Search選項。這里的意思是允許容錯,跨列全文搜索。此選項當前不適用於所有數據庫 - 因為SAP的內容嘛,當然只在SAP HANA上有效。可以為全文搜索的容錯指定精度值。
