我们常见的搜索是绝大多数app具有的功能,今天我们通过一个实例来说明如何简单实现这个功能。(本文所用的Search并不是Launchpad的Search,属于app内部的Search功能)
这个Search通过Customer Name来实现模糊搜索,并且实现不区分大小写,比如输入customer1为例:
前端页面的代码片段:
通过UI5控件SearchField来实现页面的搜索框。
SearchFiled控件API文档:https://sapui5.hana.ondemand.com/#/api/sap.m.SearchField
在上面的控件中search=”onSearch”,那么当点击search之后,触发onSearch方法,Controller里面JavaScript的实现代码如下:
我们可以看到这里是通过OData的Filter来实现Search的功能的。我们通过developer tool来查看前台是如何发送请求到SAP Gateway的。
我们把反义字符去掉,那么请求是: CustomerSet/$count?$filter=ID eq ‘customer1’
这样,前台的实现已经完成,接下来这个search功能要到后台OData里面来实现了。
SAP里面事务码SEGW到OData Builder里面,首先需要把搜索的字段的filter选上。
在getEntitySet的实现里面,获取filter的代码:
实现数据库查询的代码:
通过to_upper把传入的搜索字符全部变为大写,在OpenSQL里面使用UPPER函数,把数据库数据也都变为大写,这样就实现了忽略大小写的功能。
这样一个简单的搜索功能实现了,本文实例只是针对非大数据的搜索,有关大量数据的搜索需要其他的特性实现。
联系客服