Á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. Restrições
    1. Cadastro das Rotinas Customizadas
    2. Consulta da Rotina Cadastrada Cadastrada
  5. Tabelas utilizadas
  6. Exemplo de Rotina MVC + Publicação do Fonte


01. VISÃO GERAL

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

...

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. Exemplo de MVC abaixo

b. Consulta da Rotina Cadastrada

...

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

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

//-------------------------------------------------------------------
/*/{Protheus.doc} JMODTST
Modelo de Teste
/*/
//-------------------------------------------------------------------
Function JMODTST()
    Local oBrowse := FwLoadBrw("JMODTST")

    oBrowse:Activate()

Return Nil

//-------------------------------------------------------------------
/*/{Protheus.doc} MenuDef
Menu Funcional

/*/
//-------------------------------------------------------------------
Static Function MenuDef()
	Local aRotina := {}
Return (aRotina)

//-------------------------------------------------------------------
/*/{Protheus.doc} ViewDef
Modelo de exemplo
/*/
//-------------------------------------------------------------------
Static Function ViewDef()
	Local oStructFKF := FWFormStruct(2, "Z01")
	Local oModel     := FWLoadModel("JMODTST")
	Local oView      := Nil
	
	oView := FWFormView():New()
	oView:SetModel(oModel)
	oView:AddField("JMODTST_VIEW", oStructFKF, "Z01MASTER")
	oView:CreateHorizontalBox("FORMFIELD", 100)
	oView:SetOwnerView("JMODTST_VIEW", "FORMFIELD")
	oView:SetDescription("Teste Rotinas Customizadas") 
	oView:EnableControlBar(.T.)

Return (oView)

//-------------------------------------------------------------------
/*/{Protheus.doc} ModelDef
Modelo de exemplo
/*/
//-------------------------------------------------------------------
Static Function Modeldef()
	Local oStructFKF := FWFormStruct(1, "Z01")
	Local oModel     := NIL
	
	oModel:= MPFormModel():New("JMODTST", /*Pre-Validacao*/, {|oModel| JMODTSTOK(oModel)}/*Pos-Validacao*/, /*Commit*/, /*Cancel*/)
	oModel:AddFields("Z01MASTER", Nil, oStructFKF, /*Pre-Validacao*/, /*Pos-Validacao*/)
	oModel:SetDescription("Teste Rotinas Customizadas") 
	oModel:GetModel("Z01MASTER"):SetDescription("Teste Rotinas Customizadas") 

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

Return (oModel)

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

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

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

Return lRet

...