1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Urgente Erro comando Import

Discussão em 'Progress 4GL' iniciado por HumbertoOrtiz, Julho 25, 2018.

  1. HumbertoOrtiz

    HumbertoOrtiz Membro Participativo

    Bom dia a todos.

    Preciso de um help urgente, pois estou com o projeto parado devido a este erro.

    Tenho a seguinte situação:

    - Estou importando um arquivo de EDI.

    O problema que o arquivo vem todo (dados) em uma única linha separado por TAG´s.

    E ao importar a parte final do arquivo (ultimas colunas) não está sendo importado.

    Testei com 2 arquivos: 1 com 14.090 colunas (caracteres) e outro com 4.930 colunas (caracteres) e o problema é o mesmo.

    Tentei, utilizando uma stream, com o comando import unformatted e nada resolve.

    Ex.:(parte final – últimas colunas) QTY+1:2000'DTM+2:20180607:102'QTY+1:2000'DTM+2:20180621:102'QTY+1:2000'DTM+2:20180705:102'QTY+1:4000'DTM+2:20180719:102'UNT+89+1'UNZ+1+1'IT*000210038*0000*00001


    Ao executar e com o message importa até: QTY+1:2000'DTM+2:20180607:102'QTY+1

    A parte final vem com o message em branco.

    Tentei com o comando copy-lob para uma variável do tipo longchar, o mesmo problema.

    Segue o meu código abaixo.

    DEFINE VARIABLE v-linha AS CHARACTER NO-UNDO.


    DEFINE TEMP-TABLE ttLinha

    FIELD c-linha AS CHARACTER .


    DEFINE VARIABLE c-dir AS CHARACTER NO-UNDO.

    DEFINE VARIABLE c-arquivo AS CHARACTER NO-UNDO.

    assign c-dir = 'c:\temp\Entrada'

    c-arquivo = c-dir + "~\meu_arquivo.TXT".


    IF SEARCH (c-arquivo) <> ? THEN DO:

    INPUT FROM VALUE (c-arquivo).

    REPEAT ON ERROR UNDO, NEXT:

    v-linha = ''.

    CREATE ttLinha.

    IMPORT v-linha.

    MESSAGE v-linha

    VIEW-AS ALERT-BOX INFO BUTTONS OK.
    Aqui a parte final fica em branco


    ASSIGN ttLinha.c-linha = v-linha.

    END.

    INPUT CLOSE.

    END.

    FOR EACH ttLinha:

    MESSAGE ttLinha.c-linha

    VIEW-AS ALERT-BOX INFO BUTTONS OK.

    END.
  2. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    coloca import unformatted linha.
  3. HumbertoOrtiz

    HumbertoOrtiz Membro Participativo

    Conforme escrevi acima , já tentei com esta opção e também usando uma stream.
    E nos dois testes, não importa os caracteres finais do arquivo.
  4. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    A questão é que no arquivo TXT não tem uma quebra de linha, se vc editar o arquivo pelo bloco de notas e ir no final da linha, der um ENTER, salvar, a sua rotina vai funcionar, mas se esse arquivo é gerado por terceiros, tente esse codigo ....
    Código:
        define variable linha as character no-undo.
        define variable linha1 as longchar no-undo.
    
        copy-lob from file 'c:\temp\teste_000004.txt' to linha1.
    
        assign linha = string(linha1).
    
        message string(linha)
            view-as alert-box info buttons ok.
    
  5. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Tava esquecendo, caso seu arquivo tenha mais de uma linha, mas na ultima não tem a quebra de linha, vc tem que fatiar o campo linha1 por char(10):
    Código:
        define variable linha as character no-undo.
        define variable linha1 as longchar no-undo.
        define variable contador as integer no-undo.
    
        copy-lob from file 'c:\temp\teste_000004.txt' to linha1.
    
        assign linha = string(linha1).
    
        repeat contador = 1 to num-entries(linha, chr(10)):
            message entry(contador, linha, chr(10))
                view-as alert-box info buttons ok.
        end.
    
  6. HumbertoOrtiz

    HumbertoOrtiz Membro Participativo

    Bom dia.
    Problema resolvido com a dica do nosso colega
    bootstrapmaster

Compartilhe esta Página