Árvore de páginas

Importante

A rotina OMSA090 se utiliza do conceito de MVC do Prothues, portanto não possui a mesma estrutura de MsExecAuto conforme o modelo antigo utilizado no Protheus.

No entanto é possível através do modelo de dados, utilizar a mesma para funcionar de forma muito semelhante como mostrado no exemplo abaixo.

Maiores detalhes sobre o padrão MVC podem ser consultados em: MVC (Model View Controller)

Operação de Inclusão
#include "tbiconn.ch"
#include "PROTHEUS.CH"
#include "FWMVCDEF.CH"
// ****************************************************************************
// *************** ATENÇÃO: ESTA FUNÇÃO NÃO PODE SER OMSA090¹ *****************
// ****************************************************************************
// ¹ O nome User Function OMSA090 é reservado para o PE padrão do MVC 
User Function OMSA090I()
Local oModel, oModelcab, oModelCli

Local _cEmpresa := "99" // Código da Empresa que deseja manipular
Local _cFilial  := "01" // Código da Filial que deseja manipular

   PREPARE ENVIRONMENT EMPRESA _cEmpresa FILIAL _cFilial MODULO "OMS"

   SetFunName("OMSA090")

   oModel    := FwLoadModel("OMSA090")
   oModelCab := oModel:GetModel("MdFieldCDA7")
   oModelCli := oModel:GetModel("MdGridDA7F1")

   oModel:SetOperation(MODEL_OPERATION_INSERT) // Seta operação de inclusão
   oModel:Activate() // Ativa o Modelo

   oModelCab:SetValue("DA7_PERCUR","ZONTST")
   oModelCab:SetValue("DA7_ROTA"  ,"SET002")

   oModelCli:SetValue("DA7_SEQUEN","000001")
   oModelCli:SetValue("DA7_CLIENT","L00001")
   oModelCli:SetValue("DA7_LOJA","01")

   oModelCli:AddLine()
   oModelCli:SetValue("DA7_SEQUEN","000002")
   oModelCli:SetValue("DA7_CLIENT","L00001")
   oModelCli:SetValue("DA7_LOJA","02")

   oModelCli:AddLine()
   oModelCli:SetValue("DA7_SEQUEN","000003")
   oModelCli:SetValue("DA7_CLIENT","L00001")
   oModelCli:SetValue("DA7_LOJA","03")

   //Validação e Gravação do Modelo
   If oModel:VldData()
      oModel:CommitData()
   Else
      VarInfo("Erro",oModel:GetErrorMessage())
   EndIf

   RESET ENVIRONMENT
Return 
Operação de Modificação
#include "tbiconn.ch"
#include "PROTHEUS.CH"
#include "FWMVCDEF.CH"
// ****************************************************************************
// *************** ATENÇÃO: ESTA FUNÇÃO NÃO PODE SER OMSA090¹ *****************
// ****************************************************************************
// ¹ O nome User Function OMSA090 é reservado para o PE padrão do MVC 
User Function OMSA090U()
Local oModel, oModelcab, oModelCli, oModelCep

Local _cEmpresa := "99" // Código da Empresa que deseja manipular
Local _cFilial  := "01" // Código da Filial que deseja manipular

   PREPARE ENVIRONMENT EMPRESA _cEmpresa FILIAL _cFilial MODULO "OMS"

   SetFunName("OMSA090")

   oModel    := FwLoadModel("OMSA090")
   oModelCab := oModel:GetModel("MdFieldCDA7")
   oModelCli := oModel:GetModel("MdGridDA7F1")
   oModelCep := oModel:GetModel("MdGridDA7F2")

   DA7->(DbSetOrder(1)) // DA7_FILIAL, DA7_PERCUR, DA7_ROTA
   DA7->(DbSeek(xFilial("DA7")+"ZONTST"+"SET002"))

   oModel:SetOperation(MODEL_OPERATION_UPDATE) // Seta operação de modificação
   oModel:Activate() // Ativa o Modelo

   If oModelCli:SeekLine( { {"DA7_SEQUEN","000003"} } )
      oModelCli:DeleteLine()
   EndIf

   oModelCep:SetValue("DA7_SEQUEN","000001")
   oModelCep:SetValue("DA7_CEPDE" ,"89200000")
   oModelCep:SetValue("DA7_CEPATE","89299999")

   //Validação e Gravação do Modelo
   If oModel:VldData()
      oModel:CommitData()
   Else
      VarInfo("Erro",oModel:GetErrorMessage())
   EndIf

   RESET ENVIRONMENT
Return 
Operação de Exclusão
#include "tbiconn.ch"
#include "PROTHEUS.CH"
#include "FWMVCDEF.CH"
// ****************************************************************************
// *************** ATENÇÃO: ESTA FUNÇÃO NÃO PODE SER OMSA090¹ *****************
// ****************************************************************************
// ¹ O nome User Function OMSA090 é reservado para o PE padrão do MVC 
User Function OMSA090D()
Local oModel

Local _cEmpresa := "99" // Código da Empresa que deseja manipular
Local _cFilial  := "01" // Código da Filial que deseja manipular

   PREPARE ENVIRONMENT EMPRESA _cEmpresa FILIAL _cFilial MODULO "OMS"

   SetFunName("OMSA090")

   oModel := FwLoadModel("OMSA090")

   DA7->(DbSetOrder(1)) // DA7_FILIAL, DA7_PERCUR, DA7_ROTA
   DA7->(DbSeek(xFilial("DA7")+"ZONTST"+"SET002"))

   oModel:SetOperation(MODEL_OPERATION_DELETE) // Seta operação de exclusão
   oModel:Activate() // Ativa o Modelo

   //Validação e Gravação do Modelo
   If oModel:VldData()
      oModel:CommitData()
   Else
      VarInfo("Erro",oModel:GetErrorMessage())
   EndIf

   RESET ENVIRONMENT
Return 
  • Sem rótulos