domingo, 14 de diciembre de 2014

Error “Unable to open Lookup list” con columnas de taxonomía


Las columnas de taxonomía utilizan por debajo una referencia a la lista “TaxonomyHiddenList”. Durante una migración o una restauración de contenido podemos perder esta referencia provocando un error general al visualizar la columna o intentar utilizarla desde cualquiera de las vistas de una lista o biblioteca, encontrado en el log entradas del tipo:

System.Runtime.InteropServices.COMException: Esta lista no existe.  La página seleccionada contiene una lista que no existe. Es posible que otro usuario la haya eliminado.

Error while executing web part: Microsoft.SharePoint.SPException: Esta lista no existe.  La página seleccionada contiene una lista que no existe. Es posible que otro usuario la haya eliminado.

Si analizamos los logs por encima de estos errores encontraremos una traza con el ID de la lista utilizada:

Unable to open Lookup list '{60ef64a9-fc75-47c0-b2cf-f2b59001eea3}'.[Error was 0x81020026]

 

Para solucionar el problema debemos actualizar el esquema de la columna de taxonomía con el ID de la lista TaxonomyHiddenList y el ID del sitio raíz adecuados. El esquema de una columna lo encontraremos en la propiedad “SchemaXml” aunque si trabajamos con columnas localizadas utilizaremos la propiedad “SchemaXmlWithResourceTokens”.

Comparto con vosotros un script con el que podréis actualizar las referencias de cualquier columna de taxonomía https://gallery.technet.microsoft.com/Unable-to-open-lookup-list-e0c59b0b





 
if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null) {
    Add-PsSnapin Microsoft.SharePoint.PowerShell
}
 
 
function Fix-UnableToOpenLookupList( [Parameter(Mandatory=$true)][string] $siteCollectionURL, [Parameter(Mandatory=$true)][string] $internalFieldName)
{
    $site = get-spsite $siteCollectionURL
    $web = $site.RootWeb
 
    $field = $web.Fields.GetFieldByInternalName($internalFieldName)
    if($field -eq $null)
    {
        Write-Host -ForegroundColor Red "ERROR: Missing $($internalFieldName) column."
    }
    else
    {
        $txHiddenList = $web.Lists["TaxonomyHiddenList"]
        if($txHiddenList -eq $null)
        {
            Write-Host -ForegroundColor Red "ERROR: Missing TaxonomyHiddenList."
        }
        else
        {
            $strXmlSchema = "$($field.SchemaXmlWithResourceTokens)
"
            $xmlSchema = [xml]$strXmlSchema
            $xmlfield = $xmlSchema.r.SelectSingleNode("Field")
            $xmlfield.List = "{$($txHiddenList.ID)}"
            $xmlfield.WebID = "{$($web.ID)}"
 
            $strXmlSchema = $xmlfield.OuterXml
            $field.SchemaXml = $strXmlSchema
            $field.Update($true)
 
            Write-Host -ForegroundColor Green "Done."
        }
    }
}
 





Un ejemplo de un esquema de columna de tipo Taxonomía sería el siguiente XML.
       List="{60ef64a9-fc75-47c0-b2cf-f2b59001eea3}"
       WebId="3c8e614a-be52-4210-93ac-8b40d3a85227"

       ShowField="Term$Resources:core,Language;"
       StaticName="EstimationType"
       Group="$Resources:EPContentManagement,EPGroupName"
       ID="{b04c8f3f-cbbf-4fdc-b646-639377c1395a}"
       SourceID="{5ec29463-9b4b-403d-b6c1-958d526382b7}"
       Name="EstimationType" Mult="FALSE" Version="6" Required="FALSE" EnforceUniqueValues="FALSE" ShowInEditForm="FALSE" ColName="int3" RowOrdinal="0">
 
 
   
     
        SspId
        http://www.w3.org/2001/XMLSchema

" p4:type="q1:string" xmlns:p4="http://www.w3.org/2001/XMLSchema-instance">7f76724b-947d-4aaf-a042-fcbe5a247852>
     
     
        GroupId
     

     
        TermSetId
        http://www.w3.org/2001/XMLSchema
" p4:type="q2:string" xmlns:p4="http://www.w3.org/2001/XMLSchema-instance">cf28e84e-ab80-4727-a95e-55a183a63825>
     
     
        AnchorId
        http://www.w3.org/2001/XMLSchema
" p4:type="q3:string" xmlns:p4="http://www.w3.org/2001/XMLSchema-instance">00000000-0000-0000-0000-000000000000>
     
     
        UserCreated
        http://www.w3.org/2001/XMLSchema
" p4:type="q4:boolean" xmlns:p4="http://www.w3.org/2001/XMLSchema-instance">false>
     
     
        Open
        http://www.w3.org/2001/XMLSchema
" p4:type="q5:boolean" xmlns:p4="http://www.w3.org/2001/XMLSchema-instance">false>
     
     
        TextField
        http://www.w3.org/2001/XMLSchema
