As Sahil mentioned on his blog we've built (Sahil rewrote my dodgy presales code) a tool to Import/Export User Profiles for MOSS 2007.

What is this utility?

The SharePoint 2007 Shared Services Provider User Profile Importer has been designed and developed to allow users who do not have a well populated Active Directory to get information in to MOSS 2007 User Profiles. Usually most organisations will populate their Active Directory with information such as: Office, Phone Number, Mobile Phone, Email. Additional information that lives in HR systems such as Hire Date will require custom development. This is possible using the Business Data Catalog built into MOSS 2007 - however if you wish to run a basic import from an XML file the "SharePoint 2007 Shared Services Provider User Profile Importer" is for you.

 

Go to the CodePlex project to download the Code/Build/Collaborate on this tool - it is over to the community to evolve it.

 

It is all XML driven - there is an XSD for the InputFile and then a MappingFile - because not all data is structured the same - and this is a flexible tool :)

InputsFileSchema -

<?xml version="1.0" encoding="utf-8"?>
<
xs:schema
 
id="InputsFileSchema"
 
elementFormDefault="qualified"
 
xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <
xs:element name="Inputs">
    <
xs:complexType>
      <
xs:sequence>
        <
xs:element name="Input" minOccurs="0" maxOccurs="unbounded"/>
      </
xs:sequence>
    </
xs:complexType>
  </
xs:element>
</
xs:schema>

MappingFileSchema -

<?xml version="1.0" encoding="utf-8" ?> 
<xs:schema 
  id="MappingFileSchema" 
  elementFormDefault="qualified"
  xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Mappings">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Mapping" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Mapping">
    <xs:complexType>
      <xs:attribute name="InputField" use="required"/>
      <xs:attribute name="MOSSField" use="required"/>
      <xs:attribute name="DateFormat" use="optional"/>
    </xs:complexType>
  </xs:element>
</xs:schema>
Nice Job Sahil!