lunes, 16 de octubre de 2017

Como publicar en SharePoint Online un reporte de Power BI Parte II

En la primera parte vimos como publicar desde el espacio de trabajo de una cuenta de Power BI Pro un reporte e incrustrarlo en SharePoint Online.  En esta segunda parte vamos a ver como desde un espacio de trabajo de Aplicación se comparte un reporte para que sea visualizado desde SPO o SharePoint Online.   La parte de incrustar el reporte desde SPO con ayuda del elemento web Power BI no las repetiré así que si no vieron la primera parte se los recomiendo.

Desde Power BI con una cuenta Power BI Pro.
Vamos a seleccionar Workspaces y Create app workspace


Vamos a colocarle el nombre Mi equipo de trabajo, vamos a indicar que es Privado dejando la opción Private - Only approved members can see what's inside y dejamos también la opción Members can edit Power BI content. En la casilla Add workspace members vamos a incluir al usuario en este ejemplo powerbicolaborador, que será el usuario que nos apoyará para elaborar el reporte en powerbi.


Ahora vamos a simular que el colaborador construye el reporte en Power BI para ello ingresamos con dicha cuenta a POWER BI.  Desde la cuenta powerbicolaborador seleccionamos Areas de trabajo y luego Mi equipo de trabajo.  Desplegará la opcion de Probar Power BI Pro gratis y Actualizar cuenta de lo cual seleccionaremos la primera.

Simulando un reporte vamos a seleccionar Ejemplos dentro de Obtener datos y seleccionamos el Ejemplo de análisis de minoristas y la opción conectar  ( si le da error, solo intentelo de nuevo y debería de obtener el reporte de ejemplo sin problema).



Listo el reporte esta ya construido


Ahora regresamos con la cuenta administradora para publicar el reporte y compartirlo.  Desde el Workspace Mi Equipo de trabajo seleccionamos la opción Publish App que aparece en la parte superior derecha de la página:


Y nos muestra 3 pestañas

Detalles podemos colocar una descripción y color.  Seleccionemos Content o Contenido.  Esta opción nos permitirá elegir que contenido deseamos publicar.  Para nuestro ejemplo selecionaremos la opción Report ya que es lo que publicaremos en SharePoint.


Luego seleccionamos la pestaña Access y seleccionamos al usuario jherrera para que pueda ver el reporte desde SPO.


Si deseamos darle permiso a otro usuario necesitamos agregarlo al espacio de trabajo primero para luego poderlo incluir en el app.

Para finalizar presionemos el botón amarillo Finish que esta en la parte superior derecha de la página



Ahora realizamos el mismo procedimiento que en la parte I; Creamos una pagina en SharePoint y agregamos el reporte.  Para el enlace del reporte necesitamos irnos al reporte y seleccionar la opción Embed in SharePoint Online y creamos el enlace en el QuickLaunch.



Y luego asigne permisos a la cuenta para que pueda ingresar al sitio de SharePoint.


Listo eso es todo!


Si el usuario intenta ver el reporte de IT Spend analysis le indicará que no puede verlo ya que no fue compartido con el.

Eso es todo por estos artículos, Enjoy!.

Juan Manuel Herrera Ocheita


Como publicar un reporte de Power Bi en SharePoint Online Parte I

A la fecha 16 de Octubre del 2017 hay dos formas de compatir un reporte de Power BI para incrustar en SharePoint Online.   En esta primera parte vamos a ver la forma habitual de compartir desde el espacio de trabajo individual de un usuario de Power BI, en la segunda parte lo veremos como se hace desde un equipo de trabajo.

Requisitos:

1. Tener una cuenta de Power BI Pro
2. Tener una cuenta de Office 365 que incluya SharePoint Online (preferencia E3)
3.  Tener permisos de Full Control sobre el sitio donde deseamos  incrustrar el reporte de Power BI.
4. Conocimientos básicos en el uso de reportes en Power BI, conocimiento básicos de SharePoint Online.


Primero lo primero
Desde My Workspace seleccionamos Get Data, hacemos clic sobre Samples, seleccionamos uno de los ejemplos disponibles en Powe BI, y presionamos el botón Connect.  Deberá mostrarle en el tablero el reporte.

Luego seleccionamos Reports y seleccionamos el reporte.

Luego seleccionamos Pin live Page



Luego nos vamos a Dashboards