" p4:type="q6:string" xmlns:p4="http://www.w3.org/2001/XMLSchema-instance">{91e2b0ab-363b-47de-9c95-5d6cdad201eb}>
     
     
        IsPathRendered
        http://www.w3.org/2001/XMLSchema
" p4:type="q7:boolean" xmlns:p4="http://www.w3.org/2001/XMLSchema-instance">false>
     
     
        IsKeyword
        http://www.w3.org/2001/XMLSchema
" p4:type="q8:boolean" xmlns:p4="http://www.w3.org/2001/XMLSchema-instance">false>
     
     
        TargetTemplate
        http://www.w3.org/2001/XMLSchema
" p4:type="q9:string" xmlns:p4="http://www.w3.org/2001/XMLSchema-instance" />
     
     
        CreateValuesInEditForm
        http://www.w3.org/2001/XMLSchema
" p4:type="q10:boolean" xmlns:p4="http://www.w3.org/2001/XMLSchema-instance">false>
     
     
        FilterAssemblyStrongName
        http://www.w3.org/2001/XMLSchema
" p4:type="q11:string" xmlns:p4="http://www.w3.org/2001/XMLSchema-instance">Microsoft.SharePoint.Taxonomy, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c
     
     
        FilterClassName
        http://www.w3.org/2001/XMLSchema
" p4:type="q12:string" xmlns:p4="http://www.w3.org/2001/XMLSchema-instance">Microsoft.SharePoint.Taxonomy.TaxonomyField>
     
     
        FilterMethodName
        http://www.w3.org/2001/XMLSchema
" p4:type="q13:string" xmlns:p4="http://www.w3.org/2001/XMLSchema-instance">GetFilteringHtml>
     
     
        FilterJavascriptProperty
        http://www.w3.org/2001/XMLSchema
" p4:type="q14:string" xmlns:p4="http://www.w3.org/2001/XMLSchema-instance">FilteringJavascript>
     
   
 

domingo, 30 de marzo de 2014

Office para iPad en detalle I

El pasado 25 de Marzo se anunció la disponibilidad de Office para iPad para descarga desde Apple Store. En concreto disponemos de las nuevas aplicaciones de Word, Excel y PowerPoint (También podemos utilizar OneNote pero ya estaba disponible anteriormente). Office para iPad consiste en una versión mucho más avanzada de Office mobile pensada para trabajar con documentos en un entorno iPad (iOs7) de forma conectada tanto para visualizar documentos como para editarlos/crearlos.

 

Licenciamiento

La versión de Office para iPad se ofrece de forma gratuita para visualización de documentos y para los usuarios que dispongan de una cuenta de Office365 dispondrán de la posibilidad de editar y crear documentos desde iPad.

Desde el App Store encontraremos tres apps distintas para Word, Excel y PowerPoint que podremos descargar de forma gratuita.

imageimageimage

 

Al abrirlas nos preguntará si deseamos utilizarla de forma gratuita o comprar Office 365 Home. Si seleccionamos la opción de compra podremos adquirirla con nuestro usuario de App store o bien utilizar una subscripción Office365 Home que hayamos adquirido previamente. En este caso si seleccionamos la opción “ya tengo una subscripción” nos preguntará por nuestro usuario de App Store y no por el de Office365.

Para activar Office para iPad con cuenta de Office365 accederemos a la aplicación desde la opción gratuita, a continuación seleccionaremos el icono del “carrito de compra” que encontraremos en la parte inferior de la aplicación y pulsaremos en “Activar iniciando sesión”. Aparecerá entonces una ventana donde tendremos que introducir las credenciales de una cuenta de Office365.

imageimage

 

Podemos utilizar con los planes de Office365: Office 365 Home, Office 365 Small Business Premium, Office 365 Midsize Business, Office 365 E3 and E4 , Office 365 Education A3 and A4, Office 365 ProPlus, y Office 365 University.

 

Características

Entre las características de Office para iPad destacan:

  • Experiencia de usuario similar a la de escritorio: disponemos de una misma experiencia desde el Ribbon aunque siempre guardando la apariencia de un app de iPad.
  • Integración con OneDrive y OneDrive empresarial: Podemos iniciar sesión en One Drive y seguir trabajando con los documentos que tuviéramos almacenados o guardarlos directamente sobre nuestro espacio de OneDrive.
  • Compartir documentos por email o mediante un enlace.
  • Edición simultánea de un documento: varios usuarios pueden editar sobre el mismo documento al mismo tiempo ( yo lo he probado desde iPad y Word Online).
  • Disponibilidad de muchas de las funcionalidades de escritorio: como imágenes, tablas, SmartArt, fórmulas, gráficos, formatos condicionales, filtros, …

 

Word para iPad

imageimageimageimage

 

imageimageimageimageimage

