Olá, pessoal. Estou desenvolvendo um ponto de entrada no encerramento de medição (CNTA121) e preciso Setar informações dessa medição em alguns campos da tabela de Títulos a Receber (SE1) ou a Pagar (SE2), que estão fora do model. Na versão tradicional do ADVPL era tranquilo, mas no conceito MV-C não está funcionando. Só consegui setar valores dentro de campos que estão presentes no model. Alguém sabe como fazer?
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
Obrigado Daniel, vou tentar prosseguir aqui, quando encerramos a medição aqui com a opção de título o sistema já gera direto o título a receber ou a pagar e é nesse momento que quero persistir alguns dados pra esse título. Estou usando o DbSeek e RecLock mesmo.