天天看點

ABAP的OPEN SQL和Hybris Commerce的Flexible Search簡介

在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裡搜尋得到:

本文來自雲栖社群合作夥伴“汪子熙”,了解相關資訊可以關注微信公衆号"汪子熙"。