martes, 1 de diciembre de 2009

“Access is Denied” al indexar bases de contenido en MOSS 2007 sobre Windows Server 2008

Cuando indexamos bases de datos de contenido de nuestras web aplications creadas con MOSS 2007 nos podemos topar con el siguiente error: (Event Viewer)

"The start address cannot be crawled.

Context: Application 'SharedServices1', Catalog 'Portal_Content'

Details:
Access is denied. Check that the Default Content Access Account has access to this content, or add a crawl rule to crawl this content. (0x80041205)"


Para solucionar esto hay que desabilitar el LoopBack en el registro del servidor donde esta instalado MOSS (Windows Server 2008) y agregar los hostnames en la lista del registro BackConnectionHostNames.

Para hacer lo anterior se pueden hacer de dos formas: Manual o instalando el Fix que lo hace automaticamente. En el siguiente link esta descripto los pasos para hacerlo
896861 .

Saludos,

jueves, 29 de octubre de 2009

stsadm.exe : Backup/Restore y Export/Import

Para hacer backup/restore/export/import de web application o site collection o site, existen 4 comando bastantes utiles:

Exportar / Importar

stsadm -o export -url http[s]://Servidor[/subsitio] -filename [ruta al archivo para exportar]
stsadm -o import -url http[s]://Servidor[/subsitio] -filename [ruta al archivo exportado]

Para importar es necesario que el sitio y subsitios ya hayan sido creados utilizando una plantilla en blanco.
Si el(los) sitio(s) a exportar son mayores de 25 MB, utilice el parámetro –cabsize 1024 o un valor apropiado.

- Permite exportar un subsitio- Utilizando el parámetro –includeusersecurity se mantiene la configuración de seguridad y de propietario de los Sitios- No mantiene los identificadores (GUID) de Sitios, Listas y elementos, de tal forma que se puede hacer una copia de un sitio en la misma Base de Datos de Contenido- Los meta datos se pierden (fecha de creación y modificación y propietario de los elementos de Listas)


Backup / Restore

stsadm -o backup -url http[s]://Servidor[/subsitio] -filename [ruta al archivo para exportar]
stsadm -o restore -url http[s]://Servidor[/subsitio] -filename [ruta al archivo exportado]

Para hacer una restauración es necesario que la Aplicación Web exista, pero no la Colección de Sitios.

- Copia toda una Colección de Sitios, junto con todos la estructura de derechos, meta datos, etc.- Mantiene los mismos identificadores (GUID) del sitio original, por lo que no se puede hacer una copia de un sitio en la misma Base de Datos de Contenido- No se puede hacer un backup de un Sitio especifico, solo se pueden hacer de Colecciones de Sitios completas.

Listo!, Eso es todo

lunes, 28 de septiembre de 2009

Desarrollando un WebPart para cargar un Web User Control

En esta entrada voy a explicar como desarrollar un webpart que cargue nuestro usercontrol.ascx.
1) Supongamos que ya tenemos el usercontrol (myUserControl.ascx) creado.

2) Copiamos el archivo myUserControl.ascx en la carpeta layouts del sitio (para luego levantarlo desde el webPart), es decir en el servidor en la direccion c:\Program Files/Common Files/Microsoft shared/web server extensions/12/ControlTemapltes/MISCONTROLES/.
3) Creamos un webPart de la forma tradicional, mas o menos asi.

public class LoadUserControl : System.Web.UI.WebControls.WebParts.WebPart
{
//Variables
Control _myControl; String err;

public UserControl() {

this.ExportMode = WebPartExportMode.All;
}
protected override void CreateChildControls() {
try {
this.Controls.Clear();
_myControl = this.Page.LoadControl@"~/_controltemplates/MISCONTROLES/myUserControl.ascx"); this.Controls.Add(_myControl);
}
catch (Exception e) {
err = e.Message;
}
} ....

4) Despues registramos el WebPart copiando la dll en la Bin o en Assembly. Copiamos la dll del usercontrol en la Bin del sitio. 5) IISRESET /noforce (si el webpart se registro en assembly) sino no es necesario.

Listo. Agregamos el webpart en cualquier zona y listo, levanta el user contro!!

jueves, 23 de julio de 2009

Imprimir contenido de un WebPart con JavaScript

Paso 1: Con el SharePoint Designer editar la página que contiene el webpart y en el tag <asp:Content ContentPlaceHolderId="PlaceHolderAdditionalPageHead" runat="server"> agregar el siguiente javascript:


<script>

function printSpecial()

{
var html = '<HTML>\n<HEAD>\n';

if (document.getElementsByTagName != null)
{
var headTags = document.getElementsByTagName("head");

if (headTags.length > 0)
html += headTags[0].innerHTML;
}
html += '\n</HEAD>\n<BODY>\n';
var printReadyElem = document.getElementById("printPart");

if (printReadyElem != null)
{
html += printReadyElem.innerHTML;
}
else
{
alert("Could not find the printPart div");return;
}
html += '\n</BODY>\n</HTML>';
var printWin = window.open("","printSpecial");
printWin.document.open();
printWin.document.write(html);
printWin.document.close();
printWin.print();
}

</script>

Paso 2: Encerrar la zona que queremos imprimir con lo siguiente:
<div id='printPart'> WEBPART </div>

Paso 3:
Crear el boton de impresion llamando al metodo de javascript:
Las que mas les guste:
<a href="javascript:void(printSpecial())">Print this Page</a>

<input type="button" name="printMe" onClick="printSpecial()" value="Print this Page">

Eso es todo!!

viernes, 22 de mayo de 2009

Cómo configurar SharePoint para visualizar distintos íconos dependiendo de la extensión del archivo

En una misma biblioteca de documentos podemos tener archivos de distintos tipos, incluso no solo de Office sino también archivos rar, zip,pdfs, etc. Pero estos últimos por default no mostrarán un icono de tipo de archivo asociado, sino que hay que hacer algunos cambios para visualizarlo.

1. Entrar al o los servidores de aplicacion donde esta corriendo sharepoint.

2. Abrir el archivo con nombre DOCICON.XML en notepad o notepad++ (mejor).

2.1. Este archivo se encuentra en la siguiente ubicación:

C:\Archivos de programa\Archivos comunes\Microsoft Shared\web server extensions\60\TEMPLATE\XML. Si la versión de SharePoint es en español (Archivos de Programa\Archivos Comunes) Si la versión de SharePoint es en inglés (Program Files\Common files) Si estas utilizando la verison 2007 de sharepoint corresponde la carpeta con nombre 12.

2.2. Una vez abierto el documento en notepad, copiamos la siguiente línea en el archivo:

<mapping value="icpdf.gif" key="pdf" opencontrol="">

Por convencion llamamos a la imagen "icpdf.gif" ya que todas las demas imagenes de iconos siguen ese formato, pero no es obligatorio seguirlo.

3. Por último copiamos la imagen del icono de archivo pdf en la siguiente ruta:
C:\Archivos de programa\Archivos comunes\Microsoft Shared\web server extensions\12\TEMPLATE\IMAGES.

4. Hacemos un iisreset.

5. Una vez habiendo corrido el comando iisreset podemos regresar a nuestra biblioteca de documentos y verificar el icono de pdf relacionado al documento.

Listo!

miércoles, 13 de mayo de 2009

Ya está Disponible SP2 para SharePoint en todas sus variantes

El pasado 28 de Abril se habilitó la Descarga directa desde Windows Update para poder descargar el SP2 de WSS 3.0 y MOSS 2007.
Algunas de las nuevas caracteristicas que estan disponibles, por area, son las siguientes:

Service Pack 2 for Windows SharePoint Services 3.0 and Microsoft Office SharePoint Server 2007 will bring the following changes and enhancements:
  • OneNote - SharePoint synchronization has been improved which helps reduce the load on SharePoint servers and produce fewer errors
  • An STSADM command line that scans your server farm to establish whether it is ready for upgrade to the next version of SharePoint and provides feedback and best practice recommendations on your current environment.
  • SP2 offers support for standards-based documents formats and compatibility with a broader range of Web browsers.
  • Substantial improvements to Forms-based authentication.

