[Sample Code] Set Lookup View dynamically in Dynamics 365 or Power Apps Model driven app form
Here is a sample code you can use to dynamically set the lookup view conditionally in Dynamics 365 or Model driven power apps. Remember to pass execution context from FORM to JS.
function getTargetViewFetchXML(executionContext){
var formContext = executionContext.getFormContext();
var defaultView = "Active Contactors"
var TPView = "Third Party Contractors";
var VIPView = "VIP Contractors";
var setTargetView = "";
var selectedArea = formContext.getAttribute('soft_selectedarea').getValue();
if(selectedArea === 1){
setTargetView = TPView;
}else if(selectedArea === 2){
setTargetView = VIPView;
}else{
setTargetView = defaultView
};
// Define FetchXML
var viewFetchXml = "<fetch>"
+ " <entity name='savedquery'>"
+ " <attribute name='savedqueryid'/>"
+ " <attribute name='name'/>"
+ " <filter>"
+ " <filter>"
+ " <condition attribute='name' operator='eq' value='"+setTargetView+"'/>"
+ " </filter>"
+ " </filter>"
+ " </entity>"
+ "</fetch>";
// Encode FetchXML
viewFetchXml ="?fetchXml="+encodeURIComponent(viewFetchXml);
// Retrieve the records and set the default view
Xrm.WebApi.retrieveMultipleRecords('savedquery',viewFetchXml).then(
function success(items){
if(items.entities.length>0)
{
var viewId=items.entities[0].savedqueryid;
var contractorlookup= executionContext.getFormContext().getControl("soft_contract");
contractorlookup.setDefaultView(viewId);
}
},
function (error) {
console.log(error.message);
}
);
}
JavaScriptHope this helps.