Inquiridor
Tabela de Repetição no Infopath recebendo e enviando dados para 2 (duas) listas no Sharepoint 2010

Pergunta
-
Bom dia a todos,
Sou novato no desenvolvimento do Sharepoint com Infopath e preciso de uma ajuda...
Preciso criar um formulário (contendo uma tabela de repetição) no Infopath que receba e envie dados para duas listas no Sharepoint 2010.
Por exemplo:
Tenho um formulário de "Pedido de Compra" onde um solicitante informa os dados do pedido e pode incluir vários itens para serem comprados.
Imagino que a organização desse "Pedido de Compra" seria da seguinte forma.
1) Em uma lista do Sharepoint chamada "Pedido de Compra", ficariam os campos sem repetição, como: ID, Solicitante, Data do Pedido, Avaliação do Diretor, ...
2) Em outra lista do Sharepoint chamada "Itens do Pedido de Compra", ficariam os campos com repetição, como: ID do Pedido de Compra, Nome do Item, Unidade, Valor Unitário, Valor Total, ...
Essas duas lista devem ser associadas através do Pedido de Compra.ID -> Itens do Pedido de Compra.ID do Pedido de Compra.
Dúvida:
Como relacionar no Infopath essas duas listas do Sharepoint, viabilizando o envio e recebimento de dados nas mesmas?
Desde já agradeço a ajuda de todos.
Obrigado!
Todas as Respostas
-
-
Boa tarde Rafael,
Na verdade, nem todos os dados são possíveis guardar em uma única LISTA DO SHAREPOINT, visto que os "Itens do Pedido de Compra" são "valores dinâmicos" (chamo de dinâmico, pois nesse caso posso adicionar uma quantidade indeterminado de valores) no formulário.
Observe que o que estou utilizando é uma LISTA DO SHAREPOINT e não uma BIBLIOTECA DE FORMULÁRIO.
Porque não estou utilizando uma BIBLIOTECA DE FORMULÁRIO? Pois a mesma armazena os registros como um XML, e a minha intenção é armazená-las como uma lista, possibilitando futuramente uma melhor manipulação dos dados.
Era isso mesmo que você queria saber?
-
-
-
Diogo,
Acredito que vc não irá conseguir salvar em 2 locais diferentes o formulário, principalmente por ser um formulário de lista e não de biblioteca. Mas acredito que nenhum dos 2 irá trabalhar assim.
A solução que encontrei a um tempo atrás foi fazer um event receiver para que ao salvar o formulário o evento salva os dados nas listas auxiliares. Atendeu muito bem a demanda do projeto.
Atenciosamente,
Fabian André Gehrke
MCITP e MCPD SharePoint 2010
http://fabiangehrke.com.br -
Fala Fabian!
Não sei se eu consegui ser claro no que estou tentando fazer...
Estou anexando um diagrama afim de ajudar na compreensão do meu objetivo.
A idéia é que o formulário no Infopath envie e receba os dados para duas Listas do Sharepoint, porém cada lista tem uma finalidade.
A 1a lista, contém os dados "fixos" (estou chamando de fixo, pois esses dados não possuem repetição) do pedido de compra.
A 2a lista, contém os dados "de repetição" (estou chamando de repetição, pois esses dados podem ter inúmeros valores) do pedido de compra.
Porque estou separando esses dados do formulário? Pois dessa forma, futuramente, poderei fazer uma busca no BD e gerar relatórios e outros.
E se eu enviar os dados do formulário para uma Biblioteca de Formulários, teria em cada registro dessa biblioteca um XML (referente a cada pedido de compra), assim dificultando a busca no BD para gerar os relatórios.
Você entendeu o que estou objetivando?
Por favor, você pode explicar melhor essa sua solução? O que você quer dizer com "listas auxiliares"?
Obrigado!
-
Diogo,
Entendi o que vc quer fazer, a minha resposta continua a mesma.
O que chamo de listas auxiliares são as listas que serão gravados os dados mesmo, essas suas 2 listas do seu desenho.
Outra coisa, vc não vai conseguir buscar os dados do banco diretamente, quer dizer, conseguir até vai, mas vai ter trabalho e não recomendo. Recomendo utilizar as APIs do SharePoint para extrair dados.
Se vc utilizar formulário InfoPath vc pode publicar os campos no SharePoint como colunas, o que facilita muito a sua vida. Dá uma olhada neste post: http://fabiangehrke.com.br/2011/06/11/publicando-formulrio-infopath-no-sharepoint/
Atenciosamente,
Fabian André Gehrke
MCITP e MCPD SharePoint 2010
http://fabiangehrke.com.br -
Fabian,
Olhei seu link... e por acaso ele foi um dos primeiros que eu implementei aqui como teste. =]
Essa solução via Biblioteca de Formulários (armazenando em XML) não era bem o que eu queria, mas se é a única solução (de forma mais simples) utilizando Infopath e Sharepoint...
Vou verificar com meu gerente se pra ele serve dessa forma...
Obrigado pela pronta resposta!
-
Olá Diogo,
A Microsoft disponibliza nos endereços abaixo o conceito de arquitetura, materiais e codigo pronto para esta ação que você prentende desenvolver.
http://msdn.microsoft.com/en-us/library/ff961896.aspx
http://office.microsoft.com/en-us/infopath-help/add-a-connection-to-receive-external-data-HA101821256.aspx
http://blogs.msdn.com/b/infopath/archive/2007/01/15/populating-form-data-from-sharepoint-list-views.aspx
Espero ter ajudado.
Hezequias Vasconcelos
-
Boa tarde, galera!
Desculpem "pegar carona" no Thread, mas é uma dúvida simples:
Quando uso tabela de repetição em um form e publico-o no Sharepoint, o sharepoint cria a lista apenas com os dados do primeiro item desta tabela.
Pergunto, pois precisarei exportar essa lista criada com base nos formulários para o Excel, e serão necessário todos os dados inseridos na tabela de repetição.
É possivel alterar isso?!
Abs
Obrigado, Everton
- Editado almeida.eas segunda-feira, 7 de maio de 2012 18:55
-
Almeida,
Vc pode publicar o campo com separador enter, aí já fica melhor no Excel. Assim ao invés de publicar só o primeiro vai publicar todos mas separados por enter.
Não conheço nenhuma forma de fazer ele publicar mais de uma linha por vez, acredito que não funcione. Outra alternativa seria fazer um event receiver, como sugeri acima, para dividir os registros. Fiz num projeto e atendeu muito bem.
Atenciosamente,
Fabian André Gehrke
MCITP e MCPD SharePoint 2010
http://fabiangehrke.com.br -
-
Everton,
Não sei se fica igual, não lembro como é um multiline num textbox em VBA. Testa a solução aí e veja se ajuda no seu problema ;).
Atenciosamente,
Fabian André Gehrke
MCITP e MCPD SharePoint 2010
http://fabiangehrke.com.br- Sugerido como Resposta Hezequias VasconcelosModerator terça-feira, 26 de junho de 2012 13:39
-
Bom dia Fabian!
Aproveitando o assunto, gostaria de fazer uma pergunta:
Tenho um formulário Infopath que possui dois campos (Caixa de Listagem Suspensa) vinculados à listas externas. Através do filtro de dados, consegui criar um "dropdownlist" em que o segundo campo só exibe o conteúdo de acordo com a primeira seleção.Até aí, td ok. O problema é q existe uma terceira lista que exibo através de uma tabela de repetição. Quando o formulário é aberto o está funcionando corretamente, mas qndo vou verificar um formulário já salvo, o conteúdo da tabela de repetição não aparece.
O que devo fazer?
Desde já, agradeço.
-