Applies to the Employee Training Management.
A few days ago one of our customers required a list of trainings which are recommended to the user. The user should first complete a survey. The interests, skills and capabilities of the user are determined by the survey, based on which trainings are recommended to the user or people are restricted from booking other trainings.
If you have a similar business case, this could be interesting for you.
So how do you achieve this?
My first idea was to create certain SharePoint groups, the target audiences. Based of the results of the survey users should be added to these groups. This can be done with a simple SharePoint designer workflow. An additional workflow action is required to achieve this. Natalya Voskresenskaya has published a workflow action on codeplex that can be used for this purpose: http://natalyavoskresenskay.codeplex.com/
The next step is to add a user or group field to the scheduled trainings list “Target Audiences”. The training organizer can now decide for which audience a training is targeted.
The only thing that is left now is to create a view that displays only trainings where the user is part of the defined target audience, either directly or through a group membership. This is not possible through the SharePoint UI but you can create a view and edit the query of the view in SharePoint Designer or SharePoint Manager. The query should look like this:
<where> <or> <membership type="CurrentUserGroups"> <fieldref name="TargetAudience" /> </membership> <eq> <fieldref name=" TargetAudience" /> <value type="Integer"> <userid type="Integer" /> </value> </eq> </or> </where>
<where> <or> <membership type="CurrentUserGroups"> <fieldref name="TargetAudience" /> </membership> <eq> <fieldref name=" TargetAudience" /> <value type="Integer"> <userid type="Integer" /> </value> </eq> </or> </where>
Make sure you use the correct internal name of the target audience field.
That’s it, if everything is configured correctly, users should be added to the target audiences (SharePoint groups) from the workflow that is configured on the survey list. Through the group membership the configured view should only display trainings the user is interested in, where attendance is required or whatever your business case requires.
If you want to restrict people from enrolling in trainings that are not in this view, you can use content approval in the enrollment list and automatically approve enrollments in trainings that are in this view and reject any others. Use another workflow for this purpose. This is a little bit more complex, if you have problems, please leave a comment.
If you need a trial for the Employee Training Management, click on “Download Trial” on the Employee Training Management product page.