Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Amigos, bom dia.

Primeiramente gostaria de parabenizar os envolvidos no projeto. O ACBr facilita muito o desenvolvimento de soluções. Aqui na empresa usamos para enviar NFe, estamos o utilizando para o desenvolvimento do CTe e, em um futuro próximo, o utilizaremos para comunicação com ECF.

Em nossa empresa, estamos em fase final de implementação do CT-e. Consegui autorizar CT-es do tipo normal sem problema algum, porém, quando tento gerar um CT-e de complemento (possivelmente ocorrerá em casos de anulação e substituição também), sou contemplado com a seguinte mensagem: "Não foi possível carregar o aquivo:".

Analisando os fontes por alto, vi que, na hora de assinar, há um procedimento que visa identificar qual Schema foi/será utilizado para validação da XML (envio normal, cancelamento, inutilização, etc). O procedimento simplesmente busca por tags/conteúdos específicos de cada tipo de XML.

O problema parece ocorrer pois, para identificar XMLs de envio de CTe, o procedimento busca pela String "

Com certeza os amigos possuem mais conhecimento do que eu para dizer se o erro está no componente ou se sou eu que estou fazendo algo de errado. Portanto, peço para que vocês deem uma olhadinha e me ajudem a solucionar este problema. ;)

Desde já agradeço pela atenção!

Obs: Não foi gerado XML, o erro ocorre antes que o XML seja salvo.

Postado

Parabéns a equipe, o projeto está atendendo muito bem as necessidades!

porém sou mais um com este mesmo problema, irei analisar o código e ver em que consigo ajudar

e mais uma vez, parabéns aos colaboradores

Postado

Parece que, antes da criação da procedure, a comparação era feita com a String "

Porém, não sei afirmar se isto causaria algum conflito com o reconhecimento de algum outro tipo de Schema, uma vez que o consumo de algum outro serviço possa conter a mesma tag. Pelo que me consta; consulta, inutilização e cancelamento não possuem a tag, porém, não tenho certeza. Não me recordo sobre o Schema do envio de eventos.

Postado

Unit: ACBrUtil

Linha: 1940


class function CTeUtil.IdentificaTipoSchema(const AXML: AnsiString; var I: integer): integer;

var

 lTipoEvento: String;

begin

  I := pos('
  Result := 1;

  if I = 0  then

   begin

     I := pos('
     if I > 0 then

       Result := 1

     else

      begin

        I := pos('
        if I > 0 then

           Result := 2

        else

         begin

           I := pos('
           if I > 0 then

              Result := 3

           else

            begin

              I := Pos('
              if I > 0 then

               begin

                 lTipoEvento := Trim(RetornarConteudoEntre(AXML,'',''));

                 if lTipoEvento = '110111' then

                    Result := 6 // Cancelamento

                 else if lTipoEvento = '210200' then

                   Result := 7 //Manif. Destinatario: Confirmação da Operação

                 else if lTipoEvento = '210210' then

                   Result := 8 //Manif. Destinatario: Ciência da Operação Realizada

                 else if lTipoEvento = '210220' then

                   Result := 9 //Manif. Destinatario: Desconhecimento da Operação

                 else if lTipoEvento = '210240' then

                   Result := 10 //Manif. Destinatario: Operação não Realizada

                 else

                   Result := 5; //Carta de Correção Eletrônica

              end

              else

                Result := 4; //DPEC

            end;

         end;

      end;

   end;

end;

aparentemente funcionou corretamente, transmitiu e autorizou (em homologação).

espero ter ajudado

Postado

Italo, bom dia.

Não obtive demais problemas para o envio de outros tipo de CTe, a não ser um obscuro erro não catalogado ao testar o envio de um CTe substituto. Mas ae, ae já é problema com a SEF ;).

Já suspeitava da origem e solução do problema, mas, como sei que os amigos possuem mais conhecimento e experiência, preferi deixar meu parecer ao invés de afirmar e colaborar com uma solução. Espero que não se chateiem.

Mais uma vez, muito obrigado pela atenção e ajuda.

  • Este tópico foi criado há 4432 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.