Ir para conteúdo
  • Cadastre-se

dev botao
  • Este tópico foi criado há 3448 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Caros Juliomar Marchetti e Italo Jurisato Junior,

 

     Me chamo Carlos Ueslei Rodrigues de Oliveira e fui o desenvolvedor responsável pelo desenvolvimento do WebService de recepção de NTFS-e da Prefeitura de Barra do Garças. Conversei ontem com o André Cezimbra e ele me informou que estava tendo problemas de conexão com a prefeitura utilizando o componente ACBr desenvolvido por esse projeto. Como não sou desenvolvedor Delphi só ouvi falar desse componente ontem e apesar de não mais trabalhar na Virtual Tecnologia desde o começo desse ano gostaria de me colocar a disposição para tentarmos encontrar uma solução para a conexão desse componente com o Web Service da Prefeitura de Barra do Garças de forma a facilitar o trabalho de todos que queiram usá-lo.

    Meu apelido no skype é carlosueslei.

 

   Abraços

  • Consultores
Postado

Boa tarde Carlos,

 

A sua ajuda será de grande valia.

 

O André Cezimbra em seu post anexou um dois arquivos um de envio e outro de retorno (exemplos) que foram disponibilizados a ele pelo pessoal da Virtual.

 

Se você pudesse postar um exemplo completo ou seja com a TAG Envelope vai ajudar muito.

 

Muitos provedores simplesmente fornecem em seus exemplos a estrutura do RPS, se ele segue o padrão ABRASF não tem segredo, o maior problema e a estrutura do Envelope que muitos não divulgam e temos que ficar batendo cabeça até descobrir.

 

Se você puder nos ajudar nesse sentido, todos ficaram gratos.

 

Desde já muito obrigado. 

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Bom dia Italo,

    O Sistema de NTFS-e da Prefeitura de Barra do Garças foi desenvolvido usando o Genexus X Evolution 1 e gerando o código em Java.

    Pelo que eu vi do erro relatado pelo Andre Cezimbra o que pode estar acontecendo é que a estrutura do XML montado por ele através do componente ACBr esta com alguma diferença em relação a estrutura do XML a ser recepcionado pelo WebService da Prefeitura de Barra do Garças e por isso a solicitação de conexão com o Web Service é negada logo no começo sem que tenhamos como interceptar essa solicitação vinda dele.

    Desde o lançamento desse serviço, no começo de 2012, tivemos alguns casos parecidos como esse e descobrimos que quando o cliente tenta acessar o endereço http://financas2.barradogarcas.mt.gov.br:8080/SCEM/servlet/agerarnfse_barradogarcas?wsdl, que é utilizado para configurar a conexão com o WebService, é criado junto toda a estrutura de XML necessária para consumir esse serviço. Porém em alguns clientes essa estrutura, por características próprias de cada plataforma de desenvolvimento, era criada com diferenças sutis em relação ao original e por isso esse erro ocorria. Como essa estrutura é muito complexa e por isso demandaria uma quantidade desnecessária de tempo para procurar onde esta a diferença sugerimos no manual do usuário do serviço a seguinte solução:

     Após se conectar ao endereço http://financas2.barradogarcas.mt.gov.br:8080/SCEM/servlet/agerarnfse_barradogarcas?wsdle criar toda a estrutura do XML necessário para consumir o serviço, deve-se baixar no projeto do sistema o arquivo WSDL versão 2.0 no site da ABRASF http://www.abrasf.org.br/arquivos/files/GT2-DES-IF/NFSe/NFSe2.00/wsdl_nfse_v2.zip. Esse arquivo contêm a estrutura original do XML e baixando-a ele irá substituir a gerada quando da conexão com o wsdl do site da prefeitura corrigindo qualquer diferença existente entre o XML do cliente e do servidor.

     Bem, para todos os casos que eu conheça em que tiveram esse erro, esse procedimento o solucionou.

     Eu não sei se nesse componente criado por vocês a estrutura do XML criada é originária do WSDL da prefeitura ou desse arquivo da ABRASF. Se for gerada a partir da Prefeitura sugiro mudar incluindo já esse arquivo dentro dele.

 

     Acredito que essa possa ser uma primeira linha de ação para resolvermos esse problema. Caso após isso o problema continue poderemos tentar outras soluções.

 

   Abraços   

  • Consultores
Postado

Boa tarde Carlos,

 

O XML do RPS é criado pelo componente segundo a versão 2.00 do layout definido pela ABRASF.

 

Alem disso o lote a ser enviado é submetido ao validador do componente que compara o XML com o XSD (Schema).

 

Caso o XML contenha algum dado errado ou sua estrutura esta fora do estabelecido no XSD o componente já apresenta um erro de validação.

 

