lunes, 20 de abril de 2015

[Corregido] The term ‘Add-SPSolution ’ is not recognized as the name of a cmdlet, function, script file, or operable program.

1. Identificando el problema.


Intentando hacer una instalación de un WebPart en SharePoint 2010, en una nueva máquina, me topé con el siguiente error, ejecutando en la consola de administración:


The term ‘Add-SPSolution ’ is not recognized as the name of a cmdlet, function, script file, or operable program.

Me imaginaba que al estar instalado Powershell en producción, interpretaría los comandos de SharePoint.Powershell automáticamente, pero no era así.


2. Solución.


Luego de buscar mucho en la WEB, me topé con una solución algo absurda, pero me funcionó:
Antes de ejecutar el script en Powershell, es necesario incluir una primera linea de comando, donde se le indique a la máquina que habilite el Powershell ISE.


Agreguen la siguiente linea al comienzo del scrit que están corriendo:

Add-PSSnapin Microsoft.Sharepoint.Powershell –EA 0


Pero para una solución a largo plazo, esto puede ser desgastante. Entonces les recomiendo leer el siguiente artículo:
http://blogs.msdn.com/b/kaevans/archive/2011/11/14/add-microsoft-sharepoint-powershell-snap-in-to-all-powershell-windows.aspx

sábado, 11 de abril de 2015

Cómo obtener los grupos y usuarios de SharePoint

En nuestro código a veces necesitamos saber cuáles son los grupos y/o usuarios que están asignados a dicho grupo, dentro de un sitio en SharePoint.

El siguiente código nos permite listar todos los grupos y cada uno de los usuarios que se encuentran asignados dentro de dicho grupo.

C#.NET



private static void ObtenerGruposUsuarios()
{
using (SPSite site = new SPSite("http://sitename"))
{

SPWeb web = site.OpenWeb();
SPGroupCollection groupCollection = web.SiteGroups;

foreach (SPGroup group in groupCollection)
{
SPUserCollection userCollection = group.Users;
Console.WriteLine("Group Name :" + group.Name+"\n");

foreach (SPUser user in userCollection)
{
Console.WriteLine("User Name: " + user.Name + " Email: " + user.Email + " Login: " + user.LoginName);
}
}
//Iterate the owners group
SPGroup ownerGroup = web.AssociatedOwnerGroup;
foreach (SPUser ownerUser in ownerGroup.Users)
{
Console.WriteLine("User Name: " + ownerUser.Name + " Email: " + ownerUser.Email + " Login: " + ownerUser.LoginName);
}
}
Console.ReadLine();
}

VB.NET




Private Sub ObtenerGruposUsuarios()

Using site As New SPSite("http://sitename")




Dim web As SPWeb = site.OpenWeb()

Dim groupCollection As SPGroupCollection = web.SiteGroups




For Each group As SPGroup In groupCollection

Dim userCollection As SPUserCollection = group.Users

Console.WriteLine("Group Name :" + group.Name + vbLf)




For Each user As SPUser In userCollection

Console.WriteLine("User Name: " + user.Name + " Email: " + user.Email + " Login: " + user.LoginName)

Next

Next

'Iterate the owners group

Dim ownerGroup As SPGroup = web.AssociatedOwnerGroup

For Each ownerUser As SPUser In ownerGroup.Users

Console.WriteLine("User Name: " + ownerUser.Name + " Email: " + ownerUser.Email + " Login: " + ownerUser.LoginName)

Next

End Using

Console.ReadLine()

End Sub

jueves, 9 de abril de 2015

Cómo acceder a Bases de datos en SharePoint 2010

Si necesitamos acceder a la base de datos de SharePoint 2010, para trabajar sobre ella en nuestro Webpart o el desarrollo que estamos haciendo en nuestro proyecto de Visual Studio, podemos averiguar su ubicación de la siguiente manera:

1) Abrimos el Administrador Central de SharePoint 2010
 2) Ingresamos por el Administrador de Aplicaciones y en el grupo de Bases de Datos, ingresamos por  el "Administrador de Contenido de Bases de Datos"

