Technical Articles
ABAP on HANA で Text and Fuzzy Searchを簡単にOData化
ABAP on HANA環境でテキストのFuzzy SearchをOData化します。「Enabling Text and Fuzzy Searches in SAP Fiori Apps」を参考にしました。
動機
手順
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。
Be the first to leave a comment
You must be Logged on to comment or reply to a post.