Usuários SAC Luiz Carlos de Lima 102 Posted September 25, 2020 Usuários SAC Report Share Posted September 25, 2020 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 to post Share on other sites
Juliomar Marchetti 3,862 Posted September 26, 2020 Report Share Posted September 26, 2020 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 Juliomar Marchetti Ajude o Projeto ACBr crescer - Assine o SAC skype: juliomar telegram: juliomar http://www.juliomarmarchetti.com.br Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Link to post Share on other sites
Italo Giurizzato Junior 9,898 Posted September 28, 2020 Report Share Posted September 28, 2020 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? Italo Giurizzato Junior Ajude o Projeto ACBr crescer - Assine o SAC Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP Link to post Share on other sites
Usuários SAC Luiz Carlos de Lima 102 Posted September 28, 2020 Author Usuários SAC Report Share Posted September 28, 2020 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 to post Share on other sites
Italo Giurizzato Junior 9,898 Posted September 28, 2020 Report Share Posted September 28, 2020 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? Italo Giurizzato Junior Ajude o Projeto ACBr crescer - Assine o SAC Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP Link to post Share on other sites
Usuários SAC Luiz Carlos de Lima 102 Posted September 28, 2020 Author Usuários SAC Report Share Posted September 28, 2020 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 to post Share on other sites
antonio.carlos 65 Posted September 28, 2020 Report Share Posted September 28, 2020 Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico. Link to post Share on other sites
Recommended Posts