3) Esto nos muestra el listado de las bases de datos que hay actualmente en SharePoint 2010. Seleccionamos la base de datos a la cual queremos conectarnos.


 4) En la siguiente página nos va a mostrar los datos que necesitamos para ingresar a la BD de SharePoint 2010. Tomamos nota de ellos, que en seguida los utilizaremos.


5) Vamos a Visual Studio 2010, o a nuestro administrador de base de datos de SQL Server. buscamos la opción que nos permita "Agregar Conexión"


6) Ingresamos los datos que nos suministró SharePoint, para pdernos conectar a su base de datos y pulsamos el botón de "Probar conexión".


7) Si todo ha marchado bien hasta aquí, entonces ya tendremos acceso a la base de datos de SharePoint y podremos observar su estructura, contenido y trabajar sobre ella directamente.



Sharepoint viene con el nombre de la base de datos ya predefinida, pero se puede modificar manualmente.

La siguiente es la lista de las bases de datos utilizadas en SharePoint 2010, en cada una de sus versiones.

Bases de Datos para SharePoint Foundation 2010


Configuración (SharePoint_Config) - Contiene los datos sobre las Bases de Datos utilizadas, información sobre Internet Information Services (IIS), Aplicaciones Web, Soluciones de confianza, paquetes de WebParts, plantillas de sitios y las configuraciones de Granjas y Aplicaciones Web (como las cuotas a utilizar y los tipos de archivos bloqueados por ejemplo)

Central Administration Content (SharePoint_AdminContent) - Conserva todo el contenido del sitio de la Administración Central incluyendo documentos o archivos, Listas, propiedades de WebParts, nombres de cuentas y sus derechos para la Colección de Sitios de la Administración Central. Si PowerPivot está instalado, esta Base de Datos contiene las hojas de cálculo de Excel y los datos de PowerPivot utilizados en su Management Dashboard

Bases de Datos de Contenido (WSS_Content) - Contienen todo la información de las Colecciones de Sitios, incluyendo documentos y archivos en Bibliotecas, elementos de Listas, propiedades de WebParts, logs de Auditoria, Soluciones de SandBox, cuentas de usuarios y sus derechos. Si WebApps está instalado, la Base de Datos contiene el cache de WebApps; únicamente un cache es creado por Aplicación Web, si hay diferentes Colecciones de Sitios guardadas en diferentes Bases de Datos de Contenido, todas utilizan el mismo cache

Base de Datos de Usage and Health Data Collection (WSS_UsageApplication) - Mantiene las estadísticas de uso y salud del sistema. Los datos son guardados temporalmente y pueden ser usados para reportes y diagnostico

Base de Datos de Business Data Connectivity (Bdc_Service_DB) - Guarda los Tipos de Contenido externos y sus objetos para la Conectividad de Datos de Negocios

Base de Datos de Application Registry (Application_Registry_server_DB) - Contiene información de compatibilidad para el sistema de Catalogo de Datos Profesionales de SharePoint 2007

Base de Datos de Subscription Settings (SubscriptionSettings) - Conserva las Características y configuraciones para clientes hosteados

Bases de Datos de SharePoint Server 2010 Standard Edition


Utiliza las Bases de Datos mencionadas anteriormente más:

Base de Datos de Secure Store (Secure_Store_Service_DB) - Guarda el mapeo de credenciales, nombres y claves de las cuentas

Base de Datos de State (StateService) - Mantiene información temporal sobre el estado de InfoPath Forms Services, la WebPart de Chart y los Servicios de Visio

Base de Datos de Web Analytics Staging (WebAnalyticsServiceApplication_StagingDB) - Contiene datos sin organizar de metadatos para el servicio de Análisis de SharePoint

Base de Datos de Web Analytics Reporting (WebAnalyticsServiceApplication_ReportingDB) - Contiene las tablas para reportes agregados, factos agregados por grupos y sitios y la información de diagnóstico para la aplicación de Web Analytics Service

