none
Dúvida Com Formulários - Infopath RRS feed

  • Pergunta

  • Bom Dia Forum,

    Estou montando um formulário no Infopath para publicar no sharepoint.

    Meu formulário basicamente será uma O.S (Ordem de Serviço).

    Minha dificuldade é o seguinte: Esta ordem de serviço só será preenchida a partir de uma proposta feita pelo comercial. Quando a OS é preenchida significa que a proposta feita pelo comercial está com o Status Fechada. O comercial gerencia suas propostas pelo sharepoint também. Existe uma lista no sharepoint onde o comercial armazena todas as propostas  que foram feitas para clientes. Na OS eu preciso colocar um campo Nome do Projeto (que nada mais é o projeto que está com Status fechado nas propostas do comercial). Como eu faço no Infopath para que ele puxe os dados das propostas que possuem o status fechada?? Sendo que esses dados estão em uma lista do sharepoint?? Eu consigo fazer a ligação e puxar TODAS as propostas.. mas preciso pegar só as que possuem status fechada... alguem poderia me ajudar???

    Outra questão é a seguinte:
    Em alguns campos da minha ordem de serviço eu quero que somente determinados usuários tenham permissão para alterar os valores. Quero bloquear alguns campos para que certos usuárioa apenas visualizem o valor do campo e não alterem. Como eu poderia fazer isto???

    Obrigada.
    Fernanda Lobo
    sexta-feira, 2 de outubro de 2009 14:20

Todas as Respostas

  • Olá Fernanda,

    Como vai você?

    Então, vamos lá, primeiro vamos falar do Filtro:

    1. Crie o DataSource para retornar os dados da sua Lista. Você ja fez isso, pois ja disse que conseguiu retornar Todos os dados da lista, entretanto você tem que configurar seu DataSource para retornar o campo Status, pois é à partir dele que iremos fazer o filtro adiante. Caso o campo ainda não esteje sendo retornado, vá em Tools -> Data Connection, selecione seu Data Source e clique em Modify. Siga o Wizard de configuração e na secção para selecionar os campos que devem ser retornados, selecione também o campo Status.
    2. Clique no contole que irá mostrar as Propostas com o botão direito e vá em propriedades.
    3. Na aba Data, vá no campo Entries e clique no botão Select XPath. Esse passo você já deve ter feito também. Aqui você seleciona a tabela de repetição, é o nó que possui uma setinha azul e possui os campos que serão mostrados no controle.
    4. Agora antes de clicar em Ok, vem o "X da questão". Abaixo tem o botão Filter Data, clique nele. Será aberto o Wizard para filtrar os datos.
    5. Clique no botão Add para adiconar um novo filtro, escolha o Campo Status, o tipo de comparação is equal to e no campo valor selecione Type Text e entre com o valor do status quando a proposta está fechada, "Fechada" / "Approved", depende de como este valor está em sua lista.
    6. Pressione Ok duas vezes e selecione os campos que devem aparecer no controle nas propriedades Value e Display Name.

    Uffa, acabamos a primeira parte :), agora sobre o controle de permissões nos campos:

    Primeiramente você tem que retornar as informações do usuário atual em seu InfoPath form. Para tal, siga os procedimentos abaixo: http://baigadil.blogspot.com/2008/07/get-current-user-for-infopath-and-set.html

    Feito isso, você pode criar roles nos campos e também no botão Salvar. Você cria roles do tipo Conditional Formating, onde escolhe o campo que armazenou o usuário, no link acima o campo utilizado foi o CurrentUserName, coloca a comparação Is Equal To e faz a comparação com os usuários aplicando as formatações como Hide this Control ou Disable this Control (Read only).

    É isso Fernanda, espero ter ajudado.

    Abraços.


    Michael M. Lima
    MCTS: WSS 3.0 Config/Dev | MOSS 2007 Config/Dev
    mlimablog.spaces.live.com | www.CanalSharePoint.com.br
    segunda-feira, 5 de outubro de 2009 12:36
  • Olá Michael,

    Acabei de ver seu post, primeiramente gostaria de agradecer seu retorno!

    Vou realizar os passos agora.. Uma questão.. Em formulário habilitados para o navegador é possível fazer este filtro??

    Desde já agradeço.

    Obrigada.
    Fernanda Lobo
    segunda-feira, 5 de outubro de 2009 13:34
  • Em relação ao controle de permissões nos campos fiz o processo conforme citado, porém quando acesso meu formulário OnLine ele me retorna o seguinte erro:


    Erro Durante Processamento do Formulário
    Detalhes do erro:

    Erro ao acessar a fonte de dados.
    Entrada adicionada ao log de eventos do Windows do servidor.
    Identificação do Log: 5566


    Fernanda Lobo
    segunda-feira, 5 de outubro de 2009 14:11
  • Olá Fernanda,

    Geralmente esse erro é problema de permissão, verifique se você configurou o endereço de seu WebService certinho, <SeuSite/_vti_bin/UserProfileService.asmx>, para ter certeza de estar acessando o WebService do seu próprio site, no qual o usuário de contexto deve ter permissão.
    Se estiver tudo certo e continuar o problema, nos passe os detalhes do erro (Iniciar -> Configurações -> Ferramentas Administrativas -> Event Viewer), procure pelo código 5566 e copiei os detalhes do erro).

    Abraços.
    Michael M. Lima
    MCTS: WSS 3.0 Config/Dev | MOSS 2007 Config/Dev
    mlimablog.spaces.live.com | www.CanalSharePoint.com.br
    segunda-feira, 5 de outubro de 2009 14:29
  • Olá Michael,

    Revisei as operações e está tudo correto.

    Meu endereço de WebService está correto, http://meusite/_vti_bin/UserProfileService.asmx, o usuário que estou usando é o administrator (logo o mesmo ter permissão)

    Acessei o servidor para pegar o detalhe do erro porém no Event Viewer não está mostrando o log....

    Fernanda Lobo
    segunda-feira, 5 de outubro de 2009 14:42
  • Olá Fernanda,

    Desculpe pelo atraso na resposta,

    Fica um tanto difícel tentar descobrir o que está acontecendo sem ter os detalhes do erro, mas posso te dar uma outra opção, entretanto envolve código:

    http://blogs.msdn.com/timpash/archive/2005/11/18/C-Sharp-Example-to-Get-Current-User-With-No-Certs-Required.aspx

    Se você não puder usar código, vamos tentar resolver o erro, pra isso tente mais uma vez achar o Log no event viewer, e se não encontrar, tente olhar os Logs do próprio SharePoint que ficam armazenados em arquivos no caminho que estiver definido no Central Admin -> Operations -> Diagnostic Logging.

    Abraços!
    Michael M. Lima
    MCTS: WSS 3.0 Config/Dev | MOSS 2007 Config/Dev
    mlimablog.spaces.live.com | www.CanalSharePoint.com.br
    quarta-feira, 7 de outubro de 2009 11:57
  • Olá Michael,

    Agradeço seu interesse em ajudar, porém realmente não estou conseguindo fazer o procedimento acima.. continua dando o erro 5566. Procurei na internet e vi que várias pessoas encontram-se com o mesmo erro e não estão encontrando a solução.

    Tentei novamente pegar os logs no windows (event viewer) mas ele não grava o erro lá. Tentei olhar no SharePoint e não encontrei também.

    Qualquer novidade posto no forum.

    Agradeço a atenção.


    Fernanda Lobo
    quarta-feira, 7 de outubro de 2009 17:06