Y sobre el reporte seleccionamos la opción de Share
Incluimos a los usuarios a los que les daremos el permiso de visualizar el reporte

Y presionamos el botón Share.

El siguiente paso es muy importante ya que el usuario debe de ingresar por lo menos una vez a Power Bi, si el usuario ya es usuario de Power Bi y ya ingreso por lo menos una vez al sitio ya no es necesario hacer este paso.

El usuario recibirá este correo:


El usuario debe de ingresar al enlace para que quede registrado su permiso en Power BI, si este paso no lo hace el usuario cuando incrustemos el reporte en SharePoint Online el no podrá verlo.


En nuestro caso para este ejemplo utilizaremos la opción Probar Power BI Pro gratis, actualizar cuenta es la opción Pagada.


Hacemos clic para iniciar el período de prueba y luego muestra otro mensaje de éxito que omití en el artículo ya que pienso no vale la pena.

Si hacemos clic sobre la opción Compartido conmigo deberías de ver el reporte compartido con la cuenta jherrera.



Si el usuario hace clic sobre el reporte debería poder verlo


Bueno ahora que compartimos de forma correcta el reporte y validamos que el usuario si tiene acceso al mismo nos toca ver la parte de SharePoint

Con la cuenta administradora del sitio donde vamos a publicar el reporte.  En Power Bi vamos a obtener el enlace para incrustarlo en SharePoint.  Seleccionamos Reports hacemos clic sobre el reporte y seleccionamos File y Embedded in SharePoint Online.



Ahora desde SharePoint Online


Seleccionamos Configuración o Tuerquita y elegimos la opción Add a page

Ahora colocamos el nombre y seleccionamos la opción + para agregar el elemento web Power BI


Presionamos el botón Add report y pegamos el enlace que copiamos desde Power BI .


Podemos seleccionar en Page Name el nombre de la pagina que deseamos mostrar (Esto puede demorar un poco así que espere un momento a que muestre en Page Name las páginas disponibles del reporte).  Si ya terminamos la configuración del elemento web presionamos la opción Save and Close en la parte superior izquierda como se muestra en la imagen.  Y por último presione el botón Publish.

Ahora necesitamos darle permiso al usuario En SharePoint para que por lo menos pueda ingresar al sitio.  Por ello le otorgaremos el permiso de lectura.  Vaya a Configuración o Tuerquita, y seleccione la opción Site Permisssions.  Ahora seleccione Share Site y escriba el nombre del usuario en este caso es jherrera y presione el Botón Add.


Un paso más y estamos listos.  Vamos a colocar un enlace en el Quick Launch (menú de lado izquierdo de la página) para que el usuario acceda al reporte desde SPO.  Haga clic en la opción Edit Link haga clic sobre el signo más y llene la casilla Address y Display Name similar a como se muestra en la imagen de abajo:



Presione el botón OK.

Listo ahora vamos con la cuenta del usuario Jherrera para que ingrese a SPO y validemos que puede ver el reporte.  Vamos a https://portal.office.com hacemos clic en el icono de SharePoint y hacemos clic sobre Frequent sites Guatemala  Team Site.  Hacemos clic sobre el enalce ITSpend analysis Sample in Power BI y esperamos un momento a que muestre el reporte y debería mostrarnos el reporte incrustrado de Power BI en el sitio de SharePoint como se muestra abajo en la imagen:



Eso es todo amigos!, en la segunda parte veremos otra forma de compartir el reporte desde Power BI.

Juan Manuel Herrera Ocheita

viernes, 13 de octubre de 2017

Servicio de Perfiles de Usuario No Inician en SharePoint 2013

Este servicio en todas sus versiones siempre ha dado de que hablar, es muy facilmente corruptible y muy difícil de levantar, por las dependencias que han existido con Forefront Identity Manager.   Ya en la versión 2016 cambia el Nombre por Identity Mananger al parecer un servicio mucho más adaptable y con la posibilidad de no utilzarlo si no se requiere personalizar la importación de los usuarios del Directorio Activo hacia SharePoint.

Pero si se ha topado con el problema de que no se levanta y ha siguió todos los pasos en los siguientes enlaces:



Y el escenario donde corres tiene la siguiente peculiaridad:

El nombre del netbios del dominio es diferente del FQDN.

Entonces el problema lo resolvimos de la siguiente manera:

Registramos la cuenta de la granja con el FQDN en los servicios de ForeFront Identity Manager Y ForeFront Identity Manager Syncrhonization de la siguiente forma:

spfarm@FQDN es decir spfarm@dominio.com

Con ello el servicio inicio.  Pasamos 3 semanas con este tema hasta que se nos ocurrio registrar las cuentas no con el formato netbios dominio\spfarm sino en la anterior y funcionó.  

Estimamos que en la red del cliente alguna configuración incorrecta en su red hay cuando los nombres netbios no coinciden con el FQDN del servidor y no me refiero al formato sino mas bien que el nombre netbios no coicidía en nada al FQDN del dominio.

SharePoint4Fun,

Juan Manuel Herrera Ocheita


TFS 2017 Migración Errores TF400654 Y TF400506

El error fue el siguiente:

[Error] TF400654: Unable to configure Planning Tools. The following element contains an error: BugWorkItems/BugWorkItems. TF400506: This element defines the states for work items that represent Bugs or Defects. Each state must exist in at least one of the work item types that are defined in: BugWorkItems. The following states do not exist in any of the work item types: Nueva, Activo, Resuelto, Cerrado.

Para corregir este problema es necesario modificar la definición del elemento de trabajo Bug o Error.

Lo que es necesario hacer es agregar en la definición del Error los estados inexistentes que en este caso son:
Nueva, Activo, Resuetlo y Cerrado.


   
       
       
       
       
     

Para exportar el elemento de trabajo puedes utilizar el comando witadmin de la siguiente manera:

witadmin collection:CollectionURL /p:Project /n:TypeName [/f:FileName] [/e:Encoding] [/exportglobalists]

Y luego de agregar los estados ejecutar el comando witadmin para importar o subir el 
elemento de trabajo actualizado:

witadmin importwitd /collection:CollectionURL [/p:Project] /f:FileName [/e:Encoding] [/v]

Por si le es utiliza conocer el nombre del elemento de trabajo a modificar ejeucar el siguiente error:

witadmin listwitd /collection:CollectionURL /p:Project

Con eso ya podrá continuar la migracion a TFS 2017.
 
https://docs.microsoft.com/en-us/vsts/work/customize/reference/witadmin/witadmin-import-export-process-configuration 

Hua!,

Juan Manuel Herrera Ocheita

martes, 12 de septiembre de 2017

Importante cambio en el comportamiento de permisos en SharePoint Online

Los permisos en SharePoint en estos 15 años no han cambiando mucho.  Pero recientemente note un cambio que en el comportamiento de la administración de permisos en SharePoint que es importante tomarlo en cuenta.

Introducción

En SharePoint de forma predeterminada los permisos son heredados a lo largo y ancho de los objetos de SharePoint.  Como objetos podemos mencionar: Sub-sitios, Bibliotecas, Listas, elementos de una biblioteca o lista, carpetas y documentos o elementos.



Para crear permisos exclusivos sobre estos objetos es necesario indicarle a SharePoint que deseamos romper la herencia que heredamos el objeto superior que puede ser un sub-sitio, biblioteca y/o carpeta.  Eso dependerá donde estemos ubicados en el sitio, en la biblioteca o lista, en la carpeta.



La jerarquía de objetos de SharePoint para administrar el contenido es la siguiente:

Colección de Sitios
-> Sitio Primario
-->Sub-sitio
---> Biblioteca o Lista
----> Carpeta
----->Documento o Elemento



Si las Listas también pueden contener carpetas para agrupar elementos y los elementos de una lista también puede contener documentos como adjuntos.  Al final una biblioteca es una lista especializada para administrar documentos.

El Nuevo comportamiento

Cuando dejamos de heredar permisos de un objeto a otro los permisos del objeto superior son copiados o dejados en el objeto inferior facilitándonos la asignación de permisos basado en la herencia del objeto superior.  

El tema aquí es que aunque se haya roto la herencia del objeto superior si el usuario o grupo del objeto superior es eliminado en el objeto inferior también es eliminado.

Es no es el comportamiento predeterminado y es importante conocerlo porque podemos creer que el permiso sigue aún allí en el objeto inferior y no es así.  Si deseamos que ese objeto inferior tenga acceso entonces debemos explícitamente conceder el permiso asignándole de nuevo el grupo o usuario que fue eliminado en el sitio superior.  