Enterprise Content Management (ECM)

  • The performance and stability of content deployment and variations feature has been improved.
  • A new tool has been added to the STSADM command-line utility that enables a SharePoint administrator to scan sites that use the variations feature for errors.

Excel and Access Services

  • SP2 makes it easier to configure Excel Web Access Web parts on new sites. Several rendering, calculation, and security issues have been resolved.
  • Some display issues have been addressed.
  • Improved compatibility with Mozilla Firefox browsers.

Groove Server

  • Improved synchronization reliability.
  • Groove Server 2007 Manager will install and run with SQL 2008.
  • Groove’s LDAP connectivity and auto-activation functionality have been improved.
  • Error reporting in the Groove Relay Server has improved significantly.
  • Groove Relay Server has improved robustness.

Forms Server

  • Memory requirements and the page load times for large browser-rendered forms have been reduced.
  • Browser rendering of various controls, such as the 'cannot be blank' asterisk and the rich text field has been improved.

Project Server

  • Better memory management in the queue service.
  • Performance to certain database table indexes is improved
    Resource plans, build team, cost resources, and the server scheduling engine have improved.

Search Server

  • Improvements to the reliability and stability of very large corpus crawls.
  • Backup-restore has been improved.
  • A new command has been introduced to the STSADM.exe tool that lets a SharePoint Administrator to tune the Query processor multiplier parameter.
  • Improved accuracy in searches involving numbers
Como se pueden ver son varias las nuevas mejoras y carateristicas. Particularmente lo he probado en Windows Server 2003 y sql2005 con WSS 3.0, y MOSS 2007,. respondio sin problemas, y todos los sitios siguieron andando normalmente, igual es recomendable hacer backup de todo antes de instalarlo.Tener en cuenta que para instalar el SP2 en MOSS 2007, es necesario previamente haber instalado el SP2 de WSS 3.0.

Proximamente lo probaré en Windows Server 2008, sql 2008 y IIS7 para verificar si tengo la misma respuesta.

lunes, 11 de mayo de 2009

Tipos de Números PARTE II

