Árvore de páginas

Rotina Automática GFEA032 (Ocorrências)

Produto:

Protheus ADVPL

Versões:

P12

Ocorrência:

Utilizada em momentos onde há a necessidade de execução da rotina de cadastro de ocorrências GFEA032 sem a abertura de interface gráfica.

Ambiente:

P12

Passo a passo:

FONTE RGFEA032.PRW
#Include "protheus.ch"
#Include "parmtype.ch"
#Include "fwmvcdef.ch"
#Include "tbiconn.ch"

User Function RGFEA032()
    Local oModel := ""
    Local sLog   := ""
    Local aLog   := {}
    Local nOpc   := 3
    Local nX     := 0

    Private INCLUI      := .T.
    Private lMsErroAuto := .F.

    // PREPARAÇÃO DO AMBIENTE (CASO ESTEJA NO SMARTCLIENT, REMOVER ESTA CHAMADA)
    PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "GFE" TABLES "CWD", "GWL"

    If oModel == NIL
        oModel := FwLoadModel("GFEA032") // ABERTURA DO MODELO DE DADOS
        oModel:SetOperation(nOpc) // INFORMA A OPERAÇÃO
        oModel:Activate() // ATIVA O MODELO
    EndIf
   
    If (oModel:GetOperation() == 3)
        // ATRIBUINDO VALORES AOS CAMPOS (OMODEL:SETVALUE("ID_TABELA", "CAMPO", "VALOR"))
        oModel:SetValue("GFEA032_GWD",    "GWD_DSOCOR",     "OCORRENCIA NOMINAL")
        oModel:SetValue("GFEA032_GWD",    "GWD_CDTIPO",     "TPO001")
        oModel:SetValue("GFEA032_GWD",    "GWD_CDMOT",      "MOT001")
        oModel:SetValue("GFEA032_GWD",    "GWD_DSPROB",     "PROBLEMA PENDENTE DE IDENTIFICAÇÃO")
        oModel:SetValue("GFEA032_GWD",    "GWD_DSSOLU",     "")
        oModel:SetValue("GFEA032_GWD",    "GWD_DTOCOR",     DToS(dDataBase))
        oModel:SetValue("GFEA032_GWD",    "GWD_HROCOR",     "17:10")
        oModel:SetValue("GFEA032_GWD",    "GWD_DTCRIA",     DToS(dDataBase))
        oModel:SetValue("GFEA032_GWD",    "GWD_HRCRIA",     "17:10")
        oModel:SetValue("GFEA032_GWD",    "GWD_DTBAI",      "")
        oModel:SetValue("GFEA032_GWD",    "GWD_HRBAI",      "")
        oModel:SetValue("GFEA032_GWD",    "GWD_SIT",        1)
        oModel:SetValue("GFEA032_GWD",    "GWD_USUCRI",     "Administrador")
        oModel:SetValue("GFEA032_GWD",    "GWD_CDTRP",      "EMIT0000000001")
        oModel:SetValue("GFEA032_GWD",    "GWD_ACAODC",     "2")
        oModel:SetValue("GFEA032_GWD",    "GWD_ACAODF",     "1")
        oModel:SetValue("GFEA032_GWD",    "GWD_ORIGEM",     "2")
        oModel:SetValue("GFEA032_GWD",    "GWD_SITTMS",     "0")
        oModel:SetValue("GFEA032_GWD",    "GWD_QTDVOL",     0)
        oModel:SetValue("GFEA032_GWD",    "GWD_QTDVOL",     0)
    EndIf

    // VALIDA AS INFORMAÇÕES
    If oModel:VldData()
        oModel:CommitData() // GRAVA AS INFORMAÇÕES
    Else
        aLog := oModel:GetErrorMessage() // EM CASO DE ERRO, INICIA A PREPARAÇÃO DA MENSAGEM DE ERRO

        For nX := 1 To Len(aLog)
            If !Empty(aLog[nX])
                sLog += Alltrim(aLog[nX]) + CRLF
            EndIf
        Next nX

        lMsErroAuto := .T.

        AutoGRLog(sLog)
    EndIf

    // EXIBE A MENSAGEM EM CASO DE SUCESSO NO CONSOLE
    If lMsErroAuto
        MostraErro()
        ConOut(Repl("-", 80))
        ConOut(PadC("Teste GFEA032 finalizado com erro!", 80))
        ConOut(PadC("Fim: " + Time(), 80))
        ConOut(Repl("-", 80))
    Else
        ConOut(Repl("-", 80))
        ConOut(PadC("Teste GFEA032 finalizado com sucesso!", 80))
        ConOut(PadC("Fim: " + Time(), 80))
        ConOut(Repl("-", 80))
    EndIf

    oModel:DeActivate() // DESATIVA O MODELO
    oModel:Destroy() // APÓS DESATIVADO, DESTRÓI O MESMO (EVITA PROBLEMAS DE REFERENCE COUNTER OVERFLOW)

    // FECHAMENTO DO AMBIENTE (CASO ESTEJA NO SMARTCLIENT, REMOVER ESTA CHAMADA)
    RESET ENVIRONMENT