Deduzco que este comportamiento fue modificado por solicitud de usuarios de negocio que siguen la regla que si un grupo o usuario es eliminado del objeto superior no debería tener acceso a objetos de nivel inferior.

Así que amigos estén conscientes de este cambio ya que puede afectar el acceso a los objetos dentro de SharePoint Online

SharePoint4Fun!,

Juan Manuel Herrera 

miércoles, 9 de agosto de 2017

Creando Nuget Server Local y haciendo la instalación con WebDeploy

La forma práctica, ordenada y ágil en que podemos compartir el código dentro de nuestra organización es a través de paquetes nuget, los cuales no son mas que bibliotecas de código reutilizable que podemos incluir en nuestros proyectos de Visual Studio fácilmente.  Por lo que lo que necesitamos es un "Repositorio" de estos paguetes de código reutilizable llamados Nuget.

Para crear este repositorio tenemos 3 opciones:

1) Una Carpeta Compartida en la red
2) Un servidor de Nuget Local
3) Utilizar los servidores de Nuget.Org para compartir nuestro código al rededor del mundo con infraestructura de terceros

Análisis de las opciones
Crear una Carpeta Compartida es una opción muy fácil poco segura, ordenada y elegante, por lo que no recomiendo esta opción más que para una prueba de concepto.

Utilizar los servidores de Nuget.Org de forma privada es una opción la cual puede evaluar primordial mente si su equipo esta distribuido geográficamente, sino recomiendo la opción de un Servidor Nuget.  Para más información ver el siguiente enlace: https://www.myget.org/nuget 

Nuestro análisis nos lleva a ver la opción 2 de crear un servidor Nuget con nuestra propia infraestructura disponible dentro de nuestra organización y esto es el lo que vamos a ver en el desarrollo del artículo.

Prerequisitos

Requerimientos de Hardware
Procesador: 1 Nucleo
Memoria RAM: 1 GB
Disco: 127 GB

Requerimientos de Software
Windows Server 2012 Standard Edition
IIS 8.0 con las siguientes features activadas:
DisplayName
-----------
Web Server (IIS)
Web Server
Common HTTP Features
Default Document
Directory Browsing
HTTP Errors
Static Content
Health and Diagnostics
HTTP Logging
Logging Tools
Request Monitor
Performance
Static Content Compression
Security
Request Filtering
Windows Authentication
Application Development
.NET Extensibility 3.5
.NET Extensibility 4.5
ASP.NET 3.5
ASP.NET 4.5
ISAPI Extensions
ISAPI Filters
Management Tools
IIS Management Console
IIS Management Scripts and Tools
Management Service

Nota:  Para obtener este listado puede ejecutar la siguiente línea en powershell:

 Import-module servermanager ; Get-WindowsFeature | where {$_.Installed -eq $True -and $_.Path
 -like "*web*" }| select displayname

Como vamos a realizar la instalación con WebDeploy necesitamos instalarlo para IIS 8.0
https://www.iis.net/downloads/microsoft/web-deploy 

Debemos validar que el servicio Management Services esta levantado así que ejecute esta línea de comando en el servidor web:
net start wmsvc

Por último como el proyecto Nuget Server que vamos a instalar require Framework 4.6 es necesario instalar dicho framework que no viene con Windows Server 2012.   Para ello utitlizar el siguiente enlace:

https://www.microsoft.com/en-us/download/details.aspx?id=53344

Listos ahora pasemos a Visual Studio para crear el proyecto Web Nuget Server

Creación de Proyecto Web Nuget Server




Desde Visual Studio Cree un Nuevo Proyecto Web Vacio

Y ejecute desde la consola de Package Manager la siguiente línea:

Install-Package NuGet.Server -Version 2.11.3

Le Preguntará si permite modificar el archivo web.config del proyecto seleccione afirmativamente la opción.

Recomiendo revise las configuraciones del archivo web.config siguientes:

 



Ahora vamos a crear un perfil de publicación en VS para realizar la instalación automatizada del Servidor Nuget en el Servidor Web recién configurado.



Valide la conexión y si le de errror revise los prerequisitos o vaya al siguiente enlace:
https://docs.microsoft.com/en-us/iis/publish/troubleshooting-web-deploy/web-deploy-error-codes

Si vemos el resumen del Perfil de publicación notaremos que el servicio referenciado es Web Management Services o WMSvc