Base de Datos de Search service application Administration (Search_Service_Application_DB) - Mantiene la Lista de Control de Acceso (ACL) y best bets para el rastreador de búsqueda

Base de Datos de Search service application Crawl (Search_Service_Application_CrawlStoreDB) - Contiene los datos del rastreador y su historia

Base de Datos de Search service application Property (Search_Service_Application_PropertyStoreDB) - Contiene la información asociada a los datos del rastreador incluyendo sus propiedades, historia y filas de rastreador

Base de Datos de User Profile service application Profile (User Profile Service Application_ProfileDB) - Mantiene los datos asociados a usuarios, red social, membrecías y listas de distribución

Base de Datos de User Profile service application Synchronization (User Profile Service Application_SyncDB) - Contiene la información de los usarios cuando la Base de Datos de Perfiles es sincronizada con el Directorio Activo

Base de Datos de User Profile service application Social Tagging (User Profile Service Application_SocialDB) - Contiene las etiquetas y notas creadas por usuarios conjuntamente con sus respectivos URLs

Base de Datos de Managed Metadata (Managed Metadata Service) - Contiene la información de los metadatas manejados y los Tipos de Contenido sindicados

Base de Datos de Word Automation Services (WordAutomationServices) - Guarda la información sobre conversiones de documentos pendientes y completados

SharePoint Server 2010 Enterprise Edition


Utiliza todas las Bases de Datos mencionadas anteriormente más:

Base de Datos de PerformancePoint service (PerformancePoint Service Application) - Guarda los objetos temporales, valores de filtros y comentarios de usuarios

FAST Search Server para SharePoint 2010


Utiliza todas las Bases de Datos anteriores más:

Base de Datos de Search Administration (FASTSearchAdminDataBase) - Guarda los datos relativa a la administración de FAST Search Server 2010 para SharePoint, incluyendo la configuración de grupos, palabras clave, sinónimos, documentos, promoción y democión, extractor de términos, inclusiones y exclusiones, exclusiones de control de ortografía, best bets, visual best bets y metadata del esquema de búsqueda.


lunes, 30 de marzo de 2015

Cómo Instalar SharePoint 2010 en Windows 8

Tal vez parezca un tanto viejo el tema, pero hoy por hoy, todavía es vigente para muchas empresas que no han acutalizado sus sistemas operativos, o tal vez para los desarrolladores de soluciones basadas en SharePoint 2010.

1. Descargar prerequisitos


Primero debemos descargar e instalar los pre-requisitos para eso les recomiendo usar el siguiente script de powershell que encontraran en el siguiente enlace: http://gallery.technet.microsoft.com/office/bcf3332d-f726-4ac7-b01a-eeda4b7ece8e

2. Configurar: IIS

Luego debemos cambiar el Framework a usar en IIS al V2.0 (quitar la V4.0). Para hacer esto desde el _IIS Manager_ seleccionamos el _Application Pools_ y en el menu _Actions_ seleccionamos _Set Application Pool Defaults_ en ese punto deberíamos tener en la sección (General) la propiedad _.Net Framework Version_



3. Preparar el instalador

SharePoint esta creado para ser instalado naturalmente en un sistema operativo de servidor así que debemos hacer un pequeño cambio en el archivo _config.xml _ del instalador para que permita ser instalado en Windows 8. Para realizar esto debemos copiar todos los archivos al disco, ubicar el archivo (Se encuentra en _C:\XXXubicacion\\Files\Setup\config.xml_) y editar la linea <Setting Id="AllowWindowsClientInstall" Value="True"/>



Con estos tres pasos ya tenemos todo listo para iniciar nuestra instalación de la forma habitual.

Nota: Si tienen instalado InfoPath 2013 les dará error, hasta ahora (21-03-2015) la solución que encontré fue desinstalarlo.

martes, 24 de febrero de 2015

Cómo ejecutar una Instrucción SQL desde un archivo .BAT en ciclos

A veces necesitamos ejecutar un script en SQL en nuestra base de datos de SQL Server, pero sin hacer uso del Agente (a veces por motivos de seguridad), sin un Servicio de Windows (para disminuir consumo de procesamiento), sin construir una aplicación de consola y que además se autoejecute cada determinado tiempo, de manera automática.

