[RESOLVIDO] <![CDATA[ - axsep017 - Adapter

Discussão em 'EMS , HCM e Totvs 11' iniciado por jdchaves, Março 14, 2012.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. jdchaves

    jdchaves Membro Participativo

    Você pode me mandar um exemplo?

    Agradeço desde já!
  2. flavio

    flavio Sem Pontuação

    pessoal... alguem conseguiu solucionar isso ??
  3. jdchaves

    jdchaves Membro Participativo

    Bom dia, consegui resolver com o seguinte código:

    Código:
    DEF TEMP-TABLE tt-infAdProd NO-UNDO
        FIELDS sequencia AS INT
        FIELDS tag       AS CHAR.
    
    IF p-ind-event = "AtualizaXML":U THEN DO:
        
        FIND FIRST tt-epc NO-LOCK
            WHERE tt-epc.cod-event     = p-ind-event
              AND tt-epc.cod-parameter = "hBusinessContent":U NO-ERROR.
        IF AVAIL tt-epc THEN DO:
            CREATE X-DOCUMENT hDoc.
            CREATE X-NODEREF hRoot.
    
            ASSIGN hDoc = WIDGET-HANDLE(tt-epc.val-parameter).
    
            hDoc:GET-DOCUMENT-ELEMENT(hRoot).
    
            RUN GetChildren(hRoot, 1).
            hDoc:SAVE("LONGCHAR",lcXml). /*******/
            
            FOR EACH tt-infAdProd:
                lcXml = REPLACE(lcXml,"_infAdProd_" + STRING(tt-infAdProd.sequencia),tt-infAdProd.tag).
            END.
    
            lcXml = REPLACE(lcXml,"_infClp_",c-value).
            
            hDoc:LOAD("LONGCHAR",lcXml,FALSE).  /*********/
    
            CREATE tt-epc.
            ASSIGN tt-epc.cod-event     = "AtualizaXML"
                   tt-epc.cod-parameter = "hBusinessContentANFAVEA":U
                   tt-epc.val-parameter = STRING(hDoc).
        END.
    END.
    
    PROCEDURE GetChildren:
        DEFINE INPUT PARAMETER hParent AS HANDLE  NO-UNDO.
        DEFINE INPUT PARAMETER level   AS INTEGER NO-UNDO.
    
        DEFINE VARIABLE i        AS INTEGER NO-UNDO.
        DEFINE VARIABLE hNoderef AS HANDLE  NO-UNDO.
    
        DEF VAR lcValue AS LONGCHAR NO-UNDO.
    
        CREATE X-NODEREF hNoderef.
    
        REPEAT i = 1 TO hParent:NUM-CHILDREN:
            good = hParent:GET-CHILD(hNoderef,i).
            IF NOT good THEN 
                LEAVE.
            IF hNoderef:SUBTYPE <> "element" THEN
                NEXT.
            IF hNoderef:NAME = "infAdProd" THEN DO:
                i-seq = i-seq + 1.
    
                good = hNoderef:GET-CHILD(hNoderef,1).
    
                CREATE tt-infAdProd.
                ASSIGN tt-infAdProd.sequencia = i-seq
                       tt-infAdProd.tag       = hNoderef:NODE-VALUE.
                
                hNoderef:NODE-VALUE = "_infAdProd_" + STRING(sequencia).
                
            END.
            IF hNoderef:NAME = "infCpl" THEN DO:
    
                good = hNoderef:GET-CHILD(hNoderef,1).
    
                c-value = hNoderef:NODE-VALUE.
    
                hNoderef:NODE-VALUE = "_infClp_".
                
            END.
    
            RUN GetChildren(hNoderef, (level + 1)).
        END.
    
        DELETE OBJECT hNoderef.
    END PROCEDURE.
    
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página