版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)
本文会讨论Product search UI上,search attribute dropdown list里面所有支持的search parameter的生成逻辑。
从product search view的实现code能够发现:
fieldMetadata定义该product search总共能够支持的search attribute集合,而fieldNames定义的是在当前active的UI configuration配置下,能够使用的search attribute集合,后者是前者的子集:
lt_fields里的entries来自Genil model browser里Query object对应的Attribute Structure CRMT_PRIL_QUERY_ADVSEARCH_PROD:
context node class可以redefine method GET_SUPPORTED_OPERATORS来根据业务来定义每个search attribute所支持的operator。
这41个fields是product advanced search 从模型角度来说能支持的search attributes。
GET_POSSIBLE_FIELDS 会把当前UI configuration里右边(即Selected Search Criteria 区域 )内的search attributes读取出来:
UI Configuration里左右两个区域内的search attributes的个数和一定等于structure CRMT_PRIL_QUERY_ADVSEARCH_PROD的field个数即41.