Skip to Content
Technical Articles
Author's profile photo Yohei Fukuhara

ABAP on HANA で Text and Fuzzy Searchを簡単にOData化

ABAP on HANA環境でテキストのFuzzy SearchをOData化します。「Enabling Text and Fuzzy Searches in SAP Fiori Apps」を参考にしました。

動機

「得意先マスタ」Fioriアプリケーションにあるテキスト検索をOData化したく、調べました。

手順

1. CDS View定義

CDS Viewを定義します。

以下がキーとなるアノテーションです。

  • @OData.publish: OData化する
  • @Search.searchable: CDS View単位でText and Fuzzy Searchを有効化
  • @Search.defaultSearchElement: 項目単位でText and Fuzzy Searchを有効化
@AbapCatalog.sqlViewName: 'Y348221_STEST00'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Test CDS'
@OData.publish: true
@Search.searchable: true
define view Y348221_Test00
  as select from but000
{
  key   but000.partner   as BusinessPartner,
  
  @Search.defaultSearchElement: true
        but000.name_org1 as OrganizationBPName1, // was renamed from OrganisationName1
        
        @Search.defaultSearchElement: true
        but000.name_org2 as OrganizationBPName2, //was renamed from OrganisationName2
        
        @Search.defaultSearchElement: true
        but000.name_org3 as OrganizationBPName3,
        
        @Search.defaultSearchElement: true
        but000.name_org4 as OrganizationBPName4
}

2. OData公開

t-cd: /IWFND/MAINT_SERVICE でODataを公開します。

特別なことはしていないので、手順・スクリーンショットは割愛します。

テスト

t-cd: /IWFND/GW_CLIENT でテストしてみます。

“/sap/opu/odata/sap/Y348221_TEST00_CDS/Y348221_Test00?search=test”と、パラメータ”search”に対して検索語句を指定します(今回は”test”)。

部分一致にしたい場合はアスタリスク(*)を使います。

t-cd: /IWFND/GW_CLIENTで、”search=テスト”のように日本語テキストを指定できませんでしたが、ブラウザからだとできました。おそらく指定の仕方が悪いのでしょうが、今回は正しい指定の仕方を調べていません。

裏では、SADLがHANAの Native SQLを生成しているようです。

SQLトレースしたらこんなSQL。

 

Assigned Tags

      Be the first to leave a comment
      You must be Logged on to comment or reply to a post.