Enhancement Request: Related Objects CONTACT INFO PRODUCT INFO Name Dave Strus Product name Talisma 8.5 HE SP3 Title Enterprise CRM Project Manager Operating system Windows Server 2008 R2 Organization Indiana University Database SQL Server 2008 R2 Work Phone 812-856-3714 E-mail dstrus@indiana.edu URL REQUEST Please describe the specific functionality requested. We would like additional filtering options for related objects—specifically the operators available for Record Lists. When adding a filter condition on a property on Record List tab, the following comparison operators are available: contains = starts with does not contain ends with is null contains (in any row) = (in any row) starts with (in any row) does not contain (in any row) ends with (in any row) is null (in any row) When filtering on a property from a related object (where the relationship between the filter’s base object and the related object is one-to-many or many-to-many), only the following operators are available: contains = starts with does not contain ends with is null These operators behave like the “in any row” operators for Record Lists. We have no way to look for related object records where two or more conditions are true for the same instance of the related object (other than using SQL filters, which are not available in some contexts and which require knowledge of the database schema and additional permissions). SCENARIO Please describe the use scenario or problem to help describe the request. Suppose we have a COF object called Preference. Preference has a many-to-one relationship with Contact and a many-toone relationship with Campaign. The Preference object has the following instances: Preference ID Contact ID Campaign ID Preference Type Preference Value 45 001-944 004-810 Operational Yes 82 001-944 006-502 Subscription No 96 002-711 006-502 Subscription Yes We wish to identify all Contacts who have a subscription preference of “Yes” for Campaign 006-502. We create the following Contact filter: Object Field Operator Value And/Or Contact > Preference > Campaign Campaign ID = 006-502 And Contact > Preference Preference Type = Subscription And Contact > Preference Preference Value = Yes Running this filter will return Contact 001-944 and Contact 002-711. There is no way for us to build a filter that correctly returns only Contact 002-711. IMPACT ASSESSMENT Please describe the impact of this scenario or problem (urgency, # of users affected). The impact of this issue is severe. It has forced us to use Record Lists in our data model where we would have otherwise used related objects, and to thus accept the compromises that Record Lists entail. As we design a solution for communication preference management, this compromise is particularly painful. When discussing potential solutions with Amit Mishra and Abhinesh Vemula in Summer 2010, this filtering shortcoming forced us to eliminate any solutions that involved storing preferences in a COF object. As a result, we’ve had to focus our solutions designs on using Record Lists to store such preferences. This introduces several problems that we would not have with a related object solution: Record List tabs cannot contain relationships to other objects (e.g. a reference to a Campaign). Individual rows in a Record List cannot have any team-level restrictions. Only the tab itself can be restricted. More recently we’ve re-examined preference management with Amit and Jeff Ross, but the same issues remain. The lack of a satisfactory solution for preference management puts our enterprise implementation at considerable risk. SCENARIO Please describe the use scenario or problem to help describe the request. A custom IU Relation object exists, with two many-to-one relationships with the Contact object. Campaign support is enabled on the IU Relation object. The IU Relation object has the following instance: IU Relation ID Primary Contact Secondary Contact 199 001-944 004-810 201 002-643 007-990 The Lead object has the following instances: Lead ID Link to Contact Team Status 45 001-944 IN UG ADM Suspect 82 001-944 BL KSB UG ADM Admitted 96 002-643 IN UG ADM Admitted We create a Campaign with IU Relation as the base object. We wish to create a Mailing List to identify all IU Relations where the Primary Contact has been admitted to IUPUI undergrad: In other words, where the Primary Contact has a Lead in the IN UG ADM team with a status of ‘Admitted’. We created the following IU Relation filter: Object Field Operator Value And/Or IU Relation > Contact > Lead Team = IN UG ADM And IU Relation > Contact > Lead Status = Admitted And Running this filter will return IU Relation 199 and IU Relation 201. There is no way for us to build a filter that correctly returns only IU Relation 201. IMPACT ASSESSMENT Please describe the impact of this scenario or problem (urgency, # of users affected). CMC has proposed, and IU has considered, several possible ways of modeling relationships between Contacts—for example, students and their parents. Using a custom IU Relation object was the preferred approach, but the fact that this filtering gap exists makes this solution unusuable. SUGGESTED SOLUTION Describe the change you recommend. Add conditional operators for related objects that behave like those for Record Lists: contains = starts with does not contain ends with is null contains (in any row) = (in any row) starts with (in any row) does not contain (in any row) ends with (in any row) is null (in any row)