Lookup+ is a feature designed to make finding the correct record for a lookup even easier by leveraging the full power of the deduplication logic on data8 duplicare.
Lookup+ allows you to create a bespoke deduplication rule for each lookup field, enabling you to quickly find the record you want. If you don't want to use a bespoke deduplication rule but would still like to use Lookup+, it will default to the global search behaviour.
Creating Rules for Lookup+
Lookup+ doesn't require anything specific on the dedupe+ rule which enables you to make as many rules as you want. The rule does not need to be real time enabled, nor does it need to be global search enabled so you can leave those options off if you wish.
This page will use a similar example throughout - setting the parent account of an account. In this example, we have a field on account that states "Company" or "Site" and the parent account of a "Site" account can only be a "Company" account. This would be difficult to enforce on a standard lookup field.
An example dedupe+ rule has been made like so:
Translated to plain English, this rule set will find any records that match the inputted account name, whilst ensuring only active "Company" level records are returned.
Once you have made the rule you wish to use, you need to make the Lookup+ Configuration - this can be found in the "Duplicare Administration" model driven app included in your solution.
Create a new record and set the fields as required:
- Source Entity Logical Name: This is the logical name of the entity you are setting a lookup+ for.
- Source Attribute Logical Name: This is the logical name of the lookup field in which you are setting lookup+ for.
- Dedupe+ Rule: This is a lookup to the dedupe+ rule you have made. If none are selected, the search will default to the global search format.
Once you have set those records, save the form which will refresh the configuration form at the bottom. This is configured almost exactly the same as global search - the only difference is how you save the configuration:
- To add a new field entirely, click the “+ Add New Field” button. This will create a new row on your global search. You can also specify the type of the input – at the time of writing, this will not change any behaviour and is more for reference.
- Once you have a field row, you can add a new mapping to that field by clicking “+ Add New Mapping”. Two drop down boxes will appear, one will contain a list of possible entities (entities that have dedupe+ rules configured) and one a list of the possible fields that can be mapped – note that changing the entity can change the fields you have available as this is a dynamic list of fields. Only fields that do not have a current mapping will be listed – if you wish to re-map a field, you’ll first have to remove the existing mapping.
- Lookup+ will not contain a "Save Changes" button and instead, you are required to save the lookup+ record itself.
Configuring your Form
To set up for your form for Lookup+, you simply need to add a WebResource in the relevant place - ideally directly underneath the lookup field.
Edit your form, add the "data8_openadvancedlookup.html" web resource onto your form. You can give the web resource any name/label you wish and we recommend settings it to be 1 row high and not displaying a border.
On the general tab, set the properties as following - replacing "parentaccountid" with the lookup field that you are configuring.
Save, publish and close your form editor.
Open up a record to test out your lookup+. To expand upon the previous example, some sample data has been included as follows:
- "Company" record called "Company A"
- "Site" record called "Company A (London)"
- "Site" record called "Company A (Liverpool)"
We would like to check this works as expected by trying to set the parent account of "Company A (London)" and the only suitable candidate for this is "Company A".
Clicking the web resource should pop up the lookup+ search on the right hand side of the screen. Input your search (in this case, "Company A") and press "Search".
Allow the search to finish to see your results.
Here you can see we have the expected results - we have correctly stopped the "Company A (Liverpool)" record being listed and we are only seeing correct "Company" level records. If we select the record and press "Select", the field is populated and the search window closes.