Árvore de páginas

Versões comparadas

Chave

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

...

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

...

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:

...