herd icon indicating copy to clipboard operation
herd copied to clipboard

Exclude BDefs with specific Tags from BDef Index Search

Open nateiam opened this issue 7 years ago • 0 comments

As a Data Analyst I want to exclude any BDef with a specific Tag from my BDef search so I can eliminate noise in my search that is making it difficult to find BDefs I am interested in.

Example The following Tags exist: Vehicle Category = Sedan Vehicle Category = Sports Vehicle Category = Luxury Vehicle Manufacturer = BMW

And the following BDef are tagged: DE1 = BMW, Sedan, Sports DE2 = BMW, Sedan DE3 = BMW, Luxury, Sports DE4 = BMW, Luxury DE5 = BMW, Sedan, Sports DE6 = BMW, Sedan, Sports

A user performs following:

  • BDef Search for Vehicle Manufacturer = BMW returns: DE1, DE2, DE3, DE4, DE5, DE6
  • This search is too noisy, they only want Sedans so they use the current 'Refine By'
  • BDef Search for Vehicle Manufacturer = BMW, Vehicle Category = Sedan returns: DE1, DE2, DE5, DE6
  • But that is still too noisy, they don't want the Sports cars in the results. At this point, 'Refine By' no longer helps them. Adding Vehicle Category = Sports to 'Refine By' does not eliminate the desired results. This story will introduce exclusions such that:
  • BDef Search for Vehicle Manufacturer = BMW, Vehicle Category = Sedan but not Vehicle Category = Sports returns DE2

Acceptance Criteria

  • User can specify Tag(s) to be excluded from BDef Search
    • Exclusion applies as AND NOT condition to the existing criteria provided
    • If multiple Tags are supplied, any Data Entity with either Tag is excluded
  • Search results do not include any Data Entities tagged with the Tag(s) specified for exclusion

Example request showing exclusion filter

<businessObjectDefinitionIndexSearchRequest>
   <businessObjectDefinitionSearchFilters>
      <businessObjectDefinitionSearchFilter>
         <businessObjectDefinitionSearchKeys>
            <businessObjectDefinitionSearchKey>
               <tagKey>
                  <tagTypeCode>VEH_CAT</tagTypeCode>
                  <tagCode>SEDAN</tagCode>
               </tagKey>
            </businessObjectDefinitionSearchKey>
            <businessObjectDefinitionSearchKey>
               <tagKey>
                  <tagTypeCode>VEH_MANUF</tagTypeCode>
                  <tagCode>BMW</tagCode>
               </tagKey>
            </businessObjectDefinitionSearchKey>
         </businessObjectDefinitionSearchKeys>
      </businessObjectDefinitionSearchFilter>
      <businessObjectDefinitionSearchExcludeFilter>
         <businessObjectDefinitionSearchKeys>
            <businessObjectDefinitionSearchKey>
               <tagKey>
                  <tagTypeCode>VEH_CAT</tagTypeCode>
                  <tagCode>SPORTS</tagCode>
               </tagKey>
            </businessObjectDefinitionSearchKey>
         </businessObjectDefinitionSearchKeys>
      </businessObjectDefinitionSearchExcludeFilter>
   </businessObjectDefinitionSearchFilters>
   <facetFields>
      <facetField>Tag</facetField>
   </facetFields>
</businessObjectDefinitionIndexSearchRequest>

nateiam avatar May 13 '17 19:05 nateiam