O lote por sua vez é envelopado, ou seja, incluído dentro de um outro XML que vamos chamar de Envelope, este por sua vez é enviado para o Web Services.

 

O componente esta gerando o seguinte Envelope em anexo:

19-ger-nfse-soap.xml

 

Por favor de uma olha e me diga o que esta faltando ou o que esta a mais para que eu possa fazer as devidas correções.

 

Lembrando que os dados não são reais.

 

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado (editado)

Boa tarde Italo,

 

    Acredito que esse Envelope é padrão em processos de conexão com WebServices e no sistema da Prefeitura de Barra do Garças quem controla a inclusão desse envelope e a transmissão do mesmo é o Genexus de forma transparente para o desenvolvedor. Porém acredito que o problema não seja aí.

    Olhando o exemplo que você me enviou vi que logo após a tag "Entrada" vocês incluem a tag <GerarNfseEnvio xmlns="http://www.abrasf.org.br/nfse.xsd">e no exemplo enviado pelo pessoal da Virtual ao André Cezimbra essa tag após Entrada não existe ficando desse jeito:

<?xml version="1.0"?>
      -<Entrada xmlns="http://www.abrasf.org.br/nfse.xsd">
          -<Rps>
                     -<InfDeclaracaoPrestacaoServico>
                              ....
                              ....
                      -</InfDeclaracaoPrestacaoServico>
          -</Rps>
       -</Entrada>
         Seria interessante testar uma versão tirando essa tag GerarNfseEnvio após a tag Entrada.
 
       Outra coisa que percebi mas não tenho certeza se seria um problema é que quando algumas tag's não possuem valor algum e elas não são obrigatórias de acordo com o modelo da Abrasf vocês simplesmente as omitem. No exemplo enviado ao André Cezimbra é incluído somente a tag especial como essa "<CodigoPais/>" com a barra após nome da tag. Como falei não sei se essa omissão seria um problema mas não custa nada tentar testar colocar tags desse tipo quando não há informação nesse campo.
 
      Bem, veja aí o que vocês podem fazer e qualquer coisa me avisem.
 
Abraços
Editado por CARLOS UESLEI RODRIGUES DE
Postado

Italo,

 

    Olhando novamente acredito que esse Envelope incluído por vocês não é necessário. Teria como testar enviar sem ele, só algo como

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

  -<Entrada xmlns="http://www.abrasf.org.br/nfse.xsd">

          -<Rps>
                     -<InfDeclaracaoPrestacaoServico>
                              ....
                              ....
                      -</InfDeclaracaoPrestacaoServico>
          -</Rps>
       -</Entrada>
Abraços
Postado

Italo,

 

     Outra coisa a ser levada em consideração: No exemplo enviado por ti a tag "Entrada" parece ser do tipo texto onde você armazenou o conteúdo do xml da RPS que você quer enviar. No exemplo enviado ao André Cezimbra a tag Entrada não é do tipo texto, mas do tipo GerarNFSEEnvio discriminado no item 4.5.3 da página 37 do Manual de Integração da Abrasf. Observe que no exemplo enviado pelo pessoal da Virtual ao André o xml da RPS está incluso ao xml do Envelope gerado pelo Genexus como se fossem um único XML diferente do que você enviou que fica claro que o XML do RPS esta dentro de um campo texto chamado "Entrada".

      Teria como alterar essa configuração para seguir o exemplo enviado pela Virtual?

 

 

Abraços

  • Consultores
Postado

Boa tarde Carlos,

 

Muito obrigado pelas informações, fiz algumas alterações como você pode ver no arquivo em anexo:

20-ger-nfse-soap.xml

 

Não tenho como testar o envio, uma vez que não possuo um certificado válido.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Me empolguei, atualizei o SVN, fiz o rebuil ALL...

 

Fui acessar o ambiente do cliente.... Hoje é feriado lá... :/
Vamos ter que deixar pra segunda pelo visto.

 

Mas desde já agradeço a vocês por essa interação que creio que vai ser fundamental para finalizarmos essa homologação...

 

Ítalo, percebi que tu incluiu a opção proRecepcaoSincrono pra esse provedor, modifico minha chamada pra EnvioSincrono?

Postado
Boa Tarde senhores!
 
Situação 1: Arquivo Anexo 24.rar
 -> Mandei gerar a NFSe com a compilação gerada pelas modificações que o Italo disponibilizou (sem mexer em nada no Componente). Deu falha no Schema pedindo pelo campo Signature. Nem criou a pasta "Ger". Situação já vivida anteriormente...
 
Situação 2: Arquivo 24_2.rar
 -> Modifiquei para assinar o RPS e não o Lote (como veio do SVN). Voltamos ao status de como estava antes. Para mim dá como enviado com sucesso, mas não retorna nada. Cria a pasta "Ger", mas o lista-nfse.xml tem 0Kb. ou seja retorna um XML vazio como venho falando desde Agosto.
 