Número ambicioso: todo número que cumple que la secuencia que se forma al sumar sus divisores propios, después los divisores propios del resultado de esa suma, después los del número obtenido…acaba en un número perfecto. Por ejemplo, 25 es un aspiring number ya que sus divisores propios son 1 y 5 y se cumple que 1+5=6, que es un número perfecto.
Número curioso: todo número natural n que cumple que n2 tiene al propio n como última cifra. Por ejemplo, 25 y 36 son números curiosos.
Número de Carmichael: todo número compuesto n que cumpla que bn-1 ≡ 1 (mod (n))) .para todo natural b que sea primo relativo con n. Por ejemplo, 561 y 1105 son números de Carmichael.
Cuadrado: todo número natural que es el cuadrado de otro número natural. Por ejemplo, 9 es un cuadrado ya que 9=32.
Cubo: todo número natural que es el cubo de otro número natural. Por ejemplo, 125 es un cubo ya que 125=53.
Número malvado: todo número natural cuya expresión en base 2 (binaria) contiene un número par de unos. Por ejemplo, y 15 son números malvados ya que 12=11002 y 15=11112. Número feliz: todo número natural que cumple que si sumamos los cuadrados de sus dígitos y seguimos el proceso con los resultados obtenidos el resultado es 1. Por ejemplo, el número 203 es un número feliz ya que 22+02+32=13; 12+32=10; 12+02=1.
Número infeliz: todo número natural que no es un número feliz. Por ejemplo, el número 16 es un número infeliz.
Número hambriento: el k-ésimo número hambriento es el más pequeño número natural n que cumple que 2n contiene los primeros k dígitos de Pi. Los primeros números hambrientos son: 5, 17, 74, 144, 144, 2003,…
Número afortunado: Tomemos la secuencia de todos los naturales a partir del 1: 1, 2, 3, 4, 5,… Tachemos los que aparecen en las posiciones pares. Queda: 1, 3, 5, 7, 9, 11, 13,… Como el segundo número que ha quedado es el 3 tachemos todos los que aparecen en las posiciones múltiplo de 3. Queda: 1, 3, 7, 9, 13,… Como el siguiente número que quedó es el 7 tachamos ahora todos los que aparecen en las posiciones múltiplos de 7. Así sucesivamente. Los números que sobreviven se denominan números afortunados.
Número de Fermat : todo número natural de la forma 22n+1 para algún n. Si ese número resulta ser primo se denomina primo de Fermat.
Número de Mersenne: todo número natural de la forma 2p-1, siendo p un número primo. Si ese número resulta ser primo se denomina primo de Mersenne.
Número narcisista: todo número de k dígitos que cumple que es igual a la suma de las potencias k de sus dígitos es un número narceisita. Por ejemplo, 153 es un número narcisita de 3 dígitos, ya que 13+53+33=153. Número odioso: todo número cuya expresión en base 2 (binaria) contiene un número impar de unos. Por ejemplo, 11=10112 es un número odioso.
Número palindrómico: número natural que se lee igual de derecha a izquierda y de izquierda a derecha. Por ejemplo 1348431.
Número poderoso: todo número natural n que cumple que si un primo p es un divisor suyo entonces p2 también lo es. Por ejemplo, el número 36 es un número poderoso ya que los únicos primos que son divisores suyos son 2 y 3 y se cumple que 4 y 9 también son divisores de 36. Número oblongo: todo número natural que cumple que es el producto de dos naturales consecutivos. Por ejemplo, los números 30, 42 y 56 son pronic numbers:
Número repunit: todo número natural que está formado solamente por unos: 1, 11, 111, 1111,
Número de Smith: todo número natural que cumple que la suma de sus dígitos es igual a la suma de los dígitos de sus divisores primos contando su multiplicidad (es decir, el número de veces que aparece cada uno de ellos). Por ejemplo, el número 27 es un número de Smith ya que 2+7=9 y su único divisor primo es 3, que aparece tres veces, y por tanto 3+3+3=9.
Número libre de cuadrados: todo número natural que cumple que en su descomposición en factores primos no aparece ningún factor repetido. Por ejemplo, el número 30 es un número libre de cuadrados.
Número ondulado: todo número natural de la forma ababab…. Por ejemplo, los números 121 y 13131 son números ondulados.
Número intocable: todo número natural que no es la suma de los divisores propios de ningún número. Por ejemplo, los número 52 y 88 son números intocables.
Número vampiro: todo número natural para el cual exista una factorización formada por lo dígitos del propio número. Por ejemplo, el número 126 es un número vampiro ya que lo podemos factorizar así: 126=21·6.
Número raro: todo número natural que es abundante pero que no es igual a la suma de ningún subconjunto de sus divisores propios. Por ejemplo, los número 70 y 836 son raros.

Tipos de Números PARTE I

Los números, esos fieles compañeros que nos acompañan en todos los momentos de nuestra vida. Conocemos muchos tipos de números, ya sea porque los usamos a diario o porque los hemos visto en algún documento libro: los naturales (0, 1, 2, 3,…), los enteros (…, -3, -2, -1, 0, 1, 2, 3,…), los racionales (todo número que puede ponerse en froma de fracción), los irracionales (todo número que no puede ponerse en forma de fracción), los reales (el conjunto de todos los anteriores), los complejos…
Pero podemos calificar a los números de muchas otras maneras. Hay muchas propiedades de los números que hacen que cuando alguno las cumple se le denomine de cierta forma. En este post vamos a ver unas cuantas:

