MostraErro() adaptado via REST (ADVPL)?

Pessoal, alguém sabe se existe alguma função para tratar a mensagem de erro do ExecAuto para enviar de uma melhor forma via REST?

Tudo pelo ADVPL.

Queria informar para o client "Campo inválido: Cod. Municipio (A1_COD_MUN)".

Mas, se algum campo estiver inválido o padrão da função MostraErro é colocar uma string grande com quebras de linhas e vários campos sendo mostrados conforme exemplo:


AJUDA:REGNOIS   
Não existe registro relacionado a este código.

Tabela SA1 16/09/2020 11:21:56
CNPJ/CPF             - A1_CGC       := 01234567891
Codigo               - A1_COD       := 26452
Loja                 - A1_LOJA      := 
Nome                 - A1_NOME      := MONICA REZENDE
N Fantasia           - A1_NREDUZ    := MONICA REZENDE
Endereco             - A1_END       := RUA MITRA, 21
Estado               - A1_EST       := MA
Cd.Municipio         - A1_COD_MUN   := 2111300 < -- Invalido
Municipio            - A1_MUN       := SAO LUIS
Bairro               - A1_BAIRRO    := RENASCENCA II
CEP                  - A1_CEP       := 65075770
Ins. Estad.          - A1_INSCR     := 49779931
Ins. Municip         - A1_INSCRM    := 
Natureza             - A1_NATUREZ   := 
Tipo                 - A1_TIPO      := F
--------------------------------------------------------------------------------

Existe algo pronto em relação a essa mensagem para resposta em requisições REST?

Estou criando uma função do zero caso não tenha.

Helcio, você precisa fazer via ExecAuto? Essa rotina está em MVC, ela possui um modelo?

Consegui resultado parecido, utilizando:


MSExecAuto({|x,y| mata240(x,y)},aRotAuto,3)

    IF lMsErroAuto
        //Pegando log do ExecAuto
        aLogAuto := GetAutoGRLog()

        For nAux := 1 To Len(aLogAuto)
            cLogTxt += aLogAuto[nAux] + CRLF
        Next

       lRet := .F.
    ELSE
       lRet := .T.
    Endif

Boa tarde. Segue abaixo exemplo que sempre utilizo, com rotinas via JOB ou Webservice.



Private lMsErroAuto        := .F.
Private lAutoErrNoFile        := .T.

    MSExecAuto( { |x,y| MATA030( x, y ) }, aCliente , nOpc )

    If lMsErroAuto
        aLog        := GetAutoGRLog()

        For nY := 1 To Len(aLog)
            If !Empty(cErro)
                cErro += CRLF
            EndIf
            cErro += aLog[nY]
        Next nY

    EndIf