Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

  1. Visão Geral
  2. Pré-requisitos
  3. Menu
  4. RotinasRestrições
    1. Cadastro das Rotinas Customizadas
      1. Exemplo de Rotina MVC + Publicação do Fonte
    2. Consulta da Rotina Cadastrada Cadastrada
      1. Browser - Grid de consulta
      2. Tela de Consulta
  5. Restrições
  6. Tabelas utilizadas


01. VISÃO GERAL

...

Para a utilização da tela é necessário realizar as configurações do Contas a Pagar para Escritórios de Advocacia - PagPFS

03. MENU

Para utilizar o cadastro de Rotinas Customizadas é necessário criar uma opção de Menu chamando a função PFSAPPROT PFSAPPCROT.

...

04.

...

ROTINAS

O cadastro de Rotinas Customizadas contem duas principais funcionalidades:

  • Cadastrar as rotinas customizadas.
  • Consultar as rotinas cadastradas e permitir a Visualização/Inclusão/Alteração/Exclusão dos registros.

...

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)

Os campos apresentados no Campo Chave também serão validados, verificando se existem no modelo apresentado.

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. A Rotina MVC obrigatoriamente tem de ter um Modelo com o pós fixo "MASTER". Por exemplo: 

b. Consulta da Rotina Cadastrada

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:

  • Campos virtuais: Nenhum campo virtual será demonstrado em tela.
  • Campos F3: Campos com consulta padrão serão disponibilizados em Combos. Os combos irão reproduzir a consulta original e retorna os 10 primeiros resultados. Para filtrar melhor a busca o usuário terá de digitar no campo.
  • Campos com CBOX: Campos com combo pré-definido (X3_CBOX) serão disponibilizados em Bullets (RadioButtons) com as opções abertas no Formulário.

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.

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 apontando para a Classe JPagPfsModel. Para disponibilizar o modelo siga a documentação do FWRestModel..

...

Bloco de código
languagevb
themeRDark
titleExemplo de MVC
collapsetrue
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"

// Publicando o fonte
PUBLISH USER MODEL REST NAME RSB001 SOURCE RSB001 RESOURCE OBJECT JPagPfsModel //Modelo Teste

//-------------------------------------------------------------------
/*/{Protheus.doc} 

...

MenuDef

...

Menu Funcional

/*/
//-------------------------------------------------------------------
Static Function 

...

MenuDef()

...

Local 

...

aRotina := 

...

{}

Return aRotina

//-------------------------------------------------------------------
/*/{Protheus.doc} ViewDef

...

Modelo de 

...

exemplo
/*/
//-------------------------------------------------------------------
Static Function ViewDef()
Local 

...

oStruct := FWFormStruct(2, "

...

Z01")
Local oModel

...

 

...

:= FWLoadModel("

...

RSB001")
Local oView

...

 

...

:= Nil

...


	oView := FWFormView():New()
	oView:SetModel(oModel)
	oView:AddField("

...

RSB001_VIEW", 

...

oStruct, "

...

Z01MASTER")
	oView:CreateHorizontalBox("FORMFIELD", 100)
	oView:SetOwnerView("

...

RSB001_VIEW", "FORMFIELD")
	oView:SetDescription("

...

Teste Rotinas Customizadas - Contas a Pagar")

Return (oView)

//-------------------------------------------------------------------
/*/{Protheus.doc} ModelDef

...

Modelo 

...

de exemplo
/*/
//-------------------------------------------------------------------
Static Function Modeldef()
Local 

...

oStruct := FWFormStruct(1, "

...

Z01")
Local oModel

...

 

...

:= NIL

...


	oModel:= MPFormModel():New("

...

RSB001", /*Pre-Validacao*/, {|oModel| RSB1TOK(oModel)}/*Pos-Validacao*/, /*Commit*/, /*Cancel*/)
	oModel:AddFields("

...

Z01MASTER", Nil, 

...

oStruct, /*Pre-Validacao*/, /*Pos-Validacao*/)
	oModel:SetDescription("

...

Teste Rotinas Customizadas - Contas a Pagar")
	oModel:GetModel("

...

Z01MASTER"):SetDescription("Teste Rotinas Customizadas - Contas a Pagar")

	oModel:SetPrimaryKey({'Z01_FILIAL','Z01_CODIGO'})

Return (oModel)

//-------------------------------------------------------------------
/*/{Protheus.doc} JMDCPGOK
Exemplo de Validação de modelo

/*/
//-------------------------------------------------------------------
Static function RSB1TOK(oModel)
Local lRet := .T.
Local nOpc := oModel:GetOperation()
Local oModelZ01 := oModel:GetModel("Z01MASTER")

	If nOpc < 5
		If Upper(AllTrim(oModelZ01:GetValue("Z01_SETOR"))) == "ERROR"
			lRet := JurMsgErro(EncodeUTF8("Erro de validação do campo"))
		EndIf
	EndIf

Return lRet


Orientação para o cadastro das rotinas:

Rotina MVC: Nome do modelo/serviço Rest criado, este exemplo RSB001. OBS: O nome da rotina NÃO pode ter mais do que caracteres.
Título da rotina: Descrição do modelo; carregado de forma automática ao informar a rotina, neste exemplo Contatos Clientes
Descrição: Descrição da rotina cadastrada,  visualizada na tela de consulta.
Ações da rotina:

a. Somente Visualização -  Rotina cadastrada somente para consulta

b. Cadastro Completo - Rotina cadastrada para Visualização/Inclusão/Alteração/Exclusão dos registros.

Tipo de cadastro:

 a. Cadastro básico  - Manutenção do conteúdo da rotina estará disponível na própria tela de Rotinas Customizadas   

b. Rotina - Manutenção do conteúdo da rotina estará disponível nas rotinas do PagPFS, quando selecionada esta opção, estarão disponíveis os seguintes campos

b.1 Tela da Rotina: Rotinas disponíveis para o cadastro de rotinas customizadas.
b.2 Chave da TabelaOs campos chaves informados aqui servirão para verificar e filtrar a rotina de origem.  Os campos chave têm de seguir a mesma ordem.
                               Quando a origem for "Cadastro de Título a pagar" irá realizar o filtro pelos campos "FK7_FILIAL+FK7_IDDOC".
                               Quando a origem for "Cadastro de Desdobramento" irá realizar o filtro pelos campos "OHF_FILIAL+OHF_IDDOC+OHF_CITEM".
                               Quando a origem for "Cadastro de Pós-pagamento" irá realizar o filtro pelos campos "OHG_FILIAL+OHG_IDDOC+OHG_CITEM".

               Filtro: Campos constantes no modelo criado poderão ser utilizados como filtros ao acessar a rotina customizada.

Ao realizar inclusão de um novo registro na tabela customizada o sistema irá preencher os dados da tabela de origem nos campos chaves realizando a relação entre as tabelas.

Obs: Todos os campos informados, tanto na Chave da Tabela quanto no Filtro devem estar marcados como Usado na SX3, caso não esteja o campo não será encontrado durante as validações.

b. Consulta da Rotina Cadastrada

i. Browser - Grid de consulta

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".

ii. Tela de Cadastro

Na tela de Cadastro da Rotina MVC o sistema irá interpretar a Estrutura MVC obedecendo os seguintes critérios:

Campos virtuais: Nenhum campo virtual será demonstrado em tela.

Campos F3: Campos com consulta padrão serão disponibilizados em Combos. Os combos irão reproduzir a consulta original e retorna os 10 primeiros resultados. Para filtrar melhor a  busca o usuário terá de digitar no campo.

Campos com CBOX: Campos com combo pré-definido (X3_CBOX) serão disponibilizados em Bullets (RadioButtons) com as opções abertas no Formulário.

O botão de Salvar somente será habilitado após os campos obrigatórios serem preenchidos.

Ao clicar em Salvar o sistema irá rodar todas as validações do modelo original.

As regras de When (X3_WHEN),  Inicializador padrão (X3_RELACAO)Gatilhos (SX7), Retorno de Consulta Padrão (mais de 1 campo) não serão reproduzidas na tela de cadastro em PO-UI.

05. RESTRIÇÕES

Restrições de Dicionário:

Não é recomendada a utilização de campos F3 que contem 2 ou mais campos de retorno, como o código de Cliente (SA1), Fornecedor (SA2). Pois a consulta F3 será atribuída a somente um dos campos e será preenchido somente o campo que contem o F3 preenchido, o campo auxiliar deverá ser preenchido manualmente uma vez que o PO-UI não utiliza posicionamento em memória ou gatilhos (SX7).

Os campos que utilizarem consultas F3 tem de seguir as seguintes premissas:

  • Consultas do tipo "Consulta Específica":

É altamente recomendado utilizar a Consultas JurSXB na criação da Consulta padrão, pois com ele conseguimos extrair a query e realizar os filtros apropriados.

A função que fornece os dados não pode realizar referências a posicionamento em memória para realizar os filtros ou posicionamento em tabela. Por exemplo: M→ED_CODIGO ou FK7→FK7_IDDOC.

Caso algum campo configurado como filtro seja do tipo Data,  este deverá ter seu conteúdo informado como "YYYYMMDD" no filtro a ser realizado

06. TABELAS UTILIZADAS