Número primo: todo número natural mayor que 1 que cumple que sus únicos divisores son el 1 y el propio número. Ejemplos: 2, 3, 5,… Este es el más grande que se conoce.
Número compuesto: todo número natural mayor que 1 que no es primo. Ejemplos: 4, 6, 10, … Número primo probable: todo número del cual no se sabe si es primo o no pero que verifica alguna condición que verifican todos los números primos
Número pseudoprimo: todo primo probable que acaba siendo compuesto.
Número perfecto: todo número natural que es igual a la suma de sus divisores propios (es decir, todos sus divisores excepto el propio número). Por ejemplo, 6 es un número perfecto ya que sus divisores propios son 1, 2, y 3 y se cumple que 1+2+3=6. Los números 28, 496 y 8128 también son perfectos.
Número semiperfecto: todo número natural que cumple que es igual a la suma de algunos de sus divisores propios. Por ejemplo, 18 es semiperfecto ya que sus divisores son 1, 2, 3, 6, 9 y se cumple que 3+6+9=18.
Número abundante: todo número natural que cumple que la suma de sus divisores propios es mayor que el propio número. Por ejemplo, 12 es abundante ya que sus divisores son 1, 2, 3, 4 y 6 y se cumple que 1+2+3+4+6=16, que es mayor que el propio 12.
Número deficiente: todo número natural que cumple que la suma de sus divisores propios es menor que el propio número. Por ejemplo, 16 es un número deficiente ya que sus divisores propios son 1, 2, 4 y 8 y se cumple que 1+2+4+8=15, que es menor que 16.
Números amigos: parejas de números que cumplen que la suma de los divisores propios de cada uno de ellos da como resultado el otro número. Por ejemplo, 220 y 284 son números amigos.
Números sociables: cumplen lo mismo que los números amigos pero en vez de ir en parejas van en grupos más grandes. La suma de los divisores del primer número da el segundo, la suma de los del segundo da el tercero, y así sucesivamente. La suma de los divisores del último da el primer número de la lista. Por ejemplo los números 12496, 14288, 15472, 14536 y 14264 son números sociables.
Número apocalíptico: todo número natural n que cumple que 2n contiene la secuencia 666. Por ejemplo, los números 157 y 192 son números apocalípticos.

jueves, 2 de abril de 2009

Recuperación de información y sistemas expertos

Los sistemas expertos, con su capacidad para combinar información y reglas de actuación, han sido vistos como una de las posibles soluciones al tratamiento y recuperación de información, no sólo documental. La década de 1980 fue prolija en investigación y publicaciones sobre experimentos de este orden, interés que continua en la presente década. En resumen, un sistema experto es una aplicación capaz de realizar las tareas propias de un experto humano en un área restringida. Se compone de una base de datos, de una base de reglas y de un motor de inferencia . La base de datos almacena el conjunto de datos o documentos sobre los que se desea ejecutar una serie de acciones. La base de reglas contiene un compendio de reglas lógicas que el sistema debe utilizar para desarrollar razonamientos, así como las normas que permiten combinar las reglas, por último, el motor de inferencia es el encargado de ejecutar las órdenes del usuario, utilizando como criterios las reglas, y como material de partida el contenido de la base de datos, hasta alcanzar una conclusión simulando el razonamiento que seguiría el experto humano. El desarrollo posterior de estos sistemas ha traído un conjunto de nuevas aplicaciones a las que se identifica como Sistemas Basados en el Conocimiento (SBC), que incorporan técnicas más sofisticadas como la lógica difusa, razonamiento basado en modelos, etc., y lo que puede ser más interesante para el especialista en información, medios de recuperación de información deductiva.

Lo que diferencia a estos sistemas de un sistema tradicional de recuperación de información es que estos últimos sólo son capaces de recuperar lo que existe explícitamente, mientras que un sistema experto debe ser capaz de generar información no explícita razonando con los elementos que se le dan . Pero la capacidad de los SE y de los SBC en el ámbito de la recuperación de la información no se limita a la recuperación. Pueden utilizarse en ayudas al usuario, en selección de recursos de información, en filtrado de respuestas... Un SE/SBC puede actuar como un intermediario inteligente que guía y apoya el trabajo del usuario final. Para desempeñar de forma adecuada esta tarea, los enfoques centrados en la creación de modelos de las estructuras cognitivas del usuario son los más prometedores.

lunes, 9 de febrero de 2009

Parser Error en SharePoint luego de crear una nueva aplicación o un nueva colección de sitios

Server Error in '/' Application. --------------------------------------------------------------------------------

Parser Error Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately. Parser Error Message: Data at the root level is invalid. Line 1, position 1.
Source Error:

