Sunday, April 11, 2010

XPath in FIM Sets

Recently, while working with Brad on a FIM implementation, he told me about some issues he was having with the restrictions placed on the XPath used when building a new Set. Specifically, he wanted to be able to find people that were missing a specific attribute. This was a little tricky, but I finally came up with a solution for strings and another one for dates:

/Person[not(starts-with(<AttributeNameOfTypeString>, ''))]
/Person[not(<AttributeNameOfTypeDateTime> &gt; '1900-01-01T00:00:00Z')]

So, if you wanted to find everyone who was missing an AD Distinguished Name (ADDN) you would use the following filter to define the Set:

/Person[not(starts-with(ADDN, ''))]
And if you wanted all of the Person objects missing a Termination Date (EmployeeEndDate):
/Person[not(EmployeeEndDate &gt; '1900-01-01T00:00:00Z')]

These examples are specific for the Person resource object, but this same logic could be used for any resource type in the FIM Portal.

UPDATE:  In certain instances, the above XPath will actually return more items than you would expect.  Check out David’s blog post to find out why and what really works.

1 comment:

ol5qprb0wk said...

In brief, 3D printers use CAD to create 3D objects from selection of|quite a lot of|a big selection of} supplies, like molten plastic or powders. 3D printers can are available in} selection of|quite Shower Caps a lot of|a big selection of} shapes and sizes starting from equipment that may fit on a desk to large building fashions used in the making of 3D-printed houses. There are three primary kinds of 3D printers and each uses a slightly totally different method.