Situação 3: Arquivo 24_3.rar
 -> Modifiquei pra não assinar nem o Lote e nem o RPS. E recebi uma resposta diferente conforme abaixo:
 
   ERRO: Falha na validação do Lote 18
   Validate failed because the document does not contain exactly one root node.
 
Ficarei no aguardo de vocês!

Abraço, e boa tarde!
 
André Cezimbra
Análise e Desenvolvimento
Aspin Tecnologia
 

24.rar

24_2.rar

24_3.rar

  • Consultores
Postado

Boa tarde a todos,

 

Acessei o endereço:

 

"http://financas2.barradogarcas.mt.gov.br:8080/SCEM/servlet/agerarnfse_barradogarcas?wsdl"

 

E constatei o seguinte:

 

URL para gerar a NFS-e em ambiente de produção é:

 

"https://financas2.barradogarcas.mt.gov.br:8080/SCEM/servlet/agerarnfse_barradogarcas"

 

SoapActuon é:

 

"http://www.abrasf.org.br/nfse.xsdaction/AGERARNFSE_BARRADOGARCAS.Execute"

 

A mensagem de entrada possui a seguinte estrutura:

 

<gerarnfse_barradogarcas.Execute>

  <Entrada>

    <Rps>

      (...)

    </Rps>

  </Entrada>

</gerarnfse_barradogarcas.Execute>

 
O arquivo a seguir contem a mesma estrutura dentro do grupo <Body>.
 
E ao enviar temos como resposta o seguinte arquivo:
 
Note que ele apresenta uma mensagem de falha de processamento:
<faultstring>Error reading Rps Error reading Entrada Error reading gerarnfse_barradogarcas.Execute</faultstring>
Diz que ocorreu um erro ao ler o Rps.
 
Eu achei estranho essa definição que encontra-se no WSDL:
 
<complexType name="tcCpfCnpj">
<all>
<element name="Cpf" type="xsd:string"></element>
<element name="Cnpj" type="xsd:string"></element>
</all>
</complexType>
 
Uma vez que no Schema temos:
 
<xsd:complexType name="tcCpfCnpj">
  <xsd:choice>
    <xsd:element name="Cpf" type="tsCpf" minOccurs="1" maxOccurs="1" />
    <xsd:element name="Cnpj" type="tsCnpj" minOccurs="1" maxOccurs="1" />
  </xsd:choice>
</xsd:complexType>

 

Pelo WSDL me leva a crer que as duas TAGs: Cpf e Cnpj devem constar no XML o que contradiz com o Schema que deixa claro que apenas uma deles deve constar.

 

Volto a dizer que se nos fossemos fornecido um XML completo que foi recebido pelo Web Service e o mesmo foi processado com sucesso ficaria muito mais fácil fazer os devidos ajustes.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Italo,

 

     Solicitei para o pessoal da Virtual captar um xml de envio para a prefeitura e como não consegui inserir anexo nesse forum colo ele aqui com algumas alterações por questões de privacidade:

Obs: Pelo jeito o certo é mesmo a tag GerarNfseEnvio e não Entrada, mas o resto segue conforme nós recebemos na Prefeitura.

 

