Histórico da Página
...
- Visão Geral
- Pré-requisitos
- Menu
- RotinasRestrições
- Cadastro das Rotinas Customizadas
- Exemplo de Rotina MVC + Publicação do Fonte
- Consulta da Rotina Cadastrada Cadastrada
- Browser - Grid de consulta
- Tela de Consulta
- Cadastro das Rotinas Customizadas
- Restrições
- 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.
05. TABELAS UTILIZADAS
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 | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
#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 7 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 Tabela: Os 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
- OHX - Cadastro de Rotinas Customizada
- OHY - Filtro da Rotina CustomizadaLog de aprovação") Return (oModel)