Y finalmente si publicamos el proyecto a través del perfil de publicación obtendremos el resultado final... Nuestro servidor Nuget Listo!:



Y eso es todo amigos, en este articulo revisamos como crear un servidor Nuget Local para crear nuestros paquetes de bibliotecas de código para compartir con el equipo de una forma ágil y eficiente desde Visual Studio 2017, Y lo hicimos de forma automatizada ya que utilizamos Web Deploy para instalar el Proyecto Web del Servidor Nuget en un Servidor Windows 2012 con el Web Server Habilitado y el Servicio Web Management Service para realizar instalaciones remotas a través de la aplicación Web Deploy de Microsoft.

Code4Fun!,

Juan Manuel Herrera Ocheita

martes, 8 de agosto de 2017

Buenas practicas para desarrollo de soluciones en SharePoint

Una de las buenas practicas para cuando iniciamos una solución en SharePoint no importa la versión es crear una colección de sitios para dicha solución y esta con su bases de datos de contenido,  Esto permitirá que sea portable la solución desarrollada.

Para realizar esto debemos hacer lo siguiente:

1) Crear la base de datos de contenido
2) Crear la colección de sitios para la base de datos nueva

Como buen desarrollador prefiero utilizar la línea de comando que la interfaz de usuario.  Así que aquí les va en línea de comando:

Crear la base de datos de contenido

PS C:\Users\Administrator> Mount-SPContentDatabase -Name WSS_Content_ArchivoDigi
tal -WebApplication http://sp2013bi

---resultado ----
Id               : 47b71298-e23c-421b-bb6a-5e65428b8a4d
Name             : WSS_Content_ArchivoDigital
WebApplication   : SPWebApplication Name=SharePoint - 80
Server           : sp2013bi\powerpivot
CurrentSiteCount : 0

Crear la colección de sitios para la base de datos nueva

PS C:\Users\Administrator> New-SPSite -Url http://sp2013bi/sites/ADigital -Langu
age 1033 -Template STS#0 -Name "Archivo Digital" -OwnerAlias "Administrator" -Co
ntentDatabase WSS_Content_ArchivoDigital -Verbose

---resultado---
VERBOSE: Leaving BeginProcessing Method of New-SPSite.
VERBOSE: Performing operation "New-SPSite" on Target
"http://sp2013bi/sites/ADigital".

Url                                                     CompatibilityLevel
---                                                     ------------------
http://sp2013bi/sites/ADigital                          15
VERBOSE: Leaving ProcessRecord Method of New-SPSite.
VERBOSE: Leaving EndProcessing Method of New-SPSite.



Ayudas:

Para revisar las plantillas para la colección de sitios ejecutar el comando:
get-SPWebTemplate


Name                 Title                                    LocaleId   Compat
                                                                         ibilit
                                                                         yLevel
