Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rob Junior

Alimentar um Webservice com Parâmetros

Recommended Posts

Bom Dia,

 

Sei que sou novato mas é um problema que está valendo minha cabeça!!!

 

Temos um bd em Access que armazena atendimentos (Trabalho no SEBRAE) do pessoal do interior que não tem internet em alguns locais do interior do AM.

 

Exportava esses atendimentos desta base em Access para uma base SQL através de Scripts SQL, mas o pessoal da empresa de produz o software de atendimento (SIACWEB da WIT Sistemas) e que tem um sistema web que só deixa que eu dê entradas de dados através de alguns webservices....

 

Eu fiz alguns cursos na BF sobre .Net mas foram mais direcionados a web e nesse caso preciso de programação desktop... eu sei criar conexão no VS 2008 e mostrar os dados do banco em Access num gridview numa aplicação Windows, essa consulta fica armazenada num dataset... preciso jogar os dados deste dataset para o webservice mais não sei como alimentá-lo!!!!

 

na documentação do WS tem apenas isso:

 

Trans_Ins_CadastroCompletoPJ

Insere cadastro completo de Empreendimento, e retorna código gerado, ou erro.

 

en_Parametros - String formada por:

CPF - CPF do usuário - VARCHAR(15) contendo apenas números - campo obrigatório

| Cargo - Código do Cargo da Pessoa Física - INTEGER - campo obrigatório. Recuperar a partir de Util_Rec_Cargos

| CgcCpf - CNPJ do Empreendimento - VARCHAR(15) contendo apenas números - campo opcional : 0 para Anular.

| NomeRazaoSocial - Razão Social do Empreendimento - VARCHAR(120) - campo opcional

| NomeAbrevFantasia - Nome Fantasia do Empreendimento - VARCHAR(80) - campo opcional

| CodigoAtivEconomica - Código da Atividade Econômica - VARCHAR(9) - campo obrigatório. Recuperar a partir de Util_Rec_AtividadesEconomicas

| NumFunc - Número de Pessoas ocupadas - SMALLINT - campo obrigatório

| CodSetor - Código do setor - SMALLINT - campo opcional: 0 para Anular.

| Faturam - Faturamento do Empreendimento - NUMERIC de até 18 posições, contendo apenas números - campo opcional: espaço em branco para anular

| DatAbert - Data de Abertura do Empreendimento - VARCHAR(6) no formato mmaaaa - campo obrigatório

| DatFech - Data de Fechamento do Empreendimento - VARCHAR(6) no formato mmaaaa - campo opcional: espaço em branco para anular

| CodConst - Código do Tipo da Empresa - SMALLINT - campo obrigatório. Recuperar a partir de Util_Rec_TiposDeEmpresa

| DescEndereco - Descrição do Endereço - VARCHAR(150) - campo obrigatório: espaço em branco para end.internacional

| Cep - CEP do endereço - VARCHAR(8) contendo apenas números - campo obrigatório: espaço em branco para end.internacional

| Telefone1 - Primeiro Tel. Comercial para comunicação - VARCHAR(60) - campo opcional: espaço em branco para anular

| Telefone2 - Segundo Tel. Comercial para comunicação - VARCHAR(60) - campo opcional: espaço em branco para anular

| CodPais - Código do País - SMALLINT - campo obrigatório: 0 para end.internacional. Recuperar a partir de Util_Rec_Paises

| CodEst - Código do Estado - SMALLINT - campo obrigatório: 0 para end.internacional. Recuperar a partir de Util_Rec_Estados

| CodCid - Código da Cidade - INTEGER - campo obrigatório: 0 para end.internacional. Recuperar a partir de Util_Rec_MunicipiosPorEstado

| CodBairro - Código do Bairro - INTEGER - campo obrigatório: 0 para end.internacional. Recuperar a partir de Util_Rec_BairrosPorMunicipio

| Complemento - Complemento do endereço - VARCHAR(70) - campo obrigatório: espaço em branco para end.internacional

| EndInternacional | - Endereço Internacional - VARCHAR(250) - campo opcional: espaço em branco para anular

 

Exemplo: '12341234321|2|012453689754215|empresa de exemplo|emp. exemplo|015132201|23|3|23423|122000| |3|endereço exemplo|51020021| | |31|18|324|2154| | |'

 

não estou mais sabendo como passar do Dataset para o WS e tenho várias outras tabelas para migrar... mas se eu soubesse o código como migrar apenas um eu me virava pra migrar as outras...

 

Lembrando: Sou programador ASP e a última ferramenta MS que tinha trabalhado era o Visual Basic 6... Agora estou num processo de reciclagem e ainda estou engatinhando em .Net...

 

Se alguém puder me ajudar agradeceria muito pois meu patrão está pensando seriamente em contratar outra pessoa se eu não resolver este problema...

 

Obrigado a Todos!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rob Junior, seja bem vindo ao Fórum iMasters, conheça nossas regras: Regras do Fórum

 

Não tem nada que fará exportação automática do DataSet para o serviço. Pesquise na net como consumir um web service, você terá que extrair os dados do seu DataSet manualmente e alimentar seu Web Service.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe, talvez você possa achar que sou até meio "devagar" mas, o fato de eu "consumir" um webservice quer dizer que eu apenas vou captar a informação dele?

 

Neste caso eu nao precisaria puxar informações dele mas apenas enviar...

 

