Since we sell tickets regionally for multiple promoters we have our performance setup rather uniquely. The title level = the promoter name, the production level is the fiscal year, the production season is the venue and the performance level is the performance. This allows us to track sales by promoter.
We need to have a way to identify and pull multiple performance runs. We were thinking of doing this through the artist last name (see previous post) using the GetPerformanceEx3 method. We were going to pull by show code (using the first 6 characters and making those unique to all the performances in the run) but there isn't a GetPerformance method to do that. That's when we came up with doing it by artist. Does anyone have an opinion or suggestion as to if there is a better way to do this?
Have you worked with the ExecuteLocalProcedure function in the API? I have come to LOVE it - write a store proc to give you whatever kind of output you like and you are all set.
If your ideal is to pull the show codes by the first 6 chars, then you should be able to do that select through a local stored procedure and call that proc through the API to get the exact data you need. it is also useful because sometimes the API returns more than is needed for a specific application on the web (not a complaint though!) - ExecuteLocalProcedure allows you to define and return only the data you will use. It is a very handy tool in the API.
I confess, I think the first part of this (Title level) sounds like a great idea -- in fact we do it sometimes. The rest of it I think is problematic. Unless you have seasons that are out of sync with your fiscal years you would be better served by using them. The same thing goes for venues -- there's already a mechanism for recording venue, and all Tessitura functionality now and in the future is going to be built around that mechanism.
We've certainly made architectural decisions in the past that I regret, but which are now too deeply entrenched to hope to fix in the near term, but if you can I would think about changing your event structure, because this will not be the last time this issue will come up.