Question

Complex lookup filter

I need to create a lookup filter for the following SQL

DECLARE @P1 uniqueidentifier = 'D21F0468-F86B-4707-9FDB-C093CF0F6F87';
 
SELECT UsrProductList.Name
FROM UsrProductList
WHERE EXISTS (
	SELECT UsrProductLineOfBusiness.UsrProduct
	FROM UsrProductLineOfBusiness
	WHERE UsrProductLineOfBusiness.UsrProductId = UsrProductList.Id
	AND UsrProductLineOfBusiness.UsrLineOfBusinessId = @P1
)

Following this post I got as far as

"UsrProduct": {
	"dataValueType": Terrasoft.DataValueType.LOOKUP,
	"lookupListConfig": {
		"filter": function() {
			var opportunityLobId = this.get("Opportunity.UsrOpportunityLineOfBusiness").value;
			var filterGroup= this.Ext.create("Terrasoft.FilterGroup");
			var subFilter = Terrasoft.createFilterGroup(Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, *** GROUND TO A HALT HERE *** , opportunityLobId));
			subFilter.addItem();
			filterGroup.add(Terrasoft.createExistsFilter([UsrProductLineOfBusiness:UsrProduct].id, subFilter));
			return filterGroup;
		}
	}
}

However ground to a halt at `UsrProductLineOfBusiness.UsrProductId = UsrProductList.Id` in the subquery.  If anyone has any clues they would be appreciated!

Like 0

Like

1 comments

For anyone who may happen this way in the future, this was solved with

"UsrProduct": {
	"dataValueType": Terrasoft.DataValueType.LOOKUP,
	"lookupListConfig": {
		"filter": function() {
			var opportunityLobId = this.get("UsrOpportunity.UsrOpportunityLineOfBusiness").value;
			var filterGroup = this.Ext.create("Terrasoft.FilterGroup");
			var subFilter = Terrasoft.createFilterGroup();
			subFilter.addItem(Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "UsrLineOfBusiness.Id", opportunityLobId));
			filterGroup.add(Terrasoft.createExistsFilter("[UsrProductLineOfBusiness:UsrProduct].Id", subFilter));
			return filterGroup;
		}
	}
}

The subfilter is applied to the table in the main query's column path.

Show all comments