CCF with floating windows
www.InformationWorker.co.za
I have been offered the great opportunity of having a blog on www.informationworker.co.za. IW, is a community site driven by Microsoft and a core group of Partners focused on Information Workers (thus the name of the site, in case you did not pick that up). As that is going to be more (completely) CRM focused, I won't publish much CRM stuff here, but I will continue to go on about all the other crazy stuff.
My blog their can be found at: http://www.informationworker.co.za/Blogs/robertm/default.aspx
(ooh btw IW runs on SharePoint 2007, which makes blogs and wiki's easy)
Worst product name (for developers)
Microsoft PowerShell may be the worst product name for developers. If you write scripts I'm not classing you as a developer, I am classing people who understand Assemblies, Namespaces and Generics as developers for this post.
Anyway if you are a developer it should be called .Net Object to Text Render (and if Motorola made it NOTR), since that is what it actually does, it converts .Net objects to text. Once you understand that concept it gets a lot more powerful than the whole "DIR", "COPY" on a blue background than it appears the first time.
So it understands strings so this is possible:
PS C:\Documents and Settings\rmaclean> 'sadev'+'.co.za'
sadev.co.za
It also understands ints so this is also possible:
PS C:\Documents and Settings\rmaclean> 67 * 34 + 9 - 22
2064
And since .Net understands how to translate int's to strings, this becomes possible:
PS C:\Documents and Settings\rmaclean> 'sadev'+'.co.za' + (67 * 34 + 9 - 223) + 999
sadev.co.za2064999
And since objects can have properties you can start with Get-ChildItem
which is like DIR for the old school in the audience, then add | where-object { $_.CreationTime -gt "1/29/2007" }
to get all items created since Jan 29th 2007. Example
Get-ChildItem | where-object { $_.CreationTime -gt "1/29/2007" }
Then add on | epcsv
to export the results to a CSV file.
Pure madness I say, pure developer insanity :D
CCF Wikipedia Entry
There is an entry in Wikipedia for CCF :) It is unfortunately very light in content.
What does spur me to post about it is not the article itself, but the comments in the history:
"(cur) (last) 21:07, 25 September 2006 Jmcnamera (Talk | contribs) (This reads like an ad plus I can not find anything notable on the web about this except some vague marketing material at MS web site. I'm an MS booster but this doesn't look real.)"
The whole "it doesn't look real" is bad, and it is not the first time this has been brought up. Because so few people know of CCF and the website is tiny (compared to others like MSCRM or Dynamics GP, let alone someone like Office) it really does appear to be a vaporware or beta or some other product which does not exist yet.
Definately the CCF community needs to put more content up in public places, but Microsoft also needs to help drive this, even if it is just with a better website (which links to the forums would also help show real activity with the product).
Bug with CRM Outlook Client
Thanks to Greg Nichols for highlighting this the bug caused by a security update which is killing off MS Outlook with CRM installed. This is definately something we are seeing in production enviroments everywhere at the moment.
Agent Desktop: Error: Failed to connect to the web server.
It appears that a few people have had the problem where everything works great in agent desktop, but not when selecting a contact to work with, as they get some thing like
The underlying connection was closed: The remote name could not be resolved.\n\nStack:\n at Microsoft.Ccf.Csr.Sessions.SetActiveSession(Guid sessionID)
at Microsoft.Ccf.Csr.Sessions.AddSession(String name, Int32 callID, Object customer)
at Microsoft.Ccf.Samples.Csr.AgentDesktop.Desktop.AddSession(CustomerRecord customer, CallClassProvider call)
and/or
Customer Care Framework 2005 - Agent Desktop: Error: Failed to connect to the web server. Please verify that you can connect to the web server.
Well it would appear from the outside that the SetActiveSession method (atleast in the .Net 1.1 QFE 3 version, and likely the earlier .Net 1.1 version) has the server hard coded (since this is one of the few assemblies you don't get the code for and reflector wasn't much help in finding out I can not state for sure).
If it is hard coded it is insanity and *hopefully* fixed in the .Net 2.0 release. But if you do hit this because your CCF server is not named CCFIIS
the simple fix is either add an entry to the DNS server on your network to redirect to that or (if you can't due to security restrictions during development) add it to the hosts file in c:\Windows\System32\Drivers\Etc\
Once that is done, restart agent desktop and enjoy.
Update:Thanks to MattB on the CCF Forum for confirming it is hard coded and that a hotfix is available for 1.1 from PSS and 2.0 is already fixed :)
CCF Workflow and Workflow step addition fails with "Unable to update the requested information"
When in the CCF admin console you may get an "Unable to update the requested information" when trying to add a new workflow or workflow step (from here I will just say workflow but I mean both). This is because you can not add a workflow when no others exist. i.e. DON'T delete the demo ones until you create one of your own.
What is happening is the ID field in the table in the database is used in a relationship and thus can not be an identify field. So the admin tool does a check for the highest value and adds one to it and uses it as the new ID. When there is no items it fails.
If you need to manually add a workflow in to the database (instead of doing a redeploy) it is in dbo.ContactCenterAIF.WorkflowsMaster
and for workflow steps it is in dbo.ContactCenterAIF.WorkflowStepsMaster
RegisterListener Exception
If you get an exception with the CCF agent desktop which involves "RegisterListener" then likely you got a little too confident in your deployment and didn't follow the deployment guide like for line. If you had you would have installed Microsoft WSE 2.0 SP3 Runtime.msi
which is in the Others
folder of the deployment on the desktop prior to trying.
So you are also aware, if this fails pretty much a ton of other items (menu's, status updates etc...) will also fail.
Why should you promote upgrades
I enquired with my hosting company (Hetzner) about upgrading the amount of disk space, and only disk space. See I am planning to upload my photo's and that takes space, lots of it and it's the only thing I have come close to using. The bandwidth is great, the amount of email address is ridiculous (I only use 2 and they are both just forwards anyway), and so on. The options available to me are
1) Upgrade, which doubles my disk space
2) Buy 10Mb more for R5 more.
Here is the downside for the upgrade, they are charging me R49 for it (. The logic told to me is that they have to manually do the changes to quota's etc... This for me is horribly flawed because
1) They have this great "award winning" H-Console which did the entire set of my account automatically
2) They don't charge for downgrading. This is really the part that shocks me as I could understand if they only charged for downgrades (penelizing the end user in a way) or charged for both (due to the "manual" work required) but they don't. They seem happier to have people downgrade than upgrade, which in my mind means they will make less money.
Anyway the other funny part of this how story is that if I pay R5 per 10Mb and buy the 100Mb I will end up paying the same amount as if I upgraded, but without the penalty for an upgrade.
I actually think this is a horrible side effect of one of the value propositions that Hetzner likes to tell people: "Stable pricing since 1999". The problem with stable pricing is no one ever goes back and reviews it and applies all those business lessons learnt in the last 8 years, like getting existing customers to spend more money is easier than getting new customers.
Note: This is not a issue about amount of money but rather the logic behind it.
Favorite syntax for Windows Desktop Search
Since installing Windows Desktop Search there has been a few syntax items I have used on pretty much a daily basis.
The first is is ;)
This lets you specify the type of content you are looking for. Syntax: is:<type>
In my case I generally am looking for is emails so I use: is:email
The next is limiting to the author. Once again the logical syntax is: author:<name>
Example: author:robert
Finally I limit by date ranges. The date options are amazingly powerful and all use the syntax date:<range>
Examples:
date:monday
date:thismonth
date:lastyear
Finally an example which puts it all together:
is:email author:robert date:lastyear CRM