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







                                  

jueves, 1 de junio de 2017

Tip del día: Sabias porque no logras ver otros servidores de SQL Server

El servicio de SQL Browser es el responsable de permitir descubrise a si mismo y permitir a otras instancias o servidores que lo descubran.

Probablemente esta apagado solo debes de encenderlo.



Si no lo siguies viendo probablemente es el firewall que esta bloqueando el puerto y protocolo de comunicación

Miremos la información oficial

SQL Server Browser service
UDP port 1434

The SQL Server Browser service listens for incoming connections to a named instance and provides the client the TCP port number that corresponds to that named instance. Normally the SQL Server Browser service is started whenever named instances of the Database Engine are used. The SQL Server Browser service does not have to be started if the client is configured to connect to the specific port of the named instance.



Eso es todo por este artículo.

SQL4Fun!,

Juan Manuel Herrera Ocheita