Carregar xml em tabela temporaria

Discussão em 'Progress 4GL' iniciado por asbahr, Outubro 1, 2010.

  1. arnaldoclima

    arnaldoclima Membro Participativo

    Leandro,

    Vc tem um exemplo de como importar usando o READ-XML.

    Arnaldo Cavalcante.
  2. LeandroSantos

    LeandroSantos Membro Participativo

    Código:
    /*  ===============================================
            Gera o Arquivo XML
        =============================================== */
    DEFINE TEMP-TABLE Pessoa
          FIELD nome    AS CHARACTER 
          FIELD idade   AS INTEGER
          FIELD sexo    AS CHARACTER
          FIELD salario AS DECIMAL.
    
    DEFINE VARIABLE cTargetType     AS CHARACTER NO-UNDO. 
    DEFINE VARIABLE cFile           AS CHARACTER NO-UNDO. 
    DEFINE VARIABLE lFormatted      AS LOGICAL NO-UNDO. 
    DEFINE VARIABLE cEncoding       AS CHARACTER NO-UNDO. 
    DEFINE VARIABLE cSchemaLocation AS CHARACTER NO-UNDO. 
    DEFINE VARIABLE lWriteSchema    AS LOGICAL NO-UNDO. 
    DEFINE VARIABLE lMinSchema      AS LOGICAL NO-UNDO. 
    DEFINE VARIABLE retOK           AS LOGICAL NO-UNDO. 
    
    CREATE Pessoa.
       ASSIGN Pessoa.nome    = 'carlos'
              Pessoa.idade   = 25
              Pessoa.sexo    = 'm'
              Pessoa.salario = 1000.
    
    CREATE Pessoa.
       ASSIGN Pessoa.nome    = 'joao'
              Pessoa.idade   = 16
              Pessoa.sexo    = 'm'
              Pessoa.salario = 500.
              
    CREATE Pessoa.
       ASSIGN Pessoa.nome    = 'rita'
              Pessoa.idade   = 32
              Pessoa.sexo    = 'f'
              Pessoa.salario = 2000.
    
    CREATE Pessoa.
       ASSIGN Pessoa.nome    = 'aline'
              Pessoa.idade   = 22
              Pessoa.sexo    = 'f'
              Pessoa.salario = 1270.
    
    ASSIGN 
         cTargetType = "file" 
         cFile = "d:\pessoa.xml"  
         lFormatted = YES 
         cEncoding = ? 
         cSchemaLocation = ? 
         lWriteSchema = NO 
         lMinSchema = NO. 
    
    retOK = TEMP-TABLE Pessoa:WRITE-XML(cTargetType, 
                                        cFile,lFormatted, 
                                        cEncoding, 
                                        cSchemaLocation, 
                                        lWriteSchema, 
                                        lMinSchema). 
    
    
    
    
    /*  ===============================================
            Apaga os dados da Temp-Table
        =============================================== */
    for each pessoa:
        delete pessoa.
    end.
    
    
    
    
    
    
    /*  ===============================================
            Le o Arquivo XML
        =============================================== */
    DEFINE VARIABLE cSourceType AS CHARACTER NO-UNDO. 
    DEFINE VARIABLE cReadMode AS CHARACTER NO-UNDO. 
    DEFINE VARIABLE lOverrideDefaultMapping AS LOGICAL NO-UNDO. 
    DEFINE VARIABLE cFieldTypeMapping AS CHARACTER NO-UNDO. 
    DEFINE VARIABLE cVerifySchemaMode AS CHARACTER NO-UNDO. 
    DEFINE VARIABLE returnValue AS LOGICAL NO-UNDO.
    
    
    ASSIGN cSourceType             = "FILE"
           cFile                   = "d:\pessoa.xml"
           cReadMode               = "EMPTY"
           cSchemaLocation         = ?
           lOverrideDefaultMapping = ?
           cFieldTypeMapping       = ?
           cVerifySchemaMode       = ?.
    
    returnValue = TEMP-TABLE pessoa:READ-XML(cSourceType,
                                             cFile,
                                             cReadMode,
                                             cSchemaLocation,
                                             lOverrideDefaultMapping,
                                             cFieldTypeMapping,
                                             cVerifySchemaMode).
    
    IF returnValue THEN
    
    FOR EACH pessoa:
       DISPLAY pessoa WITH frame f 1 COL down. 
       down with frame f.
    END.
    
    
  3. arnaldoclima

    arnaldoclima Membro Participativo

    Leandro ,

    Boa noite,

    Quando chega na parte de importação do XML dar a seguinte mensagem:

    ** Unable to understand after -- "retuarnValue = TEMP-TABLE". (247)
    ** Could not understand line 90. (198)

    Ah só mais uma informação a versão do progress é 8.2.

    Agradeço a sua atenção.

    Arnaldo.
  4. baltazar

    baltazar Membro Participativo

    Só é suportado a partir da V10.
  5. asbahr

    asbahr Membro Participativo

    Obrigado pelas dicas Leandro.
  6. asbahr

    asbahr Membro Participativo

    Boa Tarde

    Pessoal se alguem puder me ajudar eu tenho o seguinte trecho no arquivo XML:

    <beneficiario cco="024212881934" situacao="ATIVO" dataAtualizacao="2011-12-02">

    quando utiliza o primeiro programa nao consegui dividir estes campos em campos diferentes!

    Alguem saberia como faço para dividir cada informação desta do arquivo xml?

    Obrigado

Compartilhe esta Página