Urgente Importar XML para Dataset

Discussão em 'Progress 4GL' iniciado por Sergio Gonçalves, Dezembro 3, 2014.

  1. Sergio Gonçalves

    Sergio Gonçalves Sem Pontuação

    alguem tem uma ideia de como importar este XML pra dentro de um dataset?

    <ExportTableDataResponse xmlns="http://sisteplant.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <ExportTableDataResult>
    <root xmlns="">
    <table name="Search">
    <r>
    <c name="c0">1</c>
    <c name="c2">05/09/2014 10:23:00</c>
    <c name="c3">05/09/2014 00:00:00</c>
    <c name="c5">PRE</c>
    <c name="c6">0</c>
    <c name="c7">1</c>
    <c name="c8">0</c>
    <c name="c9">m0000p</c>
    <c name="c10">ALM06</c>
    <c name="c11">A1</c>
    <c name="c12">1,0000</c>
    <c name="c13">1000,00000</c>
    <c name="c14">PRE</c>
    <c name="c15">1</c>
    <c name="c17">0</c>
    </r>
    </table>
    </root>
    </ExportTableDataResult>
  2. lwazevedo

    lwazevedo Membro Ativo

    Tente fazer desta forma...

    Código:
    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 lRetOK          AS LOGICAL   NO-UNDO.
    DEFINE TEMP-TABLE ttCustomer NO-UNDO LIKE Customer.
    DEFINE TEMP-TABLE ttOrder    NO-UNDO LIKE Order.
    DEFINE TEMP-TABLE ttInvoice  NO-UNDO LIKE Invoice.
    DEFINE DATASET DSET FOR ttCustomer, ttOrder, ttInvoice
      DATA-RELATION CustOrd FOR ttCustomer, 
        ttOrd RELATION-FIELDS(CustNum,CustNum) NESTED
      DATA-RELATION OrdInv FOR ttOrder, 
        ttInv RELATION-FIELDS(OrderNum,OrderNum) NESTED.
    DEFINE DATA-SOURCE dsCustomer FOR Customer.
    DEFINE DATA-SOURCE dsOrder    FOR Order.
    DEFINE DATA-SOURCE dsInvoice  FOR Invoice.
    BUFFER ttCustomer:HANDLE:ATTACH-DATA-SOURCE(DATA-SOURCE dsCustomer:HANDLE).
    BUFFER ttOrder:HANDLE:ATTACH-DATA-SOURCE(DATA-SOURCE dsOrder:HANDLE).
    BUFFER ttInvoice:HANDLE:ATTACH-DATA-SOURCE(DATA-SOURCE dsInvoice:HANDLE).
    DATA-SOURCE dsCustomer:FILL-WHERE-STRING = "WHERE Customer.CustNum = 2 ".
    DATASET DSET:FILL().
    ASSIGN
      cTargetType     = "file"
      cFile           = "dset.xml" 
      lFormatted      = TRUE
      cEncoding       = ?
      cSchemaLocation = ?
      lWriteSchema    = FALSE
      lMinSchema      = FALSE.
    lRetOK = DATASET DSET:WRITE-XML(cTargetType, cFile, lFormatted, cEncoding,
      cSchemaLocation, lWriteSchema, lMinSchema).
    
  3. Sergio Gonçalves

    Sergio Gonçalves Sem Pontuação

    A acho que voce não entendeu, eu não estou querendo criar um arquivo xml, estou tentando importar um arquivo xml pra dentro de um dataset. Só que com esta estrutura de XML nao estou conseguindo fazer.
  4. lwazevedo

    lwazevedo Membro Ativo

    Blz. desculpa pela minha falha, vou ler com mais atenção.
    Olhando no Help do progress achei esse outro exemplo:

    DEFINE VARIABLE cSourceType AS CHARACTER NO-UNDO.
    DEFINE VARIABLE cReadMode AS CHARACTER NO-UNDO.
    DEFINE VARIABLE lOverrideDefaultMapping AS LOGICAL NO-UNDO.
    DEFINE VARIABLE cFile AS CHARACTER NO-UNDO.
    DEFINE VARIABLE cSchemaLocation AS CHARACTER NO-UNDO.
    DEFINE VARIABLE cFieldTypeMapping AS CHARACTER NO-UNDO.
    DEFINE VARIABLE cVerifySchemaMode AS CHARACTER NO-UNDO.
    DEFINE VARIABLE lRetOK AS LOGICAL NO-UNDO.
    DEFINE VARIABLE hDSet AS HANDLE NO-UNDO.
    CREATE DATASET hDSet.
    ASSIGN
    cSourceType = "file"
    cFile = "dset.xml"
    cReadMode = "empty"
    cSchemaLocation = "cust-ord-inv.xsd"
    lOverrideDefaultMapping = ?
    cFieldTypeMapping = ?
    cVerifySchemaMode = ?.
    lRetOK = hDSet:READ-XML(cSourceType, cFile, cReadMode, cSchemaLocation,
    lOverrideDefaultMapping, cFieldTypeMapping, cVerifySchemaMode

Compartilhe esta Página