Qlik Community

Qlik Brasil

Welcome to the group for Brazil users. .All discussions will be in Portuguese.

ricardoluz
New Contributor

LOAD de múltiplos arquivos XML

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á.

Tags (1)
1 Reply
Highlighted
MVP
MVP

Re: LOAD de múltiplos arquivos XML

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?

furtado@farolbi.com.br