27 April, 2012

FIM 2010: [Solution] Search not working at all?

For a very long time, I’ve lived with the fact that I was unable to perform search in any list in FIM 2010. This is pretty annoying to say the least, when you are joggling around in FIM all the time. Initially, I thought this was a setting in FIM somewhere that did not allow me to perform searches, but the reason proved to be somewhere completely different.

The reason was a completely empty full-text catalog in the FIM Portal database (SQL Server). FIM hands of the search task to the underlying database, hence if this catalog is empty – you get no results back (quite reasonable, now that you know it!).


So - what do do?
The solution is to create a new full-text catalog in SQL-server and to include the correct tables into that catalog.

1) Delete any existing catalogs from the database

2) Create a new full-text catalog (case insensitive)

3) Include these tables in the catalog:


4) Check the columns to include from each table (see above)

5) Set the population schedule to have an updated index at all times


6) Let the catalog build process take it’s time (it takes a long time!)

7) Voila! – you can search in FIM again.

Note: You might also have an issue (Full Text Deamon failed to start) with the fulltext deamon on the SQL Server (I did!). To remedy this problem, you need to execute these 2 stored procedures and next rebuild the catalog.


StackOverflow Tags:

26 April, 2012

FIM 2010: Return types and native FIM WF Activities

Man, it sometimes is a struggle to manipulate FIM 2010 using their API. A lot of it is trial and error when figuring out what types you are receiving. To remedy this, I’ve compiled a (growing) list of data about what types you can expect when communicating with FIM.


When reading data using the WF Activity (see below); you receive attributes from the read object in this format (see table).


Attribute Type [FIM Type] Returned data [.NET Type]
Reference, multi Valued List<UniqueIdentifier>
Reference, single Valued UniqueIdentifier
String, multi Valued List<string>
String, single Valued string
DateTime, single valued DateTime
DateTime, multi valued List<DateTime>

To gain the ObjectID (Guid) of a resource in FIM given the UniqueIdentifier; you use the method .GetGuid().

Like this:

Guid objId = fimUniqueIdentifier.GetGuid();

StackOverflow Tags: ,

FIM 2010: Datetime formatting

When you are writing to the FIM WebService and setting datetime values; these values needs to be formatting a specific way, otherwise you gain a very descriptive (!) exception (UnvillingToPerformException).

The format is the ISO 8601 format: yyyy-MM-ddTHH:mm:ss.fff

So to write a datetime field in .NET; you use this syntax:

new CreateRequestParameter("ValidFromDate", DateTime.Now.ToUniveralTime().ToString("’yyyy'-'MM'-'dd'T'HH':'mm':'ss'.000'"))

That’s what it takes.

Note: It is always a good idea to convert datetime fields into UTC-time. The FIM Portal will handle the needed display conversion into desired display (using either the Portals or the Users TimeZoneConfiguration).

Update: It seems it’s sufficient to call .ToUniversalTime() to get the proper formatting? At least that what I’ve been having success with recently.

StackOverflow Tags:

iPhone/XCode - not all cases are equal!

This bit me! Having made some changes to an iPhone application (Obj-C); everything worked fine in the simulator. But, when deploying the s...