imageimageimage

 

Power Point para iPad

imageimageimageimageimageimage

lunes, 11 de noviembre de 2013

Error Unknown type 'ThemeResource' in XML namespace

Este error puede saltar al crear una Build desde TFS Online de un proyecto tipo Windows 8.1.

Para solucionarlo habrá cambiar la plantilla de proceso a “TfvcTemplate.12.xaml”.

clip_image002

miércoles, 30 de octubre de 2013

Dónde puedo descargar el cliente Office 2013 y Lync 2013 en Office365?

Si el administrador nos habilita el uso de Office o Lync podremos descargarnos el software desde el propio Office365 y utilizarlo con la licencia de Office365.

desde cualquiera de los servicios de Office365 dispondremos de la opción “Configuración de Office365” en el área de nuestro perfil de la barra superior. Desde esta pantalla podremos modificar las preferencias de nuestro usuario de Office365 y descargarnos el software habilitado.

image

Encontraremos una sección con los enlaces para descarga del cliente Office 2013, Lync 2013, herramientas de escritorio y una sección donde poder encontrar los enlaces de las aplicaciones para dispositivos móviles o tabletas (Windos Phone, iPhone, iPad, BlackBerry, Android).

Cuando instalemos el cliente Office no nos pedirá código de licencia, y será al arrancarlo cuando tendremos que indicar una cuenta de usuario de Office365 válida. Office utilizará esta cuenta para validar la licencia y poder integrarse con otros servicios como SharePoint Online.

imageimage

image

image

martes, 29 de octubre de 2013

Cómo activar ISE para PowerShell

La consola de PowerShell ISE (Windows PowerShell Integrated Scripting Environment ) nos proporciona un entorno avanzado para escribir y editar scripts de PowerShell, probar incluso poder depurarlos.

Por defecto la consola viene deshabilitada por lo que tendremos que activarla como una característica de Windows desde el Server Manager:

  • Desde la consola de Administración de servidor > seleccionamos “Características”
  • En la parte de la derecha seleccionamos “Agregar características”
  • Marcamos la característica “Windows PowerShell Integrated Scripting Environment” y aceptamos. Es necesario que previamente tengamos instalado .Net Framework 3.5 SP1.

imageimageimage

 

image

Cambiar la foto del perfil de Office365

La foto del usuario de Office365 se almacena internamente en el AD asociado en el atributo thumbnailPhoto, para cambiarla podemos realizarlos desde varios sitios:

Desde el perfil de SharePoint:

image

Desde el perfil de OWA(Outlook Web Access):

image

Al final nos aparecerá la misma página emergente con una url del tipo https://outlook.office365.com/ecp/PersonalSettings/EditAccount.aspx?rfr=olk&chgPhoto=1&exsvurl=1&realm=mysuscription.onmicrosoft.com&IsDlg=1&wa=wsignin1.0

image

 

Siendo administrador también es posible subir las fotos para otros usuarios desde PowerShell (blog Marc Valk).

viernes, 25 de octubre de 2013

Participa en los Grupo de trabajo de MadPoint‏

Desde MadPoint os proponeros participar en un grupo de trabajo para el desarrollo de una aplicación para SharePoint y Office365.

El objetivo de los grupos de trabajo consiste en juntar a varios profesionales para implementar para la comunidad alguna aplicación pequeñita para asentar conceptos y sacar a la luz problemáticas que los típicos "Hola mundo" no nos cuentan. El resultado del grupo consistirá en publicar un App en el store y publicar en MSDN cómo se hizo, cosas aprendidas, guías, materiales y cosas así.

La dinámica del grupo consistirá en distintas reuniones presenciales para definir el proyecto, repartir las tares y revisar los avances.

El grupo estará compuesto por un máximo de 10 personas activas, pudiendo participar en las reuniones cualquier otra persona que no esté en el grupo.

Si estás interesado en participar envíanos un correo a mariocortesflores@hotmail.com y miguel.tabera@outlook.com con el asunto “[Grupo de trabajo MadPoint]” e indícanos tu intención en participar y un poco tu perfil o lo que haces.
En breve publicaremos más datos de fechas de inicio y miembros del grupo.

 

FAQS

Vale algo apuntarse al grupo de trabajo?

No, no tiene un coste, solo exigiremos unos conocimientos básicos.

Cuándo acaba el plazo para apuntarme?

Cuando se acaben las plazas, ahora mismo quedan pocas plazas!!!

Voy a ganar algo con el grupo o sus resultados?

No, el objetivo del grupo es didáctico. El app se publicará para descarga gratuita y todos los fuentes y documentos se compartirán con la comunidad al final del proyecto.

Puedo participar de alguna manera sin estar en el grupo?

Por supuesto, podrás venir a las reuniones y compartir con todos tus comentarios

Dónde se reunirá el grupo?

En Madrid, a través del grupo de MadPoint mantendremos al corriente.