ExecAuto MATA010 (MVC)

Rotina automática do cadastro de Produtos em MVC

Exemplo da Rotina:

FWMVCRotAuto(oModel, "SB1", nOperation, {{"SB1MASTER", aFields}} ,,.T.)

Exemplo 1- Incluindo um produto:

//Pegando o modelo de dados, setando a operação de inclusão
oModel := FWLoadModel("MATA010")
oModel:SetOperation(3)
oModel:Activate()
  
//Pegando o model e setando os campos
oSB1Mod := oModel:GetModel("SB1MASTER")
oSB1Mod:SetValue("B1_COD"    , cCod      ) 
oSB1Mod:SetValue("B1_DESC"   , cDesc     ) 
oSB1Mod:SetValue("B1_TIPO"   , cTipo     ) 
oSB1Mod:SetValue("B1_UM"     , cUM       ) 
oSB1Mod:SetValue("B1_LOCPAD" , cLocPad   ) 

//Setando o complemento do produto
oSB5Mod := oModel:GetModel("SB5DETAIL")
If oSB5Mod != Nil
	oSB5Mod:SetValue("B5_CEME"   , cCEME     )
EndIf
  
//Se conseguir validar as informações
If oModel:VldData()
	  
	//Tenta realizar o Commit
	If oModel:CommitData()
		lOk := .T.
		  
	//Se não deu certo, altera a variável para false
	Else
		lOk := .F.
	EndIf
	  
//Se não conseguir validar as informações, altera a variável para false
Else
	lOk := .F.
EndIf
  
//Se não deu certo a inclusão, mostra a mensagem de erro
If ! lOk
	//Busca o Erro do Modelo de Dados
	aErro := oModel:GetErrorMessage()
	  
	//Monta o Texto que será mostrado na tela
	cMessage := "Id do formulário de origem:"  + ' [' + cValToChar(aErro[01]) + '], '
	cMessage += "Id do campo de origem: "      + ' [' + cValToChar(aErro[02]) + '], '
	cMessage += "Id do formulário de erro: "   + ' [' + cValToChar(aErro[03]) + '], '
	cMessage += "Id do campo de erro: "        + ' [' + cValToChar(aErro[04]) + '], '
	cMessage += "Id do erro: "                 + ' [' + cValToChar(aErro[05]) + '], '
	cMessage += "Mensagem do erro: "           + ' [' + cValToChar(aErro[06]) + '], '
	cMessage += "Mensagem da solução: "        + ' [' + cValToChar(aErro[07]) + '], '
	cMessage += "Valor atribuído: "            + ' [' + cValToChar(aErro[08]) + '], '
	cMessage += "Valor anterior: "             + ' [' + cValToChar(aErro[09]) + ']'
	
	//Mostra mensagem de erro
	lRet := .F.
	ConOut("Erro: " + cMessage)
Else
	lRet := .T.
	ConOut("Produto incluido!")
EndIf
  
//Desativa o modelo de dados
oModel:DeActivate()

Exemplo 2- Excluindo um produto:

//Pegando o modelo de dados, setando os campos
oModel := FWLoadModel("MATA010")
aFields := {}
aAdd(aFields, {"B1_COD", cCod, Nil})

//Se conseguir executar a operação automática
If FWMVCRotAuto(oModel, "SB1", 5, {{"SB1MASTER", aFields}} ,,.T.)
	lOk := .T.
	
Else
	lOk := .F.
EndIf
  
//Se não deu certo a inclusão, mostra a mensagem de erro
If ! lOk
	//Busca o Erro do Modelo de Dados
	aErro := oModel:GetErrorMessage()
	  
	//Monta o Texto que será mostrado na tela
	cMessage := "Id do formulário de origem:"  + ' [' + cValToChar(aErro[01]) + '], '
	cMessage += "Id do campo de origem: "      + ' [' + cValToChar(aErro[02]) + '], '
	cMessage += "Id do formulário de erro: "   + ' [' + cValToChar(aErro[03]) + '], '
	cMessage += "Id do campo de erro: "        + ' [' + cValToChar(aErro[04]) + '], '
	cMessage += "Id do erro: "                 + ' [' + cValToChar(aErro[05]) + '], '
	cMessage += "Mensagem do erro: "           + ' [' + cValToChar(aErro[06]) + '], '
	cMessage += "Mensagem da solução: "        + ' [' + cValToChar(aErro[07]) + '], '
	cMessage += "Valor atribuído: "            + ' [' + cValToChar(aErro[08]) + '], '
	cMessage += "Valor anterior: "             + ' [' + cValToChar(aErro[09]) + ']'
	
	//Mostra mensagem de erro
	lRet := .F.
	ConOut("Erro: " + cMessage)
	
Else
	lRet := .T.
	ConOut("Produto excluido")
EndIf
  
//Desativa o modelo de dados
oModel:DeActivate()

Observações:

– Caso tenha dúvidas ou problemas com os exemplos, entre em contato;

– Se tiver sugestões de rotinas, pode entrar em contato;