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

Campo EXTENT no JSON

Discussão em 'Progress 4GL' iniciado por Marcos Frasson, Julho 23, 2024.

  1. Marcos Frasson

    Marcos Frasson Membro Participativo

    Pessoal, tenho a Temp-Table abaixo que será retornada em um integração via SOAP.

    DEFINE TEMP-TABLE tt-cond-pagto NO-UNDO
    FIELD cod-cond-pag AS INTE
    FIELD descricao AS CHAR
    FIELD cod-vencto AS INTE
    FIELD prazos AS INTE EXTENT 12
    INDEX unico
    cod-cond-pag.

    Estou montando um exemplo no SOAPUI para fazer o teste de retorno a estrutura está como exemplo abaixo.

    [{ "name":"p1", "type":"input", "dataType":"character", "value":""},

    { "name":"tt-cond-pagto",
    "type":"output",
    "dataType":"temptable",
    "value":{
    "name":"tt-cond-pagto",
    "fields":[
    {"name":"cod-cond-pag","label":"CodCongPagto","type":"integer"},
    {"name":"descricao","label":"DescCondPagto","type":"character"},
    {"name":"cod-vencto","label":"codVencto","type":"integer"},
    {"name":"prazos","label":"prazosCondPagto","type":"integer", "extent": 12},
    ],
    "records":[]
    }
    }

    ]


    Mas estou recebendo o erro abaixo:
    Condição de ERRO: Remote mismatched fields or mismatched BEFORE-TABLE attribute for temp-table parameter or dataset member parameter. (12324) (7211)

    Acredito que seja por causa do campo EXTENT, alguém sabe como ajustar isso no JSON ?
  2. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Usando o WRITE-JSON da própria TEMP-TABLE fica assim:

    {"tt-cond-pagto":[
    {"cod-cond-pag":1,
    "descricao":"Descrição",
    "cod-vencto":20,
    "prazos":[1,2,3,4,5,6,7,8,9,10,11,12]
    }]
    }

    Código:
    USING Progress.Json.ObjectModel.*.
    
    DEF VAR saida AS LONGCHAR.
    DEF VAR xi AS INTEGER.
    
    DEFINE TEMP-TABLE tt-cond-pagto NO-UNDO
         FIELD cod-cond-pag AS INT
         FIELD descricao AS CHAR
         FIELD cod-vencto AS INTE
         FIELD prazos AS INTE EXTENT 12
         INDEX unico cod-cond-pag.
    
    CREATE tt-cond-pagto.
    ASSIGN tt-cond-pagto.cod-cond-pag = 1
           tt-cond-pagto.descricao = "Descrição"
           tt-cond-pagto.cod-vencto = 20.
    
    DO xi = 1 TO 12.
       tt-cond-pagto.prazos[xi] = xi.
    END.
    
    TEMP-TABLE tt-cond-pagto:WRITE-JSON("longchar",saida,TRUE).
    
    MESSAGE STRING(saida)
        VIEW-AS ALERT-BOX INFO BUTTONS OK.
    
    Última edição: Julho 23, 2024
  3. Marcos Frasson

    Marcos Frasson Membro Participativo

    Entendi... Mais eu não estou conseguindo montar isso no JSON que é enviado na integração.
  4. rafael.andrade

    rafael.andrade Membro Master Moderador Equipe de Suporte

    Alguma coisa está errada, tu disse que é SOAP, mas SOAP não é JSON, é XML
  5. Marcos Frasson

    Marcos Frasson Membro Participativo

    Tem serviços SOAP que aceita requisição e Resposta em formato JSON, nessa caso é possível. Tenho outras integrações funcionando para o serviço, somente essa consulta que tem o campo EXTENT que enrosquei.

Compartilhe esta Página