martes, 27 de julio de 2010

An update conflict has ocurred, and you must re-try this action

This error would appear after a disaster recovery of a whole farm, including the Configuration Database.

The point is that you have to rebuild all the Sharpoint Jobs Definition, which are stored in System Drive:\Documents and settings\all users\application data\Microsoft\Sharepoint\config\GUID Where GUID is the Configuration Database ID, if there's no GUID folder, you must create it. You can check the GUID in HKLM\Software\Microsoft\Shared Tools\Web Server Extensions\12.0\Secure\ConfigDB.


To rebuild all the Jobs Definition you should do the following:

1. stop the Windows Sharepoint Timer Service
2. Delete all existing XMLs in SystemDrive\documents and settings\all users\application data\microsoft\Sharepoint\config\GUID, if does not exist create it as shown before.

3. Start te Windows Sharepoint Timer Service.

You should see now all the XMLs refreshed.

domingo, 13 de junio de 2010

Sharepoint 2007 Explorer view not shown

When trying to access a Sharepoint list's Windows Explorer view through \\yourtWebapp.com\yourSite\yourlist\ returns Network name cannot be found, or something similar. That's because your machine is trying to use SMB instead of WebDAV, by default this option is disabled to use in the Microsoft windows server family. First of all, you should try starting WebClient service.

- Go to Start --> Run Write services.msc --> OK
- Look for the WebClient service, it should be disabled.
- Enable and start it.
- Try again.

It should be working now.

lunes, 31 de mayo de 2010

Value was either too large or too small for a UInt32.

If you received the error "Value was either too large or too small for a UInt32." When trying to browse a Sharepoint List, it seems that you have corrupt data in a content Database, for me it was a negative value in the tp_ItemCount of one of our lists.

To check this, run the following query pointing to the Content DB of the Site which is giving the error:

Select (select webs.FullUrl from webs where webs.Id = tp_WebId) as [url], *

From AllLists

Where tp_ItemCount <>

Order by tp_ItemCount


In order to solve this you should contact Microsoft support as modifying data directly in the content database is not supported. As for me was a DEV environment, I count the items and enter the value by myself. You should count as items documents and folders as well. I repeat, this is not supported, modify this at your own risk.

viernes, 28 de mayo de 2010

Search a value in every field of every table of a Data Base

In order to find a values in any filed of any table on a database you should execute the procedure I've pasted at the bottom. This is very useful when trying to verify any data in Sharepoint Content Databases, such as user attributes, email, etc...

CLOSE TABLES
DEALLOCATE TABLES

SELECT *
FROM #t

DROP TABLE #t

DECLARE @value VARCHAR(64)
DECLARE @sql VARCHAR(1024)
DECLARE @table VARCHAR(64)
DECLARE @column VARCHAR(64)

SET @value = 'Insert value here'


CREATE TABLE #t (
tablename VARCHAR(64),
columnname VARCHAR(64)
)

DECLARE TABLES CURSOR
FOR

SELECT o.name, c.name
FROM syscolumns c
INNER JOIN sysobjects o ON c.id = o.id
WHERE o.type = 'U' AND c.xtype IN (167, 175, 231, 239)
ORDER BY o.name, c.name

OPEN TABLES

FETCH NEXT FROM TABLES
INTO @table, @column

WHILE @@FETCH_STATUS = 0
BEGIN
SET @sql = 'IF EXISTS(SELECT NULL FROM [' + @table + '] '
--SET @sql = @sql + 'WHERE RTRIM(LTRIM([' + @column + '])) = ''' + @value + ''') '
SET @sql = @sql + 'WHERE RTRIM(LTRIM([' + @column + '])) LIKE ''%' + @value + '%'') '
SET @sql = @sql + 'INSERT INTO #t VALUES (''' + @table + ''', '''
SET @sql = @sql + @column + ''')'

EXEC(@sql)

FETCH NEXT FROM TABLES
INTO @table, @column
END

CLOSE TABLES
DEALLOCATE TABLES

SELECT *
FROM #t

DROP TABLE #t


Hope it wold be helpful.