Is there a mechanism on the Cases module to get not only “my items”, but to exclude the ones that are already closed, specifically when in the cases module? Also being able to list open tasks for someone else (where the list on the home page wouldn't help)?
gordon
You would have to code this yourself. There is no such build-in mechanism.
We added the following code to the file: Cases\ListView.ascx.cs
After this statement
ctlSearch.SqlSearchClause(cmd);
if (!Sql.ExpandParameters(cmd).Contains("STATUS = 'Closed'"))
cmd.CommandText = cmd.CommandText + " And STATUS <> 'Closed'";
///////////////////////////
Make sure that you have a 'closed' status.
Sql.ExpandParameters is an expensive operation and there is no guarantee that the status will always be rendered as you have documented above.
If you want to see if there is a filter on the STATUS field, then your best bet is to use Sql.FindParameter(cmd, "@STATUS").
I think it's definitely something that needs to be in the base product and by default it doesn't include closed records unless you ask for them. We're finding it increasingly difficult to manage cases as the open ones quickly become a minority as time goes on.
It's still too early to reliabily start patching the code and not having to repatch it after upgrades. It's maybe managable for a few patches for a single installation, but once you start managing a number of customers and you want some consistency, it quickly grows out of hand and you suddenly stop pushing out upgrades while you fathom out what re-patching is required.
There's also the situation where you can have multiple statuses all of which indicate the record is closed. e.g. on opportunities we have "closed lost" and "closed won". On project tasks, we have "completed" where "closed" wouldn't be the natural description for that status.
Having said that, I don't want to sound like I'm slating what's become a really usable product!