Obrigado, em todo caso!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos, estou tentando bastante e passo o dia todo trabalhando nisso mas ainda não consegui muita coisa...

 

tentei instanciar o WS e alimentar manualmente sem o banco mesmo, apenas para ver se funcionava:

 

private void button1_Click(object sender, EventArgs e)

{

try

{

SiacCadastro.SiacWEB_CadastroAtenderWSSoapClient SIAC = new Atendimentos_SEBRAEAM.SiacCadastro.SiacWEB_CadastroAtenderWSSoapClient();

SIAC.Trans_Ins_CadastroCompletoPF("01230123012");

MessageBox.Show("Registro Gravado com Sucesso");

}

catch (Exception ex)

{

MessageBox.Show(ex.ToString());

}

}

 

}

Ele aparece a mensagem de de sucesso!!! mas nao vai nada pro banco, até pq ele precisava de uma séries de argumentos:

'01230123012|senhaex|Nome exemplo|Abrev. ex|3|27121978|1|rua waldemar de oliveira|51020021|31|18|5406|7315|complemento de exemplo| |emailexemplo@wit.com.br|35647896|32211445|99879856|2|'

procuro os dados no banco mas não encontro!! esse "01230123012" é referente ao primeiro campo, que seria o campo de CPF

 

Quando coloco um segundo parâmetro:

private void button1_Click(object sender, EventArgs e)

{

try

{

SiacCadastro.SiacWEB_CadastroAtenderWSSoapClient SIAC = new Atendimentos_SEBRAEAM.SiacCadastro.SiacWEB_CadastroAtenderWSSoapClient();

SIAC.Trans_Ins_CadastroCompletoPF("60459301268","senhaex");

MessageBox.Show("Registro Gravado com Sucesso");

}

catch (Exception ex)

{

MessageBox.Show(ex.ToString());

}

}

 

}

ele me dá um erro no meu form:

No overload for method 'Trans_Ins_CadastroCompletoPF' takes '2' arguments

 

Esses códigos estão certos?

pq a mensagem de sucesso aparece?

Pq não vejo nada no Banco?

como faço para adicionar mais argumentos?

 

Galera, obrigado pela força até aqui!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por que não esta gravando no banco não tem como a gente saber. Como vamos saber o que tem por tras do Web Service?

O erro é por que o método deve estar esperando apenas 1 parâmetro e não dois. Para passar mais parâmetro você deve alterar o web service para receber mais parâmetros.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por que não esta gravando no banco não tem como a gente saber. Como vamos saber o que tem por tras do Web Service?

O erro é por que o método deve estar esperando apenas 1 parâmetro e não dois. Para passar mais parâmetro você deve alterar o web service para receber mais parâmetros.

 

Abraços...

 

Cara, eu não tenho como ter acesso ao código desse webservice pois ele foi feito pela empresa que distribui o software...

 

Mas valeu!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Como você e a documentação disseram, o serviço precisa de diversos parâmetros, porém, eles são passados como um no formato string e separados por "|".

 

No seu exemplo:

 

SIAC.Trans_Ins_CadastroCompletoPF("60459301268","senhaex");

 

Você separou os valores por "," como se fossem dois parâmentros. O correto seria:

 

SIAC.Trans_Ins_CadastroCompletoPF("60459301268|senhaex");

 

Porém, você precisa passar todos os outros dados, nem que sejam em branco.

 

Como foi dito, se não há operação no web service que recebe dataset (muito provavel, pois dataset é .net e não faz muito sentido um serviço que só trabalhe com .net) então você terá que ler registro a registro do dataset e montar sua string no formato esperado pelo serviço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Como você e a documentação disseram, o serviço precisa de diversos parâmetros, porém, eles são passados como um no formato string e separados por "|".

 

No seu exemplo:

 

SIAC.Trans_Ins_CadastroCompletoPF("60459301268","senhaex");

 

Você separou os valores por "," como se fossem dois parâmentros. O correto seria:

 

SIAC.Trans_Ins_CadastroCompletoPF("60459301268|senhaex");

 

Porém, você precisa passar todos os outros dados, nem que sejam em branco.

 

Como foi dito, se não há operação no web service que recebe dataset (muito provavel, pois dataset é .net e não faz muito sentido um serviço que só trabalhe com .net) então você terá que ler registro a registro do dataset e montar sua string no formato esperado pelo serviço.

 

Roberto, é exatamente isso que você falou sobre os parâmetros, muito obrigado pelo Help!!!

 

Devagar estou desbravando as fronteiras do .Net...

 

Obrigado a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos,

 

executei esse código para receber os dados do cliente via Webservice:

 

try

{

SiacCadastro.SiacWEB_CadastroAtenderWSSoapClient SIAC = new Atendimentos_SEBRAEAM.SiacCadastro.SiacWEB_CadastroAtenderWSSoapClient();

SIAC.Util_Rec_ConsultarClientes("60459301268",0,0,null,0);

MessageBox.Show("Registro Gravado com Sucesso");

}

catch (Exception ex)

{

MessageBox.Show(ex.ToString());

}

 

 

Ele executa e diz que foi concluído como ok

 

mas onde este dado está localizado e como posso acessá-lo??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Trans_Ins_CadastroCompletoPJ

Insere cadastro completo de Empreendimento, e retorna código gerado, ou erro.

 

Quando der certo ele irá retornar um código.

Agora onde insere você que tem que falar pra gente.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.