Identifying available and qualified resources for project work is certainly not a technology problem but technology can help. I have built a resource availability search tool. The search engine takes inputs such as skills, languages (spoken), location, and any other combination of enterprise resource custom fields (lookup table values only) and returns a list of resources who fit the bill. A date range can also be provided to narrow the search further.
Underneath, the code expects name value pairs of field guids and the guids of the values of the lookup table you want to match. For example, one might have an enterprise resource custom field called "language" with PROP_UID ='2558a2d1-a3a5-43c1-aae9-57f806ec6058' with values:
- English LT_STRUCT_UID = '4e3ab663-a54b-475e-b04b-0df00d9fd504'
- Mandarin LT_STRUCT_UID = '04ca2ccb-ede9-4118-b2a2-820b7e829ab2'
- Dutch LT_STRUCT_UID = 'e544e03a-2382-4654-88f6-a865cedb5110
The search tool's backend is implemented as two web services:
- RegisterResourceAvailabilityRequest - Takes an instance the Availability class and loads it up in some SQL tables. I chose to save the query parameters (or resource availability request) because I wanted to track which queries are frequently requested. In later versions, I hope to offer those queries pre-packaged in the user interface.
2. GetAvailableResources - Takes the request ID just generated from the previous call to RegisterAvailabilityRequest and processes it. The return dataset contains the Resource names and guids of the resources who matched the availability request. If request.IncludeAll is set to true, all resources who matched the criteria are selected.
The Project team agonizes over extenisbility features every release. I know, I used to work there. They have done a masterful job this time out! I remember in the days of Proj 98, I was so stoked to be able to save out a project to a SQL database. I am having fun with the PSI