Bueno... con semejante requerimiento solo nos queda hacer uso de un archivo .BAT (Batch).

Los archivos .BAT son un archivo de texto que solamente ejecuta comandos de manera primaria en el DOS (Disk Operating System) y en él se puede invocar la ejecución de otras aplicaciones.

Para el caso que necesitamos en este ejemplo, escribiremos la instrucción que necesitamos ejecutar en nuestra base de datos en un archivo .sql y lo guardamos en una ruta del disco duro fácil de acceder. En un editor de textos plano, como el notepad, guardando después el archivo con el nombre de nuestra elección sin olvidar la extensión .sql.

Nota: Es preferible que podamos acceder a la BD de SQLServer desde la misma máquina donde vamos a poner el archivo .sql y el archivo .bat

Ejemplo del archivo .sql:
Update seguridad_lic SET licencia_status = 1 where cliente_pago = 'OK';

Como se puede ver es una instrucción SQL que puede ser interpretada por SQL Server de manera fácil.  Este archivo lo guardamos con el nombre instruccion.sql (puedes ponerle el nombre que quieras pero con esa extensión) y ahora construimos el archivo ejecutar.bat

Ejemplo del archivo ejecutar.bat:
@echo off

OSQL -U (username) -P (password) -S (Direccion IP del servidor con el puerto, si no hay un valor por defecto) -i C:\instruccion.sql -o c:\instruccion.txt

Y ahora lo que nos hace falta es que se ejecute repetidamente. Para esto podemos hacer 3 tipos de alternativas:
  1. Ejecución infinita en un ciclo interminable (muy poco recomendable).
  2. Ejecutarlo un determinado número de veces (mejor, pero tiene una vida útil limitada)
  3. Incluirlo en el registro de Windows, para que se ejecute cada determinado tiempo o periódicamente (más recomendable)

1. Ejecución infinita en un ciclo interminable

Para esto simplemente usamos un puntero y lo invocamos internamente, de manera que hace un ciclo infinito.  Abrimos el archivo (NO con Doble Clic), Botón derecho y abrirlo con el bloc de notas (por si acaso):

@echo off
 

:repetiresto
 

OSQL -U (username) -P (password) -S (Direccion IP del servidor con el puerto, si no hay un valor por defecto) -i C:\instruccion.sql -o c:\instruccion.txt

Goto repetiresto

Guardamos de nuevo el archivo y listo.
Advertencia:  La única manera de detener este archivo es eliminando el proceso por el Adminitrador de Tareas.

2. Ejecutarlo un determinado número de veces

De nuevo, abrimos el archivo para editarlo y hacemos el siguiente ajuste:

@echo off

set Repetir=1
goto
repetiresto
:repetiresto
set /a Repetir=Repetir+ 1

OSQL -U (username) -P (password) -S (Direccion IP del servidor con el puerto, si no hay un valor por defecto) -i C:\instruccion.sql -o c:\instruccion.txt

if %Repetir% == 5 (goto fin) else (goto
repetiresto)
:fin


En este ejmplo lo pusimos a que se repitiera 5 veces.

3. Incluirlo en el registro de Windows

Al hacer esto, se iniciará cuando iniciemos el PC, por lo tanto, quedará dependerá de que la máquina esté activa.

No hace falta modificar el archivo ejecutar.bat que ya tenenos escrito desde el comienzo.  Solamente hay que crear uno nuevo para hacer el registro en Windows y debe ser así:
@echo off
AT 17:00 @echo off&&start c:/ejecutar.bat
REG ADD HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v sysin2 /t REG_SZ /d "c:/ejecutar.bat"


Espero que les ayude en sus procesos de ejecución de base de datos periódicos.

Un saludo,
@ivan_londono

7 razones para no usar Laravel en tu proyecto de PHP

En más de 40 años de experiencia como programador y director de proyectos de programación, he aprendido que cada requerimiento tiene mejores...