Important
The setup for the Advanced Search functionality is almost completely identical irregardless of the object used. Therefore this section will explain the needed setup as a generic topic for all. If navigation paths are exactly the same except for the starting module depending on the object for which Advanced Search is used, they will be written out as Module > ... > ... etc. If the navigation paths differ between the modules, they will be written out separately.
If there are any differences in setup or additional options for a specific object, they will be pointed out and explained in their own respective topics. We will also make references to the standard Microsoft documentation for the standard (retail) functionality that is used as part of Advanced Search.
The Parameters can be set up from the module the used object is from. Each of these parameters forms have a tab for the Advanced search parameter settings: Module > Setup > module parameters
Field | Description | Remark |
Azure Search - Enabled |
Local search is standard available, which uses the internal Microsoft Dynamics 365 for Finance and Operations database and resources to find the required information. For more advanced cq higher performance search capabilities it is also possible to use the Azure Search service by activating this slider. Please note that this requires (additional) licensed Azure services. |
Local search is used and described for this topic. |
If the record count of the search is lower than this threshold the query will be executed automatically. Please be aware that this setting can influence the performance and user experience drastically. |
When set, the categories that contain search results are highlighted in the tree and show the record count. |
Update search data - Category attribute group |
If set, the search data will be generated automatically when an attrbute group is added or removed from a Category. |
|
Update search data - Product release |
If set, search data will be generated when a product is released. Be aware this might impact the performance when releasing large volumes of products. |
|
Logging - Log enabled |
When set, each search session, task and filter is logged. |
|
Languages |
The company’s language cannot be deleted. This is the default language | |
Search text operators - Reset to default |
Resets / initializes the operator values to the default values |
|
Search text operators |
Product information management > Setup > Categories and attributes > Category hierarchies
Rental management - HSO / Service management - HSO > Setup > Advanced search > Category hierarchies
The search data is linked/grouped to objects via the Category hierarchies from the standard retail framework.
For a basic understanding of them and how to create and use category hierarchies within Microsoft Dynamics 365 for Finance and Operations , please check the following links:
https://docs.microsoft.com/en-us/dynamicsax-2012//category-hierarchy-form
https://docs.microsoft.com/en-us/dynamicsax-2012/appuser-itpro/about-category-hierarchies
Product information management > Setup > Categories and attributes > attributes / attribute groups
Rental management - HSO / Service management - HSO > Setup > Advanced search > attributes / attribute groups
One of the sources for the search data are the attributes from the standard retail attributes framework.
For a basic understanding of them and how to create and use attributes and attribute groups within D365FO, please check the following link:
https://docs.microsoft.com/en-us/dynamics365/commerce/attribute-attributegroups-lifecycle
Please note that for the Advanced Search functionality to work properly, the attributes must be linked to the Category hierarchy via an Attribute group. Allthough linking attributes directly to a category is possible in the standard framework, this will not result in the desired search data for the Advanced Search functionality, so please make sure to always use attribute groups.
Some additions have been made to the standard attribute setup options, which are explained below:
Product information management > Setup > Categories and attributes > attributes
Rental management - HSO / Service management - HSO > Setup > Advanced search > attributes
Standard Microsoft Dynamics 365 for Finance and Operations does not support any dependency between attributes. However, when using both brand and model as attributes for example, a dependency does usually exist. E.g. when there are three car brands: BMW, VW and Volvo, and each brand has its own car models, it would be possible with standard only to specify the invalid combination of brand = BMW and model = Golf.
With the Advanced Search functionality it is possible to define parent-child relationships between attributes that will prevent the entry of non-feasible combinations. Note that this is only possible when the attribute types are Fixed list.
To define a parent-child relationship, the field Parent attribute needs to be filled on the applicable child attribute - this field becomes available on the attribute whenever an attribute is created with an attribute type of fixed list. When a parent is selected, a tab is added to the attribute form where the allowed value combinations can be specified
Example: the attribute Car model has a Parent attribute Car brand. In the dependent values of the attribute Car model, all feasible combinations can be specified.
Field | Description | Remark |
BMW | 240 |
BMW |
520 |
|
Volkswagen |
Golf |
|
Volkswagen |
Passat |
|
Volvo |
240 |
|
Volvo |
V70 |
|
Volvo |
V90 |
Note
Product information management > Setup > Categories and attributes > Attribute groups
Rental management - HSO / Service management - HSO > Setup > Advanced search > attribute groups
Attributes can be sorted within the attribute group either alphabetically or manually. The default value for the Attribute sorting field on an attribute group is alphabetically, however, if a different sequence is desired this setting can be switched to manual. This activates the move buttons Top, Up, Down and Bottom on the attributes tab within the attribute group and have been added to be able to sort the attributes into the desired sequence. This sorting will influence the way the attributes are shown in the compare attributes form and other (product) attribute value forms.
Note
Product information management > Setup > Categories and attributes > attributes
Rental management - HSO / Service management - HSO > Setup > Advanced search > attributes
There are two additional fields on the attribute to control filter behavior:
Field | Description | Remark |
Not filterable | When this setting is activated, the values from this attribute will be searchable via text search, but they will not be created as separate filters | This is useful for attributes where all values are different/unique which would create a large amount of filters with little use (such as description, length, weight, thickness etc.). |
Value range |
Select a Value range for this attribute. It is only possible to select a filter range for the supported base types (integer, decimal, date/time). |
Only filter ranges with the same base type as the current attribute type can be used. Filter ranges can group attribute values together when creating the filter for it. For more information see Value ranges. |
The default values of attributes can be overridden for individual products/objects.
For Released products enter the attribute values form from the Released products list or details page by using the Ribbon action pane Product > Set up > Product attributes
For Rental objects the form can be entered from the Rental objects list or details page by using the Ribbon action pane Rental object > Set up > Attributes
For Service objects the form can be entered from the All service objects list or details page by using the Ribbon action pane Manage > Details > Attributes
The form that opens shows a list of all attributes linked to the object including the origin and whether or not the attribute value is the default one. When set in edit mode it is possible to change an attribute value on the right hand side pane (not in the grid). When using the Reset value option, the attribute value will be reset to the default value. It is advised to use this option to set a value back to the default value when needed instead of changing it manually to the default value (as the manual change will not be recognized by the system as being the default). There is also an option to add the translated version of the attribute value via the Translate option for Free text values only (list values etc. can be translated on the attribute type).
Note that category attributes are displayed in the list as well for informational purposes, but cannot be changed at object level (only on category level).
Another source for the search data comes from almost any object-related existing field in the system. This avoids the creation of double data by having to create an attribute such as color when this information is already available as a dimension.
Module > Setup > Advanced search > Fields search queries
Which object related data can be accessed by Advanced Search is determined via queries. These can be set up from scratch and there are also some predefined queries provided.
Field | Description | Remark |
New | Creates a new query record with a default query |
Edit query |
Opens the selected query for edit via the standard window for creating an advanced query |
It's possible to add new related table joins |
Load predefined queries |
Opens a new dialog with the available predefined queries. Select the one(s) to be added and click OK |
Once the queries are added they can be used as is or modified to link to other related tables as needed |
Query name |
Unique name of the query |
Query |
Used by |
Product information management > Setup > Categories and attributes > Category hierarchies
Rental management - HSO / Service management - HSO > Setup > Advanced search > Category hierarchies
The actual object related fields (and their values) that are included in the search data are specified on the Category hierarchy, on the Field search fast tab.
Field | Description | Remark |
Module |
Indicates the module the setup is related to |
This is neccessary as it is possible to have environments with multiple implementations of Advanced search (e.g. Product Search & Rental object search) |
Query |
Select the Field search query to be used for this line |
|
Table name |
Needed as a query typically has more than 1 table | |
Field name |
For the Field name, Method name and Field group name columns only 1 of these options can be used per line. | |
Method name |
Select the display method that needs to be filterable/searchable |
For the Field name, Method name and Field group name columns only 1 of these options can be used per line. |
Field group name |
Select the entire field group that need to be filterable/searchable |
|
Not filterable |
This is mostly used for name, description and other (text) fields where all values are different/unique which would create a large amount of filters with little use. |
Filter range |
Select a filter range to be applied if desired |
See Filter ranges for more information |
Inherited from |
Shows the level in the hierarchy this line is inherited from if applicable |
Inherit from parent |
Activate to have the setup inherited from the parent category |
When setup is inherited it is still possible to add additional lines specifically for the current child category |
There are some predefined queries available that can be used as they are or modified as needed. These queries ahve to be loaded first, which can be done by going to Module > Setup > Advanced search > Field search queries and clicking the 'Load predefined queries' button from the ribbon.
The queries below are part of the default setup:
Field | Description | Remark |
Inventory module parameters - Sales order | Products, Items, Inventory module parameters (Sales) |
Items |
||
Colors |
Products, Items, Distinct products, Inventory dimensions, Colors |
|
Configurations |
Products, Items, Distinct products, Inventory dimensions, Configurations |
|
Item groups |
Products, Items, Relationship between items and item groups, Item groups |
|
Sizes |
Products, Items, Distinct products, Inventory dimensions, Sizes |
|
Styles |
Products, Items, Distinct products, Inventory dimensions, Styles |
Product translations |
Products, Product translations |
Company language |
It is possible to setup additional queries that can retrieve data from other tables. Even if there is a 1:n relation from the released product to e.g. the external item description data, a query can get the right information and store it as search value for the released product.
Module > Setup > Advanced search > Filter ranges
Filter ranges are ways to group values together in ranges when creating the filters. This is very useful for values that differ a lot and would otherwise result into many filter values with quite little use (e.g. price, length, width, height, weight). Take for example the weight of tablets or phones; every model is slightly different. But getting filters for each individual value such as 143 grams, 147, 148, 156, 188, 190 etc will not really help when trying to make a selection out of the entire offering. With filter ranges you can setup how to group the filters, so you could group them into ranges for anything between 125 and 150 grams, 150 to 175 and 175 to 200 grams for example.
Ranges are setup in a separate setup form and need to be linked to a property (an attribute or a field search field). This way the same filter range can be reused for different properties
Field | Description | Remark |
Name | Name of the filter range type | E.g. Power |
Description |
Description of the filter range type |
E.g. Power of the engine |
Filter range base type |
A filter range with a certain base type can only be used for attributes with the same type | |
Auto-include |
||
Filter range - Name |
Name of the range |
E.g. 0-200 W |
Filter range - Lower bound |
>= Minimum (this value is included in the range) |
E.g. 0.00 |
Filter range - Higher bound |
< Maximum (this value is not included in the range) |
E.g. 200.00 |
When new data has been added that needs to be searchable, it can be needed to update the search data so that the new information is included in the search data.
Module > Periodic tasks > Advanced search > Update search data
Field | Description | Remark |
Include - Attribute search | Activate to update the search data related to attributes |
Include - Field search |
Activate to update the search data related to field search |
|
Categories - Include subcategories |
Activate to update the search data for all underlying categories of the selected ones |
|
Available categories |
After selecting the desired hierarchy all availble categories from that hierarchy display here and can be selected for the data update. A selection can be made at any level, please make sure to use the -> arrow button to truly select the categories for update |
Selected categories |
Displays all categories that have been selected for update. Please use the <- arrow button to remove unwanted categories from the selection |
If the Include subcategories slider is activated, the underlying categories for selected ones will not display in the selected box, but be aware that they are included in the update. |
Once all settings are as needed click OK and the search data will start to update. Depending on the size of the database and the amount cq size of the selected categories this proces can be done almost instantly or take considerably longer.
As with almost all periodic tasks within Microsoft Dynamics 365 for Finance and Operations this task can also be set to Run in the background as per standard, which can be advisable for large updates to the data set.
Adding an image to the used object for the Advanced Search functionality enhances the user experience, especially when comparing multiple objects for example.
From the Released products form you can add an image of the product to the item. From the list (or the detail form) you can enable the available fact boxes ('Related information' on the right hand side) and from there upload the relevant image.
Please be aware of the checkbox for the default image.
For Service and Rental objects it is also possible to define the image on respectively the Service object or the Rental object parent and/or child level, with a fallback method to display a 'higher' level image if there is none specified on a 'deeper' level.