Return NIL


Caso deseje utilizar a tabela GWL, adicionar a sequência abaixo após o fim das inserções dos campos da tabela GWD:

ADICIONANDO TABELA GWL
(...)

// TABELA GWD
// ATRIBUINDO VALORES AOS CAMPOS (OMODEL:SETVALUE("ID_TABELA", "CAMPO", "VALOR"))
oModel:SetValue("GFEA032_GWD",    "GWD_DSOCOR",     "OCORRENCIA NOMINAL")
oModel:SetValue("GFEA032_GWD",    "GWD_CDTIPO",     "TPO001")
oModel:SetValue("GFEA032_GWD",    "GWD_CDMOT",      "MOT001")
oModel:SetValue("GFEA032_GWD",    "GWD_DSPROB",     "PROBLEMA PENDENTE DE IDENTIFICAÇÃO")
oModel:SetValue("GFEA032_GWD",    "GWD_DSSOLU",     "")
oModel:SetValue("GFEA032_GWD",    "GWD_DTOCOR",     DToS(dDataBase))
oModel:SetValue("GFEA032_GWD",    "GWD_HROCOR",     "17:10")
oModel:SetValue("GFEA032_GWD",    "GWD_DTCRIA",     DToS(dDataBase))
oModel:SetValue("GFEA032_GWD",    "GWD_HRCRIA",     "17:10")
oModel:SetValue("GFEA032_GWD",    "GWD_DTBAI",      "")
oModel:SetValue("GFEA032_GWD",    "GWD_HRBAI",      "")
oModel:SetValue("GFEA032_GWD",    "GWD_SIT",        1)
oModel:SetValue("GFEA032_GWD",    "GWD_USUCRI",     "Administrador")
oModel:SetValue("GFEA032_GWD",    "GWD_CDTRP",      "EMIT0000000001")
oModel:SetValue("GFEA032_GWD",    "GWD_ACAODC",     "2")
oModel:SetValue("GFEA032_GWD",    "GWD_ACAODF",     "1")
oModel:SetValue("GFEA032_GWD",    "GWD_ORIGEM",     "2")
oModel:SetValue("GFEA032_GWD",    "GWD_SITTMS",     "0")
oModel:SetValue("GFEA032_GWD",    "GWD_QTDVOL",     0)
oModel:SetValue("GFEA032_GWD",    "GWD_QTDVOL",     0)

// TABELA GWL
oModel:SetValue("GFEA032_GWL",    "GWL_FILIAL",      "INSERIR_VALOR")
oModel:SetValue("GFEA032_GWL",    "GWL_NROCO",       "INSERIR_VALOR")
oModel:SetValue("GFEA032_GWL",    "GWL_NRDC",        "INSERIR_VALOR")
oModel:SetValue("GFEA032_GWL",    "GWL_FILDC",       "INSERIR_VALOR")
oModel:SetValue("GFEA032_GWL",    "GWL_EMITDC",      "INSERIR_VALOR")
oModel:SetValue("GFEA032_GWL",    "GWL_SERDC",       "INSERIR_VALOR")
oModel:SetValue("GFEA032_GWL",    "GWL_TPDC",        "INSERIR_VALOR")
oModel:SetValue("GFEA032_GWL",    "GWL_SDOCDC",      "INSERIR_VALOR")
oModel:SetValue("GFEA032_GWL",    "GWL_NRDC",        "INSERIR_VALOR")
oModel:SetValue("GFEA032_GWL",    "GWL_FILDC",       "INSERIR_VALOR")
oModel:SetValue("GFEA032_GWL",    "GWL_EMITDC",      "INSERIR_VALOR")
oModel:SetValue("GFEA032_GWL",    "GWL_SERDC",       "INSERIR_VALOR")
oModel:SetValue("GFEA032_GWL",    "GWL_TPDC",        "INSERIR_VALOR")
oModel:SetValue("GFEA032_GWL",    "GWL_SDOCDC",      "INSERIR_VALOR")

(...)



DOWNLOAD

Caso deseje, baixe o vídeo do debug da rotina automática, a query aplicada e o fonte utilizado no teste:

EXEMPLO ROT. AUTO. GFEA032.7z

Observações:

FAQ de documentação solicitada por meio do ticket: 2544348