Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
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
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?