IMPORTANTE!
A rotina OMSA100 se utiliza do conceito de MVC do Protheus, portanto, não possui a mesma estrutura de MsExecAuto conforme o modelo antigo utilizado no Protheus.
É possível executar de forma automática a rotina OMSA100 para inclusão do cadastros de Rotas para o módulo SIGAOMS - Gestão da Distribuição, de forma muito semelhante como descrito no exemplo abaixo.
Informações adicionais sobre o padrão MVC podem ser consultadas em: MVC (Model View Controller)
Operação de Inclusão
#Função de modelo para execução da inclusão da rota no módulo SIGAOMS #INCLUDE 'protheus.ch' #INCLUDE 'TOTVS.CH' #INCLUDE "FWMVCDEF.CH" User Function IncRota() Local oModel := Nil Local oModelCab := Nil Local oModelRot := Nil Local cCodRot := "" Local nOperat := MODEL_OPERATION_INSERT Private ALTERA := .F. cCodRot := GetSxeNum("DA8","DA8_COD") oModel := FWLoadModel("OMSA100") //-- Carrega o modelo oModelCab := oModel:GetModel("MdFieldCDA8") oModelRot := oModel:GetModel("MdGridDA9F1") oModel:SetOperation(nOperat) //-- Seta operação de inclusão oModel:Activate() //-- Ativa o Modelo //-- Cabeçalho oModelCab:SetValue('DA8_FILIAL' , xFilial("DA8") ) oModelCab:SetValue('DA8_COD' , cCodRot ) oModelCab:SetValue('DA8_DESC' , "PRACA TESTES" ) oModelCab:SetValue('DA8_ATIVO' , "1" ) oModelCab:SetValue('DA8_TIPCAR' , "001" ) oModelCab:SetValue('DA8_CDRCAL' , "01" ) //ROtas oModelRot:AddLine() oModelRot:SetValue('DA9_FILIAL' , xFilial("DA9") ) oModelRot:SetValue('DA9_ROTEIR' , cCodRot ) oModelRot:SetValue('DA9_SEQUEN' , '000010' ) oModelRot:SetValue('DA9_PERCUR' , 'ZSP' ) oModelRot:SetValue('DA9_ROTA' , '000001' ) oModelRot:SetValue('DA9_REF' , 'INCLUSAO ROTA OMS' ) //-- Validacao e Gravacao do Modelo If oModel:VldData() oModel:CommitData() Else VarInfo("Erro",oModel:GetErrorMessage()) EndIf oModel:DeActivate() //desativa modelo Return
Operação de Modificação
#Função de modelo para execução da Alteração da Rota no modulo SIGAOMS #include 'protheus.ch' #INCLUDE 'TOTVS.CH' #Include "FWMVCDEF.CH" User Function IncRota2() Local oModel := Nil Local oModelCab := Nil Local oModelRot := Nil Private ALTERA := .F. oModel := FWLoadModel("OMSA100") //-- Carrega o modelo oModelCab := oModel:GetModel("MdFieldCDA8") oModelRot := oModel:GetModel("MdGridDA9F1") DA8->(DbSetOrder(1)) // DA8_FILIAL, DA8_COD DA8->(DbSeek(xFilial("DA8")+"JLLE06")) oModel:SetOperation(MODEL_OPERATION_UPDATE) // Seta operação de modificação oModel:Activate() // Ativa o Modelo oModelCab:SetValue('DA8_DESC' , "PRACA TESTES ALTERA" ) If oModelRot:SeekLine({{"DA9_ROTEIR",'JLLE06' },{"DA9_SEQUEN",'000002' },{"DA9_PERCUR", 'ZSP' },{"DA9_ROTA",'000002'}}) oModelRot:SetValue('DA9_REF' , 'ALTERACAO ROTA OMS' ) EndIf //-- Validacao e Gravacao do Modelo If oModel:VldData() oModel:CommitData() Else VarInfo("Erro",oModel:GetErrorMessage()) EndIf oModel:DeActivate() //desativa modelo Return
Operação de Exclusão
#Função de modelo para execução da Exclusão da Rota no modulo SIGAOMS #include 'protheus.ch' #INCLUDE 'TOTVS.CH' #Include "FWMVCDEF.CH" User Function IncRota3() Local oModel := Nil Local oModelCab := Nil Private ALTERA := .F. oModel := FWLoadModel("OMSA100") //-- Carrega o modelo oModelCab := oModel:GetModel("MdFieldCDA8") DA8->(DbSetOrder(1)) // DA8_FILIAL, DA8_COD DA8->(DbSeek(xFilial("DA8")+"JLLE06")) oModel:SetOperation(MODEL_OPERATION_DELETE) // Seta operação de modificação oModel:Activate() // Ativa o Modelo //-- Validacao e Gravacao do Modelo If oModel:VldData() oModel:CommitData() Else VarInfo("Erro",oModel:GetErrorMessage()) EndIf oModel:DeActivate() //desativa modelo Return
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas