Ir para conteúdo
  • Cadastre-se

dev botao

ACBrBPe.Enviar - List index out of bounds(0)


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

Recommended Posts

  • Membros Pro

Boa tarde,

Ao Executar ACBrBPe.Enviar(1, false), retorna ‘List index out of bounds(0)' na função abaixo. Isto ocorre somente em alguns BPe, e não consegui descobrir o que está causando.

 

function TProtBPeCollection.GetItem(Index: Integer): TProtBPeCollectionItem;

begin

  Result := TProtBPeCollectionItem(inherited Items[Index]);

end;

 

o XML 51200901331907000104630040000000052833929482-bpeX é gerado com este erro.

Ao consultar na Sefaz ele existe, então faço uma Sincronização e ele retorna o XML OK 51200901331907000104630040000000052833929482-bpe

 

Obs. O problema não é por ser contingência, pois outras contingencia não dá o erro.

Grato

51200901331907000104630040000000052833929482-bpeX.xml 51200901331907000104630040000000052833929482-bpe.xml

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Boa noite

se tu rodar o exemplo ocorre o mesmo?

poderia informar um passo a passo?

estou chutando que esteja usando WITH e esteja adicionando um item para cada propriedade.  por exemplo

with item.new do

 

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Luiz,

Tem algo estranho, um dos XMLs ( *-bpeX.xml ) esta assinado e sem o protocolo de autorização, o outro que contem o protocolo de autorização mas esta sem a assinatura.

Você esta gerando o XML novamente e a sua aplicação esta incluído o protocolo de autorização?

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bom dia,

Ítalo,

Como disse, ele monta este *-bpeX.xml  após Executar ACBrBPe.Enviar(1, false), com retorno do erro ‘List index out of bounds(0)' e após ACBrBPe.Consultar(); ele monta o *-bpe.xml .

Juliomar, este é o procedimento.

