Home > SharePoint - Tips & Tricks, SharePoint - TroubleShoothing > GetUserListSchema(): Failed to get the list schema XML for feature

GetUserListSchema(): Failed to get the list schema XML for feature


Olá! Smile

Cenário:

Montando pacotes de deploy para o SharePoint 2010, podemos automatizar toda a criação de fields, listas, contenttypes, etc.

Mas, dependendo da necessidade, é preciso “configurar” os pacotes com ordem de instalação de features e outras variáveis.

Quando criamos ListDefinitions e queremos criar instâncias dessas definições, usando o ListInstance no pacote, precisamos de uma pequena configuração adicional caso a ListInstance esteja em uma feature diferente da feature que está o ListDenifition.

Se não realizar essa configurações opcional (que está logo mais abaixo, na seção “Solução”), o erro abaixo é apresentado.

ERRO:

“<nativehr>0x81072101</nativehr><nativestack></nativestack>Não é possível concluir esta ação. Tente novamente.”

E nos LOGS do SharePoint (ULS), encontramos erros com um pouco mais de detalhes:

“GetUserListSchema(): Failed to get the list schema XML for feature…” e

“Failed to find the list schema for FeatureId …, list template ID …. Cannot create list in web … at URL ….”

SOLUÇÃO:

De acordo com os erros, a ListInstance não está conseguindo criar a lista baseado no template especificado (determinado no ListDefinition) por que não o encontra o schema do template.

Se o ListDefinition e o ListInstance estiverem na mesma feature, o SharePoint consegue entender e encontrar o schema. Mas, se estão em features separadas, precisamos informar qual é a feature que possui o ListDefinition, do ListInstance que estamos criando.

No Elements.xml do ListInstance, referencie a feature que tem o ListDefinition:

 

<?xml version="1.0" encoding="utf-8"?>

<Elements xmlns="http://schemas.microsoft.com/sharepoint/"&gt;

<ListInstance Title="Minha Nova Instância"

OnQuickLaunch="TRUE"

TemplateType="10001"

FeatureId="c51f96ee-a686-4dab-8e48-f09d351b3a4f"

Url="Lists/MinhaInstancia"

Description="My List Instance">

</ListInstance>

</Elements>

 

Abraço!

Advertisements
  1. January 3, 2013 at 12:07

    Thiago,

    Pode me ajudar ? No meu sharepoint, eu uso o campo ID para meu controle interno, como se fosse o número de pedido… Acontece que um funcionário meu excluiu um item, e eu depois exclui da lixeira, agora meu sistema está pulando essa sequência, já tentei de tudo e não consigo, e não posso ficar com esse espaço,

    Sobre a folha de dados, fiz tudo conforme você falou, agora dá um erro assim:

    O Access Web Datasheet está tentando recuperar dados de outro domínio. Você será redirecionado para uma página de erro. Contate o administrador do sistema para resolver esse erro.

    Pode me ajudar ?

    Desde já agradeço, att

  2. January 4, 2013 at 14:18

    Braulio,

    O campo ID é interno do SharePoint, e ele é sequencial. Quando um item é excluído, não há o que fazer.

    Como você precisa controlar o ID, e ele não pode existir “buracos” no intervalo de items, você deve customizar e utilizar um campo próprio (criado e controlado por você). Não deve utilizar o campo ID para isso, pois o SharePoint controla ele e não há como interferir nessa sequência.

    Abraço!

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: