Todd Geist, in collaboration with Jason Young and John Sindelar (both of Seedcode fame), has taken a concept that has been around for a while, split it in two, polished it up, and now is showing how to apply it in real life examples. The concept was previously known as Universal Context, a concept that simplifies the relationship graph as well as your code development. They took it to the next step by breaking it in two:
There are really two separate concepts here. The fist one is the use of a single record, globals only Table/TO called “CONNECTOR” to connect everything together with cross join relationships. This is what creates the universal-ish context. The cross join makes it so your main table kind of share a context. Once you have that in place, a lot of stuff gets simpler. In the movie, I demonstrate several features that get rather simple once you put the “Connector” in place.
The second concept or pattern is the “Selector”. I know, it comes first in the name, “Selector Connector”, but that’s just because it sounds better than “Connector Selector” :-). It is a separate idea and could be used alone or in combination with a Session model quite well.
The “Selector” makes things Selectable. You “Select” records by setting global fields in the SELECTOR table occurrence. Those field are used are used as keys in relationships to each of the main tables in your system. If you want to select a customer record, you would use a set Set Field Step to set the “SELECTOR::_id_customer” field. (See how nice that reads?) That gives you access to that record through the “selected_Customer” TO. You can also use the Selector Model to create, edit, and even delete records.
One can be used without the other, so this breakup works well. But they also work well together.
The benefits of using this concept:
- Reduce complexity by reducing the number of T.O.'s
- Reduce graph sprawl
- Simplify scripts
- Build re-usable components
All laudable goals, and it seems they have achieved them with this system.
This system works with the Anchor-Buoy system, the Data Separation Model, and the Session Model, as well, and Geist provides a downloadable example file with examples of integration with Master Detail,
I've already started building a simple solution using the demo file as the base, and it's looking good so far!
Know who you are, and be it. Know what you want, and go out and get it.
— Quotes Steve Jobs (@stevejobquotes) December 1, 2014