Pessoal, tenho uma integração de um sistema com o datasul através de json. Em algum momento esta chgando para o programa do datasul algum caracter inválido. Preciso saber o que esta chegando no datasul de errado. Segundo o pessoal do outro sofware o problema é no 4gl. Estou usando o comando para gerar um arquivo texto, mas é ai que esta dando o erro: Erro de 4GL: Não pode converter carácter encontrado na fonte de dados com código de página UTF-8 para o código de página ISO8859-1 (12009) (7211)" Comando usado: def input param jsonInput as JsonObject no-undo. def output param jsonOutput as JsonObject no-undo. def var i-dif as int no-undo. def var c-nome-arq as char no-undo. assign i-dif = random(1,1000000) c-nome-arq = session:temp-dir + 'teste_' + string(i-dif) + '.txt'. disable triggers for load of cont-emit. fix-codepage(lc-teste) = 'UTF-8'. copy-lob from jsonInput:GetJsonText() to file c-nome-arq convert target codepage 'utf-8' no-error. O erro acontece nesta ultima linha.... Se alguém puder me ajudar, agradeço
Boa tarde Vi um exemplo que talvez seja útil. DEFINE VARIABLE cOriginal AS CHARACTER NO-UNDO. DEFINE VARIABLE cConverted AS CHARACTER NO-UNDO. cOriginal = "Texto com caracteres especiais: äöüß". /* Converte a página de códigos da string original para UTF-8 */ cConverted = FIX-CODEPAGE(cOriginal, "UTF-8"). MESSAGE "Original: " cOriginal SKIP "Convertido: " cConverted VIEW-AS ALERT-BOX INFO BUTTONS OK.
Tinha passado a função errada, olha aqui: https://docs.progress.com/pt-BR/bundle/abl-reference/page/WriteFile-method-JsonObject.html JsonInput:WriteFile("C:\Temp\MeuArquivo.json",TRUE).