Recentemente vi a necessidade de enviar dados de um formulário criado no InfoPath para outra fonte de dados.
Isso parecia uma tarefa complicada, criar o formulário, popular na lista, criar um programa para ler a lista e jogar no webservice. A algum tempo descobri que era possivel criar ações de salvar os dados em outras fontes, mas o problema é que eu ainda tinha que salvar o formulário ou cancelá-lo após clicar no botão "Submit".
Solução bem mais fácil me foi indicado por acaso por um aluno (obrigado Vitor da Suncoke) quando ele comentou que encontrou uma coisa bem interessante, na tela abaixo:
Ou seja, você pode criar uma forma de submeter os dados customizada e alterar o submit padrão. Como fazer isso?
1- Clique na Toolbox em "Data Sources" e crie uma fonte de dados para "Submit":
2- Continue no wizard com os dados solicitados conforme o tipo de destino dos dados que você configurou.
3- Retire o botão padrão de "Save" e "Save As" e substitua por um botão do tipo "Submit":
Pronto!!!! Agora seu formulário poderá enviar email, gravar em outros bancos, enviar dados para webservices diretamente.
Problema
Muitas vezes queremos criar formulários no Sharepoint utilizando o InfoPath e nos deparamos com um problema ao executar o formulário no modo browser.
"Form error...Access denied (5)"
Causa
Este erro acontece porque por default o Sharepoint está configurado para não permitir o uso de senhas "embebed" na string de conexão.
Ele irá ignorar a senha e o usuário utilizado, porque muitas vezes estes são o desenvolvedor. Com isso seria necessário dar permissão a conta da máquina ou então ao usuário do serviço do Sharepoint.
Solução
Entre no Central Administration e na parte de aplicações escolha dentro do grupo "InfoPath Forms Services":
Ao entrar na tela de configurações permita que se utilize strings de conexão com usuário e senhas especificadas: