在ABAP應用裡,我們application developer用Open SQL通路database, 這些Open SQL會被Database interface轉換成database provider specific的SQL然後執行。
CRM和C4C裡還支援enterprise search / simple search,
實作原理實際上是application call一個RFC到TREX server上拿到查詢結果。
Hybris裡有類似的功能:FlexibleSearch service
FlexibleSearch service使用Hybris自己發明的一套基于SQL syntax的language,類似ABAP的open SQL.
看個例子:
select * from {Product} where {code} = 'cris03'
這條flexible search語言被預編譯成和SQL語句文法類似的查詢語句:
SELECT * FROM products item_t0 WHERE ( item_t0.p_code = 'cris03') AND (item_t0.TypePkString IN (?,?,?,?,?,?,?) )
上述語句裡7個問号代表的變量的值,可以在execution statistics裡找到:
其實就是7個catalog:
搜尋結果,對應兩條記錄:
這兩條記錄同樣可以在backoffice裡搜尋得到:
本文來自雲栖社群合作夥伴“汪子熙”,了解相關資訊可以關注微信公衆号"汪子熙"。