Bruno,
Você pode tratar normalmente informações que não estão presentes no model dentro de um ponto de entrada, porém como isso será feito depende do que você pretende fazer, se você vai persistir dados em uma outra rotina MVC, você pode pegar o modelo dessa outra rotina via FWLoadModel
, podendo também ser o caso de utilizar de um ExecAuto e no último caso, fazer as manipulações diretamente na tabela, com DBSeek
, RecLock
etc.
Por exemplo, na rotina que você citou, a estrutura básica no ponto de entrada será a seguinte:
#include "protheus.ch"
user function CNTA121()
local aParametros as array
local oModelo as object
local cIdPontoEntrada as char
local cIdModelo as char
local xRetorno
xRetorno := .T.
aParametros := PARAMIXB
if aParametros != nil
oModelo := aParametros[1]
cIdPontoEntrada := aParametros[2]
cIdModelo := aParametros[3]
if cIdPontoEntrada == "MODELCOMMITTTS"
//Nesse trecho você pode obter os dados do modelo e persistir onde quiser
//Como você está gravando em tabelas do padrão, o ideal é utilizar o Modelo da rotina ou um MsExecAuto
//Para pegar os dados do modelo, basta acessar a variável oModelo, exemplo:
ConOut("Exemplo:", oModelo:getValue("ID", "VALOR"))
endif
endif
return xRetorno
Obs.: Para as movimentações do financeiro, procura por ExecAuto das rotinas FINA040, FINA050, FINA070, FINA080 etc, são as principais rotinas para a inserção, alteração, exclusão e baixa de títulos.
Documentações:
https://tdn.totvs.com/pages/releaseview.action?pageId=208345968
https://tdn.totvs.com/display/framework/FWLoadModel