----                 -----                                    --------   ------
GLOBAL#0             Global template                          1033       15
STS#0                Team Site                                1033       15
STS#1                Blank Site                               1033       15
STS#2                Document Workspace                       1033       15
MPS#0                Basic Meeting Workspace                  1033       15
MPS#1                Blank Meeting Workspace                  1033       15
MPS#2                Decision Meeting Workspace               1033       15
MPS#3                Social Meeting Workspace                 1033       15
MPS#4                Multipage Meeting Workspace              1033       15
CENTRALADMIN#0       Central Admin Site                       1033       15
WIKI#0               Wiki Site                                1033       15
BLOG#0               Blog                                     1033       15
SGS#0                Group Work Site                          1033       15
TENANTADMIN#0        Tenant Admin Site                        1033       15
APP#0                App Template                             1033       15
APPCATALOG#0         App Catalog Site                         1033       15
ACCSRV#0             Access Services Site                     1033       15
ACCSVC#0             Access Services Site Internal            1033       15
ACCSVC#1             Access Services Site                     1033       15
BDR#0                Document Center                          1033       15
DEV#0                Developer Site                           1033       15
DOCMARKETPLACESITE#0 Academic Library                         1033       15
EDISC#0              eDiscovery Center                        1033       15
EDISC#1              eDiscovery Case                          1033       15
OFFILE#0             (obsolete) Records Center                1033       15
OFFILE#1             Records Center                           1033       15
OSRV#0               Shared Services Administration Site      1033       15
PPSMASite#0          PerformancePoint                         1033       15
BICenterSite#0       Business Intelligence Center             1033       15
SPS#0                SharePoint Portal Server Site            1033       15
SPSPERS#0            SharePoint Portal Server Personal Space  1033       15
SPSPERS#2            Storage And Social SharePoint Portal ... 1033       15
SPSPERS#3            Storage Only SharePoint Portal Server... 1033       15
SPSPERS#4            Social Only SharePoint Portal Server ... 1033       15
SPSPERS#5            Empty SharePoint Portal Server Person... 1033       15
SPSMSITE#0           Personalization Site                     1033       15
SPSTOC#0             Contents area Template                   1033       15
SPSTOPIC#0           Topic area template                      1033       15
SPSNEWS#0            News Site                                1033       15
CMSPUBLISHING#0      Publishing Site                          1033       15
BLANKINTERNET#0      Publishing Site                          1033       15
BLANKINTERNET#1      Press Releases Site                      1033       15
BLANKINTERNET#2      Publishing Site with Workflow            1033       15
SPSNHOME#0           News Site                                1033       15
SPSSITES#0           Site Directory                           1033       15
SPSCOMMU#0           Community area template                  1033       15
SPSREPORTCENTER#0    Report Center                            1033       15
SPSPORTAL#0          Collaboration Portal                     1033       15
SRCHCEN#0            Enterprise Search Center                 1033       15
PROFILES#0           Profiles                                 1033       15
BLANKINTERNETCONT... Publishing Portal                        1033       15
SPSMSITEHOST#0       My Site Host                             1033       15
ENTERWIKI#0          Enterprise Wiki                          1033       15
PROJECTSITE#0        Project Site                             1033       15
PRODUCTCATALOG#0     Product Catalog                          1033       15
COMMUNITY#0          Community Site                           1033       15
COMMUNITYPORTAL#0    Community Portal                         1033       15
SRCHCENTERLITE#0     Basic Search Center                      1033       15
SRCHCENTERLITE#1     Basic Search Center                      1033       15
visprus#0            Visio Process Repository                 1033       15
GLOBAL#0             Global template                          1033       14
STS#0                Team Site                                1033       14
STS#1                Blank Site                               1033       14
STS#2                Document Workspace                       1033       14
MPS#0                Basic Meeting Workspace                  1033       14
MPS#1                Blank Meeting Workspace                  1033       14
MPS#2                Decision Meeting Workspace               1033       14
MPS#3                Social Meeting Workspace                 1033       14
MPS#4                Multipage Meeting Workspace              1033       14
CENTRALADMIN#0       Central Admin Site                       1033       14
WIKI#0               Wiki Site                                1033       14
BLOG#0               Blog                                     1033       14
SGS#0                Group Work Site                          1033       14
TENANTADMIN#0        Tenant Admin Site                        1033       14
ACCSRV#0             Access Services Site                     1033       14
ACCSRV#1             Assets Web Database                      1033       14
ACCSRV#3             Charitable Contributions Web Database    1033       14
ACCSRV#4             Contacts Web Database                    1033       14
ACCSRV#6             Issues Web Database                      1033       14
ACCSRV#5             Projects Web Database                    1033       14
BDR#0                Document Center                          1033       14
OFFILE#0             (obsolete) Records Center                1033       14
OFFILE#1             Records Center                           1033       14
OSRV#0               Shared Services Administration Site      1033       14
PPSMASite#0          PerformancePoint                         1033       14
BICenterSite#0       Business Intelligence Center             1033       14
SPS#0                SharePoint Portal Server Site            1033       14
SPSPERS#0            SharePoint Portal Server Personal Space  1033       14
SPSMSITE#0           Personalization Site                     1033       14
SPSTOC#0             Contents area Template                   1033       14
SPSTOPIC#0           Topic area template                      1033       14
SPSNEWS#0            News Site                                1033       14
CMSPUBLISHING#0      Publishing Site                          1033       14
BLANKINTERNET#0      Publishing Site                          1033       14
BLANKINTERNET#1      Press Releases Site                      1033       14
BLANKINTERNET#2      Publishing Site with Workflow            1033       14
SPSNHOME#0           News Site                                1033       14
SPSSITES#0           Site Directory                           1033       14
SPSCOMMU#0           Community area template                  1033       14
SPSREPORTCENTER#0    Report Center                            1033       14
SPSPORTAL#0          Collaboration Portal                     1033       14
SRCHCEN#0            Enterprise Search Center                 1033       14
PROFILES#0           Profiles                                 1033       14
BLANKINTERNETCONT... Publishing Portal                        1033       14
SPSMSITEHOST#0       My Site Host                             1033       14
ENTERWIKI#0          Enterprise Wiki                          1033       14
SRCHCENTERLITE#0     Basic Search Center                      1033       14
SRCHCENTERLITE#1     Basic Search Center                      1033       14
SRCHCENTERFAST#0     FAST Search Center                       1033       14

visprus#0            Visio Process Repository                 1033       14

SharePoint4fun!,

Juan Manuel Herrera O.

jueves, 29 de junio de 2017

Soluciones de Granja: Error al activar una Custom Feature o Característica Personalizada

Las razones para este error pueden ser muchas, por lo que les compartiré el escenario en el que me sucedió, algunos tips y la solución para corregirlo.

Las soluciones de granja aunque no sea un modelo de programación migrable a O365 es por mucho el modelo más poderoso en el cual tenemos el control total de los recursos del servidor. Y esta vigente y por estos rumbos seguimos escogiendo desarrollar bajo este modelo.  Mientras haya version en SharePoint en Premisas y el modelo siga soportado continuaremos desarrollando con el modelo donde tenemos mayor libertad y poder sobre los recursos de los servidores de la granja de SharePoint. El único inconveniente es el desarrollo debe de suceder desde un servidor con SharePoint instalado esto lo hace más complicado y tedioso.

Vamos a la obra describamos el Escenario.

Escenario:

Versión de Visual Studio: 2015 update 3
Versión de SharePoint: SharePoint Server 2013 Standard Edition SP1
Versión de SQL Server: SQL Server 2012 Standard Edition 
Versión de Sistema Operativo: Windows Server 2012 SP1

Características de la solución:

Feature1 : 
                 Scope: Site Collection
                 Elements: Web parts
Feature2: 
                 Scope: Web Site
                 Elements: Instancia de una Lista Personalizada o Instant of Custom List.
                                  Definición de una Lista Personalizada o Custom List Definition
                                  Elementos (Paginas) de una lista personalizada o Module with Elements

Feature 1:

Feature2:

Error:
Cuando se  intantaba activar la Feature2 que creaba las listas y elementos daba el error al intentar activar la feature.  Sin mayor información.

Situación:
En la red encontrarás información como forzar la instalación agregar el FeatureID a la instancia de la lista, y pueda que esto funcione o igualmente te lo impida.  La situación real es que hay un problema, hay que averiguarlo y corregirlo.

Proceso:
Para poder averigurar el verdadero problema tuve que realizar los siguientes pasos: 

1)  El feature a nivel Web quite el parte del modulo que tiene la definición y creación de los elementos y solo deje la definición y la instancia de la lista personalizada.


 2) Realice con éxito el deployment sin errores

3) Agrege el primer elemento dentro del modulo y funcióno exitosamente



 
    Type="GhostableInLibrary" >
     
        <![CDATA[ 

 
   
     
      $Resources:core,ImportErrorMessage;
   
   
     
        -Menu
        My Visual Web Part
         None
     
   
 

             ]]>

     
...
   
 
4) Revisando la definición de elementos dentro del modulo  descubrí que hacia referencia a un calendario que no estaba creado en el sitio del deployment y tampoco tenía la definición de la lista en la solución.  Había encontrado el problema la activación de la feature a nivel Web fallaba porque no encontraba el calendario al cual hacia referencia dentro del modulo.

Definición dentro de Elements.xml del Modulo


List="Lists/Asuetos"
BaseViewID="0"
WebPartZoneID="wpCalendar2"
WebPartOrder="1"
Type="CALENDAR"
Scope="Recursive"
RecurrenceRowset="TRUE">
        <![CDATA[
     
         
             
                 
                  Cannot import this Web Part.
             
             
                 
                      Asuetos
                      False
                      False
                 
             
         
     
  ]]>
     

Solución:

Agregue a la solución de SharePoint en Visual Studio un nuevo elemento la definición de la lista tipo Calendario con su respectiva instancia y el problema se solución.





En conclusión  dire que si hay un problema de activación es porque hay algo que se esta haciendo referencia que no existe y es necesario encontrar que es lo que no esta e incluirlo en la solución.

Code4Fun!,

Juan Manuel Herrera Ocheita