viernes, 31 de octubre de 2008

MOSS 2007 y el modificador 3GB del boot.ini

Hola,

En uno de los proyectos en los que he estado trabajando se activó en el servidor de SharePoint el modificador /PAE del boot.ini, acompañado del modificador /3GB para aprovechar toda la memoria de que disponía el servidor.

A priori todo parecía funcionar correctamente hasta que al cabo de un tiempo empezamos a notar un extraño comportamiento: los archivos adjuntos de listas y document libraries no siempre se abrían correctamente, provocando un error 404 (Page Not Found).

Después de investigar un poco más el rendimiento del servidor con mis compañeros, descubrimos que se quedaba sin entradas libres en la tabla de páginas y, en ese momento, se empezaba a dar esa situación.

La solución a este problema la encontramos en http://support.microsoft.com/kb/823440 dónde se explica que, en caso de activar el modificador /3GB, hay unos ciertos valores recomendados en el modificador /USERVA. Seguimos estas indicaciones, reiniciamos el servidor y se solucionó.


Si algún día tenéis la necesidad de modificar el boot.ini, en http://support.microsoft.com/kb/317526 tenéis los pasos a seguir.

Espero que os sea de utilidad!

domingo, 31 de agosto de 2008

Error HRESULT 0x80040E14 al aprobar items de listas de SharePoint 2007

Al aprobar ítems de listas de SharePoint puedes encontrarte con el error HRESULT 0x80040E14.

A falta de una investigación más exhaustiva, los primero que se debe verificar y que suele ser la causa del error es la activación del versionado en la lista.
Para ello, simplemente hay que acceder a la configuración de la lista y, en "configuración de versiones", poner la opción "¿Desea crear una versión cada vez que edite un elemento de esta lista?" en no.

De todas formas hay que seguir investigando soluciones (se admiten comentarios) ya que si volvemos a activar la creación de versiones en la lista volveremos a tener el mismo problema.

Espero que os sirva de ayuda.

martes, 15 de julio de 2008

Función Javascript para acceder a los campos de un formulario SharePoint

A veces es necesario editar los formularios, master pages, page layouts, etc. de SharePoint y para realizar alguna operación en ellos. Si este es el caso y lo que se necesita es acceder a algún campo de un formulario de SharePoint mediante javascript, basta con utilizar esta función:

function getTagFromIdentifierAndTitle(tagName, identifier, title) {
var len = identifier.length;
var tags = document.getElementsByTagName(tagName);

for (var i=0; i <>
var tempString = tags[i].id;
if (tags[i].title == title && (identifier == "" || tempString.indexOf(identifier) == tempString.length - len)) {
return tags[i];
}
}
return null;
}

Llamando a esta función, indicando el tipo de tag que queremos recoger, su id y su título obtendremos el objeto y podremos realizar las operaciones necesarias sobre él, mediante Javascript.

Por ejemplo, supongamos que tenemos una textarea en un formulario, la cual queremos ocultar mediante javascript:
<textarea title="dataInicial" id="dataIni" name="TextArea1" cols="20" rows="2"></textarea>
para obtener el objeto textarea tendremos que llamar a getTagFromIdentifierAndTitle de la siguiente manera:
var textAreaDataIni = getTagFromIdentifierAndTitle("textarea", "dataIni", "dataInicial");
y para hacer que no se muestre:
textAreaDataIni.style.display = "none";

Más información aquí.

Espero que os sirva de ayuda!

jueves, 26 de junio de 2008

Cómo adjuntar zips a SharePoint vía API y que se puedan abrir

Hace unos días comentaba los problemas de apertura y acceso al contenido de los zips adjuntados en ítems de lista de SharePoint.
Pues bien, aquí está la solución encontrada que hace que se puedan abrir correctamente y acceder a su contenido tanto con WinZip como con WinRar:
string ficheroDatos = "C:\file.zip";
FileInfo fInfo = new FileInfo(ficheroDatos);
FileStream fStream = fInfo.OpenRead();
byte[] contents = new byte[fStream.Length];
fStream.Position = 0;
fStream.Read(contents, 0, (int)fStream.Length); //leemos todo su contenido en un array de bytes content
fStream.Close();
li.Attachments.Add(ficheroDatos, contents); //en la variable li tenemos el list item al que adjuntar el zip
li.Update();

De este modo no habrá problemas al abrir los zips adjuntos a los SPListItems de SharePoint.

lunes, 23 de junio de 2008

Error accediendo a Reporting Services en SQL Server 2005

Si alguna vez os encontráis con el error "The file you are attempting to save or retrieve has been blocked from this Web site by the server administrators" (en castellano "Los administradores de este servidor han bloqueado en este sitio Web el archivo que intenta guardar o recuperar") intentando acceder a Reporting Services desde SQL Management Studio puede deberse a un problema de configuración.

Antes de nada, intentad solucionarlo desde la herramienta de configuración de Reporting Services, verificando que tenéis acceso al servidor y que la cuenta de acceso tiene acceso a Reporting.

Aún así, es posible que os encontréis con que os sigue dando el error. En este caso, la causa puede ser una mala configuración del tag UrlRoot en el archivo rsreportserver.config.
Para solucionarlo, basta con abrir el archivo rsreportserver.config (que podéis encontrar en el path C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\rsreportserver.config) y corregir el valor del tag UrlRoot por el mismo, por ejemplo, que utilizáis para implementar los reports desde Visual Studio y que está visible desde las propiedades del proyecto.

En mi caso, tuve que editar la URL de URLRoot para que apuntase al puerto de Reporting, con esto se ha corregido el problema.