Passo a passo: | O programa MATA632 (Operações) utiliza o conceito de MVC. Para que seja possível utilizá-lo em rotinas automáticas, é necessário instanciar o modelo de dados do programa e executar as funções responsáveis pela persistência de dados. Para mais detalhes dos métodos disponíveis nas rotinas MVC, consulte o manual http://tdn.totvs.com/display/public/PROT/AdvPl+utilizando+MVC. Exemplo de uma operação de Inclusão de operações pelo programa MATA632, fazendo a execução automática. Bloco de código |
---|
language | text |
---|
title | Exemplo Inclusão |
---|
linenumbers | true |
---|
| #INCLUDE 'FWMVCDEF.CH'
//Inclusão de um roteiro
User Function incRot()
Local oModel, oMdlDet
, oMdlH3
Local cErro := ""
Local lRet := .T.
INCLUI := .T.
ALTERA := .F.
oModel := FWLoadModel('MATA632') //Carrega o modelo do programa MATA632
oModel:SetOperation(MODEL_OPERATION_INSERT) //Seta a operação de inclusão no modelo.
If oModel:Activate() //Ativa o modelo.
If !oModel:SetValue("MATA632_CAB","G2_CODIGO" , "0102") //Atribui o código do roteiro no modelo. (G2_CODIGO)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If EndIf
If lRet .And. !oModel:SetValue("MATA632_CAB","G2_PRODUTO", "PRD_EXEMPLO") //Atribui o código do produto no modelo. (G2_PRODUTO)
//Se ocorreu algum erro na //Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
oMdlDet := oModel:GetModel("MATA632_SG2") //Recupera o submodelo detalhe.
If ! If lRet .And. !oMdlDet:SetValue("G2_OPERAC","10") //Atribui o código da operação no modelo. (G2_OPERAC)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If ! EndIf
If lRet .And. !oMdlDet:SetValue("G2_DESCRI","OPERAC. TESTE") //Atribui a descrição da operação no modelo. (G2_DESCRI)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If !oMdlDet EndIf
If lRet .And. !oMdlDet:SetValue("G2_RECURSO","REC01") //Atribui o código do recurso no modelo. (G2_RECURSO)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If ! EndIf
If lRet .And. !oMdlDet:SetValue("G2_SETUP",1) //Atribui o tempo de setup no modelo. (G2_SETUP)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If !oMdlDet EndIf
If lRet .And. !oMdlDet:SetValue("G2_LOTEPAD",100) //Atribui o lote padrão no modelo. (G2_LOTEPAD)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If ! EndIf
If lRet .And. !oMdlDet:SetValue("G2_TEMPAD",1) //Atribui o tempo padrão no modelo. (G2_TEMPAD)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If !oMdlDet EndIf
If lRet .And. !oMdlDet:SetValue("G2_TPOPER",'1') //Atribui o tipo de operação no modelo. (G2_TPOPER)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If ! EndIf
If lRet .And. !oMdlDet:SetValue("G2_CTRAB",'CT01') //Atribui o Centro de trabalho no modelo. (G2_CTRAB)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
oMdlDet:AddLine() //Adiciona uma nova linha no modelo detalheEndIf
If !oMdlDet:SetValue("G2_OPERAC","20") //Atribui o código da operação no modelo. (G2_OPERAC)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If !oMdlDet:SetValue("G2_DESCRI","OPERAC. TESTE 2"If lRet
//Adiciona recursos alternativos.
oMdlH3 := oModel:GetModel("MATA632_SH3_R")
If !oMdlH3:SetValue("H3_RECALTE",'REC02') //Atribui ao descriçãoo da operação no modelo. (G2_DESCRI)
Recurso alternativo
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If !oMdlDet EndIf
If lRet .And. !oMdlH3:SetValue("G2H3_RECURSOTIPO","REC02"'A') //Atribui o códigoTipo do recurso no modelo. (G2_RECURSO)
Recurso alternativo
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If !oMdlDet:SetValue("G2_SETUP",0) //Atribui o tempo de setup no modelo. (G2_SETUP)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
EndIf
//Adiciona um novo recurso alternativo
If lRet .And. !oMdlH3:AddLine()
lRet := .F.
EndIf
If !oMdlDet:SetValue("G2_LOTEPAD",90) //Atribui o lote padrão no modelo. (G2_LOTEPAD)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If !oMdlDet EndIf
If lRet .And. !oMdlH3:SetValue("G2H3_TEMPADRECALTE",1'REC03') //Atribui o tempo padrão no modelo. (G2_TEMPAD)
Recurso alternativo
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := cErro := u_getErr(oModel)
lRet := .F.
EndIf
If !oMdlDet EndIf
If lRet .And. !oMdlH3:SetValue("G2H3_TPOPERTIPO",'1A') //Atribui o tipo de operação no modelo. (G2_TPOPER)
Tipo do Recurso alternativo
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If EndIf
EndIf
If lRet .And. !oMdlDet:SetValue("G2_CTRAB",'CT01'AddLine() //AtribuiAdiciona ouma Centronova de trabalholinha no modelo. (G2_CTRAB)
//Se ocorreu algum erro na atribuiçãodetalhe
//Se ocorreu algum erro ao adicionar uma nova linha, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If lRet
If oModel:VldData() //Valida as informações
lRet := oModel:CommitData( If lRet .And. !oMdlDet:SetValue("G2_OPERAC","20") //EfetivaAtribui o cadastro.
If !lRet
cErro := u_getErr(oModel)
EndIf
Else
código da operação no modelo. (G2_OPERAC)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
EndIf
oModel:DeActivate() //Desativa o modelo.
Else
lRet EndIf
If lRet .And. !oMdlDet:SetValue("G2_DESCRI","OPERAC. TESTE 2") //Atribui a descriçãoo da operação no modelo. (G2_DESCRI)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
Return lRet |
Exemplo de uma operação de Alteração de operações pelo programa MATA632, fazendo a execução automática. EndIf
If lRet .And. !oMdlDet:SetValue("G2_RECURSO","REC02") //Atribui o código do recurso no modelo. (G2_RECURSO)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If lRet .And. !oMdlDet:SetValue("G2_SETUP",0) //Atribui o tempo de setup no modelo. (G2_SETUP)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If lRet .And. !oMdlDet:SetValue("G2_LOTEPAD",90) //Atribui o lote padrão no modelo. (G2_LOTEPAD)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If lRet .And. !oMdlDet:SetValue("G2_TEMPAD",1) //Atribui o tempo padrão no modelo. (G2_TEMPAD)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If lRet .And. !oMdlDet:SetValue("G2_TPOPER",'1') //Atribui o tipo de operação no modelo. (G2_TPOPER)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If lRet .And. !oMdlDet:SetValue("G2_CTRAB",'CT01') //Atribui o Centro de trabalho no modelo. (G2_CTRAB)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If lRet
//Adiciona recursos alternativos.
oMdlH3 := oModel:GetModel("MATA632_SH3_R")
If !oMdlH3:SetValue("H3_RECALTE",'REC03') //Atribui o Recurso alternativo
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If lRet .And. !oMdlH3:SetValue("H3_TIPO",'A') //Atribui o Tipo do Recurso alternativo
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
EndIf
If lRet
If oModel:VldData() //Valida as informações
lRet := oModel:CommitData() //Efetiva o cadastro.
If !lRet
cErro := u_getErr(oModel)
EndIf
Else
cErro := u_getErr(oModel)
lRet := .F.
EndIf
EndIf
oModel:DeActivate() //Desativa o modelo.
Else
lRet := .F.
EndIf
Return lRet |
Exemplo de uma operação de Alteração de operações pelo programa MATA632, fazendo a execução automática. Bloco de código |
---|
language | text |
---|
title | Exemplo Alteração |
---|
linenumbers | true |
---|
| #INCLUDE 'FWMVCDEF.CH'
//Alteração de um roteiro
User Function altRot()
Local oModel, oMdlDet, oMdlH3
Local cErro := ""
Local lRet := .T.
INCLUI := .F.
ALTERA := .T.
SG2->(dbSetOrder(1))
SG2->(dbSeek(xFilial("SG2")+"PRD_EXEMPLO 02")) //Posiciona no roteiro para alteração.
oModel := FWLoadModel('MATA632') //Carrega o modelo do programa MATA632
oModel:SetOperation(MODEL_OPERATION_UPDATE) //Seta a operação de alteração no modelo.
If oModel:Activate() //Ativa o modelo.
oMdlDet := oModel:GetModel("MATA632_SG2") //Recupera o submodelo detalhe.
If !oMdlDet:AddLine() //Adiciona uma nova linha no modelo detalhe
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If lRet .And. !oMdlDet:SetValue("G2_OPERAC","30") //Atribui o código da operação no modelo. (G2_OPERAC)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If lRet .And. !oMdlDet:SetValue("G2_DESCRI","OPERAC. TESTE 3") //Atribui a descriçãoo da operação no modelo. (G2_DESCRI)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If lRet .And. !oMdlDet:SetValue("G2_RECURSO","REC03") //Atribui o código do recurso no modelo. (G2_RECURSO)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If lRet .And. !oMdlDet:SetValue("G2_SETUP",0) //Atribui o tempo de setup no modelo. (G2_SETUP)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If lRet .And. !oMdlDet:SetValue("G2_LOTEPAD",70) //Atribui o lote padrão no modelo. (G2_LOTEPAD)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If lRet .And. !oMdlDet:SetValue("G2_TEMPAD",2) //Atribui o tempo padrão no modelo. (G2_TEMPAD)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If lRet .And. !oMdlDet:SetValue("G2_TPOPER",'1') //Atribui o tipo de operação no modelo. (G2_TPOPER)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If lRet .And. !oMdlDet:SetValue("G2_CTRAB",'CT01') //Atribui o Centro de trabalho no modelo. (G2_CTRAB)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
//Altera um recurso alternativo.
If lRet
//Posiciona na operação 10.
If oMdlDet:SeekLine({{"G2_OPERAC","10"}})
//Recupera o modelo dos recursos alternativos
oMdlH3 := oModel:GetModel("MATA632_SH3_R")
//Posiciona no recurso alternativo REC02
If oMdlH3:SeekLine({{"H3_RECALTE","REC02"}})
//Altera a eficiência
If !oMdlH3:SetValue("H3_EFICIEN",50) //Atribui o Centro de trabalho | Bloco de código |
---|
language | text |
---|
title | Exemplo Alteração |
---|
linenumbers | true |
---|
| #INCLUDE 'FWMVCDEF.CH'
//Alteração de um roteiro
User Function altRot()
Local oModel, oMdlDet
Local cErro := ""
Local lRet := .T.
INCLUI := .F.
ALTERA := .T.
SG2->(dbSetOrder(1))
SG2->(dbSeek(xFilial("SG2")+"PRD_EXEMPLO 01")) //Posiciona no roteiro para alteração.
oModel := FWLoadModel('MATA632') //Carrega o modelo do programa MATA632
oModel:SetOperation(MODEL_OPERATION_UPDATE) //Seta a operação de alteração no modelo.
If oModel:Activate() //Ativa o modelo.
oMdlDet := oModel:GetModel("MATA632_SG2") //Recupera o submodelo detalhe.
oMdlDet:AddLine() //Adiciona uma nova linha no modelo detalhe
If !oMdlDet:SetValue("G2_OPERAC","30") //Atribui o código da operação no modelo. (G2_OPERAC)
CTRAB)
//Se ocorreu algum erro na atribuição, recupera o erro.
erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If !oMdlDet:SetValue("G2_DESCRI","OPERAC. TESTE 3") //Atribui a descriçãoo da operação no modelo. (G2_DESCRI)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If !oMdlDet:SetValue("G2_RECURSO","REC03") //Atribui o código do recurso no modelo. (G2_RECURSO)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If !oMdlDet:SetValue("G2_SETUP",0) //Atribui o tempo de setup no modelo. (G2_SETUP)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If !oMdlDet:SetValue("G2_LOTEPAD",70) //Atribui o lote padrão no modelo. (G2_LOTEPAD)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If !oMdlDet:SetValue("G2_TEMPAD",2) //Atribui o tempo padrão no modelo. (G2_TEMPAD)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If !oMdlDet:SetValue("G2_TPOPER",'1') //Atribui o tipo de operação no modelo. (G2_TPOPER)
//Se ocorreu algum erro na atribuição, recupera o erro.
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If !oMdlDet:SetValue("G2_CTRAB",'CT01') //Atribui o Centro de trabalho no modelo. (G2_CTRAB)
//Se ocorreu algum erro na atribuição, recupera o erro.
EndIf
EndIf
EndIf
EndIf
If lRet
If oModel:VldData() //Valida as informações
lRet := oModel:CommitData() //Efetiva o cadastro.
If !lRet
cErro := u_getErr(oModel)
lRet := .F.
EndIf
If lRet
If oModel:VldData() //Valida as informações
lRet := oModel:CommitData() //Efetiva o cadastro.
If !lRet
EndIf
Else
cErro := u_getErr(oModel)
EndIf
Else
cErro := u_getErr(oModel)
lRet := .F.
EndIf
EndIf
EndIf
EndIf
oModel:DeActivate() //Desativa o modelo.
Else
lRet := .F.
EndIf
Return lRet |
Exemplo de uma operação de Exclusão de operações pelo programa MATA632, fazendo a execução automática. Bloco de código |
---|
language | text |
---|
title | Exemplo exclusão |
---|
linenumbers | true |
---|
| #INCLUDE 'FWMVCDEF.CH'
//Exclusão de um roteiro
User Function excRot()
Local oModel
Local cErro := ""
Local lRet := .T.
INCLUI := .F.
ALTERA := .F.
SG2->(dbSetOrder(1))
SG2->(dbSeek(xFilial("SG2")+"PRD_EXEMPLO 01")) //Posiciona no roteiro para alteração.
oModel := FWLoadModel('MATA632') //Carrega o modelo do programa MATA632
oModel:SetOperation(MODEL_OPERATION_DELETE) //Seta a operação de exclusão no modelo.
If oModel:Activate() //Ativa o modelo.
If oModel:VldData() //Valida as informações
lRet := oModel:CommitData() //Efetiva a alteração
If !lRet
cErro := u_getErr(oModel)
EndIf
Else
cErro := u_getErr(oModel)
lRet := .F.
EndIf
Else
lRet := .F.
EndIf
Return lRet |
Função u_getErr que é chamada nos exemplos: Bloco de código |
---|
language | text |
---|
title | Função getErr |
---|
linenumbers | true |
---|
| User Function getErr(oMdl)
Local aErro := oMdl:GetErrorMessage()
Local cErro := ""
cErro := aErro[MODEL_MSGERR_IDFORM]+":"+;
aErro[MODEL_MSGERR_IDFIELD]+":"+;
aErro[MODEL_MSGERR_IDFORMERR]+":"+;
aErro[MODEL_MSGERR_IDFIELDERR]+":"+;
aErro[MODEL_MSGERR_ID]+;
aErro[MODEL_MSGERR_MESSAGE]+"/"+aErro[MODEL_MSGERR_SOLUCTION]
Conout(cErro)
Return cErro |
|