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 ?
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.
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.