Line 1 :
Line 2 :
Line 3 :

Source File: /App_Browsers/compat.browser

No se porque SharePoint crea una archivo que no puede interpretar para la compatibilidad de otros navegadores, pero resolver el problema ir al directorio donde se encuentra APP_Browsers de la aplicación nueva que creo si es el puerto 80 debería estar en el siguiente directorio:

C:\inetpub\wwwroot\wss\VirtualDirectories\80\App_Browsers

Si es en otro puerto como el 31305 por ejemplo debería de ser asi:

C:\inetpub\wwwroot\wss\VirtualDirectories\31305\App_Browsers

Eliminar todo el contenido de dicho directorio que basicamente es un archivo xml y posiblemente un directorio _vti_cnf. Reiniciar el IIS desde la consola o desde linea de comando con IISReset y listo , esto arreglaria el problema!!

lunes, 12 de enero de 2009

Agregar funcionalidades a los botones de un "Formulario Lista Personalizada"

Con el SharePoint Designer se pueden cambiar las paginas aspx (NewForm.aspx,EditForm.aspx,DispForm.aspx) donde las mismas son para agregar un nuevo elemento,editar un elemento y ver un elemento respectivamente.. Entonces para reemplazar estas y agregarles mas funcionalidades, podemos en una nueva pagina de elementos qeb, insertar un "Formulario de Lista Personalizada". Entonces voy a explicar como aregarle funcionalidades a los botones Aceptar y Cancelar de este tipo de formulario.

Para agregarle funcionalidad al boton "Aceptar"

<SharePoint:SaveButton runat="server" ControlMode="Edit" id="savebutton1"/>

lo que debemos hacer es :

1. Si queremos que despues que guarde el elemento se redireccione a otro lado ,remplazar este control por esto:


<input type="button" value="Aceptar" name="btnSave" javascript: {ddwrt:GenFireServerEvent('__commit;__redirect={'URLdestino'}')} />

2. Si queremos que siga haciendo otras acciones luego de guardar el elemento, reemplazar por lo siguiente:

<input onclick="javascript:{ddwrt:GenFireServerEvent('__commit;')};OtraAcction();" />

Como se puede ver OtraAccion() puede ser cualquier cosa , ej : window.close() y asi se pueden seguir agregando mas.

3. Lo mismo se puede hacer con el boton "Cancelar"


Listo, eso es todo == True! :P

Damian.



martes, 6 de enero de 2009

14 mitos de los Metodos Formales

Como ya sabemos lo metodos formales son lenguajes, técnicas y herramientas basadas en matemática y/o lógica para describir y verificar sistemas de software y/o hardware. Generalemente los MF no son muy usados en la mayoria de las empresas de hoy en día, agunos de los motivos pueden ser :

  • Conservadurismo de la gerencia.
  • Falta de capacitación.
  • Inmadurez. Algunas clases de sistemas son dificiles de modelar utilizando las técnicas actuales.
  • Desconocimiento de los avances. Muy pocos saben los éxitos conseguidos con estas técnicas en ejemplos no-triviales.
  • Desviación academisista. Los investigadores de la academia se concentran sólo en diseñar lenguajes y asignarles semánticas formales, y no continúan en la generación de herramientas de soporte.
Existen otros seguramente.....

Ahora si los 14 mitos de los metodos formales que he leido por ahi y me parecieron relevantes son los siguientes :

  1. Sólo se obtiene SOFTWARE PERFECTO.
  2. Es lo mismo que demostración de programas.
  3. Son tan costosos que su uso sólo se justifica en sistemas críticos.
  4. Requieren gran destreza matématica.
  5. Incrementan el costo de desarrollo.
  6. Los clientes no pueden entender las especificaciones.
  7. Sólo se han usado en sistemas triviales.
  8. Retrasan el proceso de desarrollo.
  9. No hay herramientas que los soporten.
  10. Reemplazan los métodos de desarrollo tradicionales.
  11. Sólo se aplican a software.
  12. Son innecesarios.
  13. No hay soporte técnico.
  14. Los métodos - formalistas siempre los usan.