Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Olá, senhores.
Estou tentando carregar múltiplos arquivos XML (+10.000) com um For Each, conforme script abaixo.
Entretanto, algumas vezes, depois de carregar uma certa quantidade de arquivos a tela carga de dados continua o contador, mas não executa mais nada. Ao fechar o app e tentar VÁRIAS vezes eu consigo finalizar o load.
Não é um arquivo específico porque já coloquei um trace com o nome do arquivo para tentar identificar algum erro e a execução "trava" em momentos diferentes.
Alguém já enfrentou essa dificuldade?
LET vRoot = 'lib://xmlpath/*.xml';
For Each vXMLFile in FileList(vRoot)
If $(#val) >0 then
XML:
LOAD
If(INDEX("NFe/infNFe/infAdic/infCpl",'80040')>0,
MID("NFe/infNFe/infAdic/infCpl",INDEX("NFe/infNFe/infAdic/infCpl",'80040'),10),
'OC NÃO ENCONTRADA') as OC,
If(INDEX(UPPER("NFe/infNFe/infAdic/infCpl"),'MODELO')>0,
MID("NFe/infNFe/infAdic/infCpl",INDEX(UPPER("NFe/infNFe/infAdic/infCpl"),'MODELO')+7,4),
'MODELO NÃO ENCONTRADO') as XML_MODELO,
"NFe/infNFe/det/prod/cProd" as XML_PNC,
"NFe/infNFe/det/prod/CFOP" as XML_CFOP,
replace("NFe/infNFe/det/prod/vProd",'.',',') as XML_VALOR,
"NFe/infNFe/dest/CNPJ" as XML_CNPJ_DEST,
"NFe/infNFe/dest/enderDest/CEP" as XML_CEP_DEST,
"NFe/infNFe/dest/enderDest/UF" as XML_UF_DEST,
"NFe/infNFe/emit/CNPJ" as XML_CNPJ_EMIT,
"NFe/infNFe/emit/enderEmit/UF" as XML_UF_EMIT,
"NFe/infNFe/ide/dhEmi" as XML_DATA_EMISSÃO,
"NFe/infNFe/ide/nNF" as XML_nNF,
FileName() as XML_FILENAME
FROM
[$(vXMLFile)](XmlSimple, table is nfeProc);
End If
Next vXMLFile
Obrigado desde já.
Ricardo,
Se tentar ler sem um for mas com o * no nome do arquivo?
LOAD
If(INDEX("NFe/infNFe/infAdic/infCpl",'80040')>0,
MID("NFe/infNFe/infAdic/infCpl",INDEX("NFe/infNFe/infAdic/infCpl",'80040'),10),
'OC NÃO ENCONTRADA') as OC,
If(INDEX(UPPER("NFe/infNFe/infAdic/infCpl"),'MODELO')>0,
MID("NFe/infNFe/infAdic/infCpl",INDEX(UPPER("NFe/infNFe/infAdic/infCpl"),'MODELO')+7,4),
'MODELO NÃO ENCONTRADO') as XML_MODELO,
"NFe/infNFe/det/prod/cProd" as XML_PNC,
"NFe/infNFe/det/prod/CFOP" as XML_CFOP,
replace("NFe/infNFe/det/prod/vProd",'.',',') as XML_VALOR,
"NFe/infNFe/dest/CNPJ" as XML_CNPJ_DEST,
"NFe/infNFe/dest/enderDest/CEP" as XML_CEP_DEST,
"NFe/infNFe/dest/enderDest/UF" as XML_UF_DEST,
"NFe/infNFe/emit/CNPJ" as XML_CNPJ_EMIT,
"NFe/infNFe/emit/enderEmit/UF" as XML_UF_EMIT,
"NFe/infNFe/ide/dhEmi" as XML_DATA_EMISSÃO,
"NFe/infNFe/ide/nNF" as XML_nNF,
FileName() as XML_FILENAME
FROM
[*.xml](XmlSimple, table is nfeProc);
Outra coisa, ler uns 10mil arquivos, nao seria melhor implementar um incremental e ler os arquivos XML novos e concatenar com os antigos em QVD?