Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Ponto de entrada que permite realizar operações após gravação na rotina de parte diária (MNTI851) acionado via integração com RM

Características do Requisito

Linha de Produto:

Microsiga Protheus

Segmento:

Manufatura

Módulo:

SIGAMNT - Manutenção de Ativos e Gestão de Frotas 

Rotina:

Rotina

Nome Técnico

MNTI851

Mensagem única Parte Diária

País(es):

Todos

Banco(s) de Dados:

Todos

Sistema(s) Operacional(is):

Todos

Ponto de Entrada

Descrição:

Ponto de entrada executado na mensagem única de Parte Diária (MNTI851) que permite realizar operações após gravação de dados.

Programa Fonte:

MNTI851.prw

Função:

MNTI851B()

Parâmetros
PosiçãoTipoDescrição
1N

Conteúdo do campo TV1_FILIAL

2CConteúdo do campo TV1_EMPRES
CConteúdo do campo TV1_CODBEM
4DConteúdo do campo TV1_DTSERV
5C

Conteúdo do campo TV1->TV1_TURNO

Retorno:

Nulo

 

Bloco de código
languagesql
titleExemplo do Ponto de Entrada MNTA851B()
#include 'protheus.ch'

User Function MNTI851B()

    Local cFilTV1 := PARAMIXB[1] // TV1->TV1_FILIAL
    Local cEmpTv1 := PARAMIXB[2] // TV1->TV1_EMPRES
    Local cBemTv1 := PARAMIXB[3] // TV1->TV1_CODBEM
    Local dDtTv1  := PARAMIXB[4] // TV1->TV1_DTSERV
    Local cTurTv1 := PARAMIXB[5] // TV1->TV1_TURNO
    Local cKey    := cFilTV1 + cEmpTv1 + cBemTv1 + dtos( dDtTv1 ) + cTurTv1 
    Local cMesage := ''
    Local nIndex  := 0
    Local nCodati := aScan( aHeader ,{ |x| AllTrim( Upper( X[2] ) ) == "TV2_CODATI" } )
    Local nHrini  := aScan( aHeader ,{ |x| AllTrim( Upper( X[2] ) ) == "TV2_HRINI" } )
    Local nHrFim  := aScan( aHeader ,{ |x| AllTrim( Upper( X[2] ) ) == "TV2_HRFIM" } )

    If nOperat == 3
        cMesage += 'INCLUSÃO DE PARTE DIÁRIA'
    ElseIf nOperat == 4
        cMesage += 'ALTERAÇÃO DE PARTE DIÁRIA'
    ElseIf nOperat == 5
        cMesage += 'EXCLUSÃO DE PARTE DIÁRIA'
    EndIf

    If IsInCallStack("MNTA852")
        cMesage += ' - Rotina MNTA852' + CRLF + CRLF
    Else
        cMesage += ' - Rotina MNTA851' + CRLF + CRLF
    EndIf

    cMesage += 'Bem: ' + Alltrim( cBemTv1 ) + ' - data: ' + DToC( dDtTv1 )  + CRLF

    If nOperat == 3 .Or. nOperat == 4

        	Local nQtdReg := 0


        dbSelectArea('TV2')
        dbSetOrder(1)
        If dbSeek( cKey )

            While TV2->( !Eof() ) .And. cKey == TV2->TV2_FILIAL + TV2->TV2_EMPRES + TV2->TV2_CODBEM + DToS( TV2->TV2_DTSERV )
                
                cMesage += 'Atividade: ' + TV2->TV2_CODATI + ' / ' + TV2->TV2_HRINI + ' - ' + TV2->TV2_HRFIM + CRLF
                
  				nQtdReg++
              TV2->( dbSkip() )
            End

        EndIf

        If nOperat == 4
            
            For nIndex := 1 to Len( aCols )

                If GDDeleted( nIndex, aHeader, aCols ) .And.;
                    nCodati > 0 .And. !Empty( aCols[nIndex, nCodati ] ) .And.;
                    nHrini > 0 .And. !Empty( aCols[nIndex, nHrini ] ) .And.;
                    nHrFim > 0 .And. !Empty( aCols[nIndex, nHrFim ] )

                    cMesage += 'Item excluído: Atividade ' + aCols[nIndex, nCodati ] + ' - '
                    cMesage += aCols[nIndex, nHrini ] + '/' + aCols[nIndex, nHrFim ] + CRLF

                EndIf

            Next

        EndIf
       
    EndIf

    If Isblind() // sem interface
        Conout( cMesage )
    Else
        MsgInfo( cMesage, 'Parte diária')
    EndIf

Return