ok, here is my code:
The Controller:
onSuggest: function(event){
var suche = sap.ui.getCore().byId("suchfeld"); suchString = suche.getValue();
var aUrl = 'URLURLURL?suchString=' + escape(suchString); jQuery.ajax({ url: aUrl, method: 'GET', dataType: 'json', success: this.onSqlFertig, error: this.onErrorCall }); },
onSqlFertig: function(list){ var suche = sap.ui.getCore().byId("suchfeld"); var AusgabeListe = [] suche.destroySuggestionItems(); for (var i = 0 ; i < list.length ; i++){ AusgabeListe[i] = list[i][0] + " - " + list[i][1] + " - " + list[i][2]; item = new sap.ui.core.Item({ text: AusgabeListe[i] }) suche.addSuggestionItem(item); }here the input field in the view:
suchfeld = new sap.m.Input({ id : "suchfeld", showSuggestion: true, startSuggestion: 1, suggest : function(oEvent){
oController.onSugest(oEvent); }
})and the xsjs Service
var suchString = $.request.parameters.get('suchString');
var list = [];
var i = 0; var sqlQuery = " select v.\"VBELN\", v.\PRBEZ\" , k.\"NAME1\" from \"SAPTEE\".\"VBAK\" as v " +
" inner join \"SAPTEE\".\"KNA1\" as k " +
" on v.\"KUNNR\" = k.\"KUNNR\""+
" where CONTAINS(KUNNR, ? , FUZZY(0.4)) or CONTAINS(VBELN, ? , FUZZY(0.4)) or " +
"CONTAINS(\"PRBEZ\", ? , FUZZY(0.4)) or CONTAINS(k.\"NAME1\", ? , FUZZY(0.4)) order by score() desc , k.\"NAME1\"
var connection = $.db.getConnection();
var Statement = connection.prepareStatement(sqlQuery);
Statement.setString(1, suchString);
Statement.setString(2, suchString); Statement.setString(3, suchString); Statement.setString(4, suchString);
var rs = Statement.executeQuery(); while(rs.next()){ list[i]=[]; list[i][0] = rs.getString(1); list[i][1] = rs.getString(3); list[i][2] = rs.getString(2);
i++
}
$.response.contentType ="Application/JSON";
$.response.setBody(JSON.stringify(list));
$.response.status = $.net.http.OK;