Twice in the past six months, I've gone looking for this answer. The second time round, I came across my own post to Technet, which was a little embarrassing in a sitting-alone-at-my-desk manner.
Anyhow. Before I go looking a third time, this is how to get an employeeEndDate and an employeeStartDate out of the FIM Metaverse and into SQL date or date-time fields.
In VB.Net. Other languages exist. This is just the code for the Advanced Flows that you'd set up from FIM Synchronization Service: it relies on there being nothing more than the relevant dates. You may wish to build in more checks.
Select Case FlowRuleName
Case "exportNonEmployeeEndDate"
If (mventry.ObjectType.Equals("person")) AndAlso mventry("employeeEndDate").IsPresent Then
Dim NonEmpEndDateTime As DateTime = Convert.ToDateTime(mventry("employeeEndDate").StringValue)
Dim NonEmpEndDate As String = NonEmpEndDateTime.ToString("yyyy-MM-dd")
csentry("enddate").Value = NonEmpEndDate
End If
Case "exportNonEmployeeStartDate"
If (mventry.ObjectType.Equals("person")) AndAlso mventry("employeeStartDate").IsPresent Then
Dim NonEmpEndDateTime As DateTime = Convert.ToDateTime(mventry("employeeStartDate").StringValue)
Dim NonEmpEndDate As String = NonEmpEndDateTime.ToString("yyyy-MM-dd")
csentry("startdate").Value = NonEmpEndDate
End If
End Select
As with all code on the internet, check it in the Development System before you throw it into the Live environment. And take backups before you get going. Just in case.
Also, has it really been a year? Sheesh. Sorry about that.
Wednesday, 5 December 2012
Subscribe to:
Posts (Atom)