O Cadastro de Rotinas customizadas tem por objetivo permitir que o usuário cadastre Rotinas Customizadas em MVC no formato do PagPFS (em PO-UI).
Para a utilização da tela é necessário realizar as configurações do Contas a Pagar para Escritórios de Advocacia - PagPFS.
Para utilizar o cadastro de Rotinas Customizadas é necessário criar uma opção de Menu chamando a função PFSAPPCROT.
O cadastro de Rotinas Customizadas contem duas principais funcionalidades:
Porem é necessário obedecer algumas restrições para utilizar a nova funcionalidade da melhor forma possível.
No campo Rotina MVC o usuário deve informar o nome da Rotina que será invocada na Consulta da rotina. A rotina obrigatoriamente tem de ser MVC (Model View Controller).
Logo abaixo é apresentado uma tabela que será preenchida por Campos que serão utilizados no Filtro da Consulta da Rotina. Esses campos obrigatoriamente tem de ser da Rotina indicada no campo Rotina MVC.
Os campos apresentados no Campo Chave também serão validados, verificando se existem no modelo apresentado.
A Rotina MVC obrigatoriamente tem de ter um Modelo com o pós fixo "MASTER" conforme exemplo abaixo. Se a rotina não tiver um modelo MASTER o sistema não irá encontrar a estrutura.
Obs: A rotina precisa estar publicada e disponível para consultas REST. Para disponibilizar o modelo siga a documentação do FWRestModel.
Na consulta da Rotina o usuário irá visualizar todos os registros da rotina. Para controle das colunas no Grid só serão demonstradas as colunas que estão marcadas como Browse igual a "Sim".
Na tela de Cadastro da Rotina MVC o sistema irá interpretar a Estrutura MVC obedecendo os seguintes critérios:
O botão de Salvar somente será habilitado após os campos obrigatórios serem preenchidos.
Ao clicar em Salvar o sistema irá rodas as todas as validações do modelo original.
As regras de When (X3_WHEN) ou Gatilhos (SX7) não serão reproduzidas na tela de cadastro.
OHX - Cabeçalho das Rotinas Customizadas
OHY - Campos de Filtro da Rotina Customizada
//-------------------------------------------------------------------
/*/{Protheus.doc} JTest001
Consulta de Log de aprovação - Modelo MVC de Exemplo
/*/
//-------------------------------------------------------------------
Function JTest001()
Local oBrowse := FWMBrowse():New()
oBrowse:SetDescription("Log de aprovação")
oBrowse:SetAlias("ZZ1")
oBrowse:SetLocate()
oBrowse:Activate()
Return Nil
//-------------------------------------------------------------------
/*/{Protheus.doc} ViewDef
Estutura do Log de aprovação
/*/
//-------------------------------------------------------------------
Static Function ViewDef()
Local oStructZZ1 := FWFormStruct(2, "ZZ1")
Local oModel := FWLoadModel("JTest001")
Local oView := Nil
oView := FWFormView():New()
oView:SetModel(oModel)
oView:AddField("JTest001_VIEW", oStructZZ1 , "ZZ1MASTER")
oView:CreateHorizontalBox("FORMFIELD", 100)
oView:SetOwnerView("JTest001_VIEW", "FORMFIELD")
oView:SetDescription("Log de aprovação")
oView:EnableControlBar(.T.)
Return (oView)
//-------------------------------------------------------------------
/*/{Protheus.doc} ModelDef
Estrutura do modelo do Log de Aprovação
/*/
//-------------------------------------------------------------------
Static Function Modeldef()
Local oStructZZ1 := FWFormStruct(1, "ZZ1")
Local oModel := NIL
oModel:= MPFormModel():New("JTest001", /*Pre-Validacao*/, /*Pos-Validacao*/, /*Commit*/, /*Cancel*/)
oModel:AddFields("ZZ1MASTER", Nil, oStructZZ1 , /*Pre-Validacao*/, /*Pos-Validacao*/)
oModel:SetDescription("Log de aprovação")
oModel:GetModel("ZZ1MASTER"):SetDescription("Log de aprovação")
Return (oModel) |