Mehrere neue Benutzer über Cronjob anlegen

Hallo zusammen,

mehrere Dateien mit Userinformationen werden in einer Schleife eingelesen und für jeder dieser User-Dateien soll der entsprechende User angelegt werden:


if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false)
{
	$fileinfo = pathinfo($dir . $file);
	$blExists = false;
	
	if($fileinfo['extension'] == 'web')
	{
		// Read filedata
		$filedata = file($dir . $file);

		$oUser = oxnew('oxUser'); // create new user object
		$sShopID = $oUser->getConfig()->getShopId();
		
		// setting salt if password is not empty
		$sSalt = $filedata[5] ? $oUser->prepareSalt( oxUtilsObject::getInstance()->generateUID() ) : '';
		// encoding only if password was not empty (e.g. user registration without pass)
		$sPassword = $filedata[5] ? $oUser->encodePassword( $filedata[5], $sSalt ) : '';

		// check if user already exists
		$sSelect = "select oxid from oxuser where oxuser.oxcustnr = ".oxDb::getDb()->quote($filedata[4]);
		if ( ( $sOxid = oxDb::getDb()->getOne( $sSelect ) ) ) {
			// write failinfo to log
		}
		else 
		{
			// we need to create a new user
			$oUser->setId($filedata[4]);  // set OXID from import file
			$oUser->oxuser__oxactive  		= new oxField( 1 );
			$oUser->oxuser__oxshopid  		= new oxField( $sShopID );
			$oUser->oxuser__oxrights  		= new oxField( "user" );
			$oUser->oxuser__oxpassword  	= new oxField( $sPassword );
			$oUser->oxuser__oxpasssalt  	= new oxField( $sSalt );
			...
			$oUser->save();
		}
		unset($oUser); // unset user object
	}
}
closedir($dh);

Das funktioniert soweit auch alles ganz so wie es soll beim ersten Durchlauf, der User vird via INSERT angelegt.
Allerdings wird bei den folgenden Durchläufen immer nur ein UPDATE auf den zuerst angelegten User gemacht.

Ich setze doch aber das Objekt unset($oUser); zurück, aber das scheint nicht zu reichen!?

Was kann ich tun, damit die alle eingelesenen Files als neuer User via Update angelegt werden.

PS. Ich kann bei: $oUser->setId($filedata[4]); die übergegebene ID auch rauslassen. Dann wird ne OXID erzeugt, ändert aber nix daran, dass Folgedurchläufe upgedatet werden.

cooper