The ProfileTools service is a very useful component because it implements many different pieces of functionality related to the Repository API. In addition, it has references to the other globally-scoped Open Profile Adapter services. It includes a reference to the current Profile repository through the profileRepository property. If you need access to the global profile services within your own components, it usually makes sense to have your own classes include a property reference to the ProfileTools object. From this object, you can access all other facilities. Alternatively, you can keep specific properties in your components (for example just a MutableRepository property), but you must define the source of your property to link to the ProfileTools's property reference.

This service provides methods that deal with the session-scoped Profile object and also contains lower-level, repository-specific helper methods. The class defines methods for locating users by login or user ID, creating users, and updating properties of profiles. These methods save the developer time because they all use the same Repository APIs. For example, if you need to find a profile based on a login name, normally you would have to do the following:

That logic sequence is written already, and you can access it with a single method call from the ProfileTools component.

Note that a similar implementation of this service exists for the internal profile repository: /atg/userprofiling/InternalProfileTools.