<?xml version="1.0"?>
    -<GerarNfseEnvio xmlns="http://www.abrasf.org.br/nfse.xsd">
       -<Rps>
               -<InfDeclaracaoPrestacaoServico>
                    -<Rps Id="">
                             -<IdentificacaoRps>
                                   <Numero>16207</Numero>
                                   <Serie>UNICA</Serie>
                                   <Tipo>1</Tipo>
                              </IdentificacaoRps>
                              <DataEmissao>2014-11-25T16:32:48</DataEmissao>
                              <Status>1</Status>
                   </Rps>
                  <Competencia>2014-11-25T16:32:48</Competencia>
                  -<Servico>
                          -<Valores>
                                <ValorServicos>13.19</ValorServicos>
                                <ValorDeducoes>0.00</ValorDeducoes>
                                <ValorPis>0.00</ValorPis>
                                <ValorCofins>0.00</ValorCofins>
                                <ValorInss>0.00</ValorInss>
                                <ValorIr>0.00</ValorIr>
                                <ValorCsll>0.00</ValorCsll>
                                <OutrasRetencoes>0.00</OutrasRetencoes>
                                <ValorIss>0.40</ValorIss>
                                <Aliquota>3.00</Aliquota>
                                <DescontoIncondicionado>0.00</DescontoIncondicionado>
                                <DescontoCondicionado>0.00</DescontoCondicionado>
                        </Valores>
                       <IssRetido>2</IssRetido>
                       <ResponsavelRetencao>1</ResponsavelRetencao>
                       <ItemListaServico>1401</ItemListaServico>
                       <CodigoCnae>0</CodigoCnae>
                       <CodigoTributacaoMunicipio/>
                       <Discriminacao>00000001415160 - Substituicao da portinhola do tanque de combustivel 13,19\s\n\s\nTipo O.S:V2 ,Numero O.S:49544 ,Chassi:9BG148FK0EC417385 ,Placa:NUF-6731 ,KM:70568 ,ProdutoS10 ,DN:D61, -  Forma de Pagamento: Garantia, Tributos Totais Incidentes (Lei Federal 12.741/2012) R$ 1,62\s\n</Discriminacao>
                       <CodigoMunicipio>5101803</CodigoMunicipio>
                       <CodigoPais/>
                       <ExigibilidadeISS>1</ExigibilidadeISS>
                       <MunicipioIncidencia>0</MunicipioIncidencia>
                       <NumeroProcesso/>
              </Servico>
            -<Prestador>
                 -<CpfCnpj>
                       <Cpf/>
                       <Cnpj>XXXXXXXXXXXXXX</Cnpj>
                  </CpfCnpj>
                  <InscricaoMunicipal>XXXX</InscricaoMunicipal>
             </Prestador>
            -<Tomador>
                 -<IdentificacaoTomador>
                     -<CpfCnpj>
                           <Cpf>XXXXXXXXXXX</Cpf>
                           <Cnpj/>
                     </CpfCnpj>
                     <InscricaoMunicipal/>
                </IdentificacaoTomador>
                <RazaoSocial>XXXXXXXXXXXXXXXXXXXX</RazaoSocial>
                -<Endereco>
                      <Endereco>XXXXXXXXXXXXXXXXXXXXXXXXXXXX</Endereco>
                      <Numero>SN</Numero>
                      <Complemento/>
                      <Bairro>NOVA BARRA</Bairro>
                      <CodigoMunicipio>5101803</CodigoMunicipio>
                      <Uf>MT</Uf>
                      <CodigoPais>0</CodigoPais>
                      <Cep>78600000</Cep>
                 </Endereco>
                 -<Contato>
                       <Telefone>XXXXXXXXXXXXX</Telefone>
                       <Email>XXXXXXXXXXXXXXXXX</Email>
                 </Contato>
             </Tomador>
            <RegimeEspecialTributacao>0</RegimeEspecialTributacao>
            <OptanteSimplesNacional>2</OptanteSimplesNacional>
            <IncentivoFiscal>2</IncentivoFiscal>
      </InfDeclaracaoPrestacaoServico>
  </Rps>
</GerarNfseEnvio>
  • Consultores
Postado

Boa tarde Carlos,

 

Esse provedor pelo que notei, possui dois Web Services para recepcionar o RPS e gerar a NFS-e.

 

Um deles só serve para isso e tem a estrutura que mencionei.

 

Por outro lado o outro tem uma estrutura diferente e serve tanto para gerar a NFS-e quanto para cancelar.

 

Vou fazer algumas alterações visando a utilização desse outro Web Services e vamos ver se conseguimos resolver o problema.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Consultores
Postado

Bom dia Carlos,

 

A estrutura do XML do RPS é igual, mas o envelopamento que é diferente.

 

Por isso que volto a frisar, se conseguir o envelope completo recepcionado pelo provedor e processado com sucesso ficaria muito mais fácil de fazer os ajustes.

 

Se não desejar postar esse envelope completo no fórum, por conter dados reais de uma prestação de serviço, omita a estrutura do RPS que é que contem esses dados, ou envie ele completo para o meu e-mail.

 

É preciso verificar junto ao provedor quais das duas URLs que devemos utilizar para o envio:

 

a que só tem esse serviço implementado ou

a que tem também o serviço de cancelamento.

 

Isso é muito importante pois como disse o envelopamento do RPS é diferente.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Italo,

 

      Não é questão de não querer postar o envelope. Como disse o sistema da Prefeitura de Barra do Garças é feito em Genexus e é ele quem controla isso para a gente. Quando conseguimos captar o xml enviado ele já se encontra sem esse envelope. Aquilo que eu postei aqui é tudo o que conseguimos captar.

      Quanto aos dois WebServices como eu não trabalho mais lá a quase 1 ano não lembro se o WebService que contem os dois serviços ainda funciona a contento. Com certeza o que só criar a NTFS-e funciona e é por isso que eu aconselho a focar nele. Para cancelar a NTFS-e existe outro WebService: http://financas2.barradogarcas.mt.gov.br:8080/SCEM/servlet/acancelarnfse_barradogarcas?wsdl

 

Abraços

  • Este tópico foi criado há 3448 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.