Obs. Isto está ocorrendo com o envio dos embarcado em 'Contingencia'.

  FDMBPe.ACBrBPe.Bilhetes.Clear;
  with FDMBPe.ACBrBPe.Bilhetes.Add do
  begin
    BPe.Ide.cUF  := FDMBPe.CDSBilheteBPe.FieldByName('CodEstado_Estado_NucleoR').AsInteger;
    BPe.Ide.tpAmb := taHomologacao;
    BPe.Ide.modelo      := FDMBPe.CDSBilheteBPe.FieldByName('Codigo_ModeloFiscal_Carga').AsInteger;           
    BPe.Ide.serie       := StrToIntDef(FDMBPe.CDSBilheteBPe.FieldByName('Serie_Serie_Receber').AsString, 0);  
    BPe.Ide.nBP         := FDMBPe.CDSBilheteBPe.FieldByName('Bilhete_MovtoBilh_TrafegoR').AsInteger;          
    BPe.Ide.cBP         := FDMBPe.CDSBilheteBPe.FieldByName('cBP_MovtoBilh_TrafegoR').AsInteger;              
    BPe.Ide.modal  := moRodoviario;                                                                      
    BPe.Ide.dhEmi  := dhEmissao;
    BPe.Ide.tpEmis               := teOffLine;
    BPe.Ide.verProc              := 100;                                                                            
    BPe.Ide.tpBPe                := tbNormal;
    BPe.Ide.indPres  := pcPresencialForaEstabelecimento;
    BPe.Ide.UFIni         := FDMBPe.CDSBilheteBPe.FieldByName('Codigo_Estado_NucleoIni').AsString;            
    BPe.Ide.cMunIni       := FDMBPe.CDSBilheteBPe.FieldByName('CodMuni_Cidade_NucleoIni').AsInteger;            
    BPe.Ide.UFFim         := FDMBPe.CDSBilheteBPe.FieldByName('Codigo_Estado_NucleoFim').AsString;              
    BPe.Ide.cMunFim       := FDMBPe.CDSBilheteBPe.FieldByName('CodMuni_Cidade_NucleoFim').AsInteger;            
    BPe.Ide.dhCont := BPe.Ide.dhEmi;                                                                                      
    BPe.Ide.xJust  := 'Problema de comunicação, Internet';                                                                

    // dados do emitente, Filial responsável
    BPe.Emit.CNPJ        := FDMBPe.CDSBilheteBPe.FieldByName('CNPJ_Filial_NucleoR').AsString;
    demais campos......

    // dados da agencia
    BPe.Agencia.xNome                 := FDMBPe.CDSEmitenteBPe.FieldByName('RazaoSocial_Filial_Nucleo').AsString;
    demais campos ...........

    // informações sobre a passagem
    BPe.infPassagem.cLocOrig    := FDMBPe.CDSBilheteBPe.FieldByName('CodMuni_Cidade_NucleoIni').AsString;
    BPe.infPassagem.xLocOrig    := FDMBPe.CDSBilheteBPe.FieldByName('Nome_Cidade_NucleoIni').AsString;
    BPe.infPassagem.cLocDest    := FDMBPe.CDSBilheteBPe.FieldByName('CodMuni_Cidade_NucleoFim').AsString;
    BPe.infPassagem.xLocDest    := FDMBPe.CDSBilheteBPe.FieldByName('Nome_Cidade_NucleoFim').AsString;
    BPe.infPassagem.dhEmb       := DtHrEmbarque
    BPe.infPassagem.dhValidade  := IncMonth(BPe.Ide.dhEmi, 12);

    // informações sobre a viagem
    with BPe.infViagem.New do
    begin
      cPercurso     := FDMBPe.CDSBilheteBPe.FieldByName('Numero_Linha_TrafegoR').AsString;
      xPercurso     := FDMBPe.CDSBilheteBPe.FieldByName('Nome_Linha_TrafegoR').AsString;
      tpViagem      := SuperIF(FDMBPe.CDSBilheteBPe.FieldByName('Codigo_TipoViagem_TrafegoR').AsString = 'NORMAL', tvRegular, tvExtra);  
      tpServ        := tsConvencionalComSanitario;
      tpAcomodacao  := taAssento;                                                                                           
      tpTrecho      := ttNormal;                                                                                            
      Prefixo       := FDMBPe.CDSBilheteBPe.FieldByName('Numero_Linha_TrafegoR').AsString;                                  
      Poltrona      := FDMBPe.CDSBilheteBPe.FieldByName('Numero_Poltrona_TrafegoR').AsInteger;
      Plataforma    := FDMBPe.CDSBilheteBPe.FieldByName('Plataforma').AsString;
      dhViagem      := DtHrViagem
    end;
    ValorPassagem := valor
    BPe.Imp.vTotTrib            := FDMBPe.CDSBilheteBPe.FieldByName('vTotTrib').AsCurrency;
    BPe.infValorBPe.vBP         := ValorPassagem;
    BPe.infValorBPe.vDesconto   := FDMBPe.CDSBilheteBPe.FieldByName('Desconto_MovtoBilh_TrafegoR').AsCurrency;
    BPe.infValorBPe.vPgto       := ValorPassagem - FDMBPe.CDSBilheteBPe.FieldByName('Desconto_MovtoBilh_TrafegoR').AsCurrency;
    BPe.Imp.ICMS.CST    := cst00;                                                                                        
    BPe.Imp.ICMS.vBC    := FDMBPe.CDSBilheteBPe.FieldByName('BaseICMS_MovtoBilh_TrafegoR').AsCurrency;
    BPe.Imp.ICMS.pICMS  := FDMBPe.CDSBilheteBPe.FieldByName('AliquoICMS_MovtoBilh_TrafegoR').AsCurrency;
    BPe.Imp.ICMS.vICMS  := FDMBPe.CDSBilheteBPe.FieldByName('ValorICMS_MovtoBilh_TrafegoR').AsCurrency;
    BPe.Imp.ICMSUFFim.vBCUFFim        := FDMBPe.CDSBilheteBPe.FieldByName('BaseICMS_MovtoBilh_TrafegoR').AsCurrency;
    BPe.Imp.ICMSUFFim.pICMSUFFim      := VAliquotaEstadoDestino;
    BPe.Imp.ICMSUFFim.pICMSInter      := FDMBPe.CDSBilheteBPe.FieldByName('AliqPart_MovtoBilh_TrafegoR').AsCurrency;
    BPe.Imp.ICMSUFFim.vICMSUFFim      := (ValorTotalDaPartilha   * PercPartilhaUFDestino)/100;
    BPe.Imp.ICMSUFFim.vFCPUFFim       := (((ValorTotalDaPartilha * PercPartilhaUFDestino)/100)

    with BPe.Pag.New do
    begin
      tPag  := fpDinheiro;
      vPag       := ValorPassagem - FDMBPe.CDSBilheteBPe.FieldByName('Desconto_MovtoBilh_TrafegoR').AsCurrency;
      CNPJ := FDMBPe.CDSBilheteBPe.FieldByName('CNPJ_Operadora_Nucleo').AsString;
      cAut := FDMBPe.CDSBilheteBPe.FieldByName('cAut_Operadora_Nucleo').AsString;
      tpIntegra := tiNaoInformado;
         tBand     := bcOutros;
    end;
     // dados do responsável tecnico -> campo 182
    BPe.infRespTec.CNPJ     := FDMBPe.CDSRespTecnicoBPe.FieldByName('CNPJ_EmprFilial_Nucleo').AsString;
    Demais Campos
  end;

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Luiz,

Por favor não poste código, procure sempre anexar para que a postagem fique curta.

Desde já agradeço pelo compreensão.

Esse "X" no nome do XML é você que esta colocando?

Esse problema também ocorre com o programa exemplo?

 

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Boa tarde Ítalo,

Esse "X" no nome do XML é você que esta colocando > Sim, para separá-los, o do envio e o da consulta.

Fiz novos teste agora a tarde e não deu mais o erro, pode ser algum problema com os embarcados na Sefaz de MT, pois só eles estavam com o problema.

Grato pela atenção

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1298 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.

The popup will be closed in 10 segundos...