Árvore de páginas

Versões comparadas

Chave

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

ÍNDICE

Índice

01. VISÃO GERAL

Este documento de referência tem como objetivo exemplificar a utilização do MsExecAuto da rotina de Leitura e Apontamento (PONM010). Em alguns caso existe a necessidade de inclusão ou exclusão de marcações para um ou mais funcionários, para isso existe o

...

MsExecAuto do PONM010. 

Aviso
titleImportante

O MsExecAuto do PONM010 é de utilização apenas para inclusão ou exclusão de marcações.
As inclusões das marcações serão incluidas incluídas como marcação manualInformada, ou seja, essa marcação será considerada como se fosse incluída manualmente por um usuário do Protheus.
As marcações só serão excluídas se as mesmas não tiverem sido apontadas ou não forem marcações originais (originada por um REP).

A rotina PONM010 não deverá ser executada pelo Schedule, para isso temos o PONSCHEDULER ou o MsExecAuto do PONM010. Para isso deve ser utilizado o PONSCHEDULER. Para mais informações acesse o link: PONSCHEDULER

02. EXEMPLO DE UTILIZAÇÃO

...

Para utilização do MsExecAuto teremos que criar uma função de usuário e informar um Array onde as duas primeiras posições serão Filial e Matrícula que receberá as marcações e a 3º posição um outro Array com todas as marcações que serão incluídas ou excluídas. Abaixo está um exemplo de como deverá ser preenchido e enviado para o MsExecAuto do PONM010:

Bloco de código
languagejava
themeEclipse
firstline1
titlePONMARC
linenumberstrue
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TOPCONN.CH"
#INCLUDE "TBICONN.CH"

//-------------------------------------------------------------------
/*/{Protheus.doc}
@author     fabio.gimenez
@version    1.0
/*/
//-------------------------------------------------------------------
User Function PONMARC()
Local aAutoCab          := {}
Local aSP8              := {}
Local nI                := 0

Private lMsErroAuto     := .F.

// Marcações que serão incluídas ou excluídas para a Matrícua 005022 Filial D MG 01
Aadd(aSP8,{{"P8_FILIAL","D MG 01 "},{"P8_MAT","005022"},{"P8_DATA",sToD("20230707")},{"P8_HORA",9}})
Aadd(aSP8,{{"P8_FILIAL","D MG 01 "},{"P8_MAT","005022"},{"P8_DATA",sToD("20230707")},{"P8_HORA",12}})
Aadd(aSP8,{{"P8_FILIAL","D MG 01 "},{"P8_MAT","005022"},{"P8_DATA",sToD("20230707")},{"P8_HORA",13}})
Aadd(aSP8,{{"P8_FILIAL","D MG 01 "},{"P8_MAT","005022"},{"P8_DATA",sToD("20230707")},{"P8_HORA",18}})

// Matricula e Filial o funciinário.
Aadd(aAutoCab,{{"RA_FILIAL","D MG 01 "},{"RA_MAT","005022"},aSP8})

// Marcações que serão incluídas ou excluídas para a Matrícua 005023 Filial D MG 01
aSP8 := {}
Aadd(aSP8,{{"P8_FILIAL","D MG 01 "},{"P8_MAT","005023"},{"P8_DATA",sToD("20230707")},{"P8_HORA",8.49}})
Aadd(aSP8,{{"P8_FILIAL","D MG 01 "},{"P8_MAT","005023"},{"P8_DATA",sToD("20230707")},{"P8_HORA",12.01}})
Aadd(aSP8,{{"P8_FILIAL","D MG 01 "},{"P8_MAT","005023"},{"P8_DATA",sToD("20230707")},{"P8_HORA",12.59}})
Aadd(aSP8,{{"P8_FILIAL","D MG 01 "},{"P8_MAT","005023"},{"P8_DATA",sToD("20230707")},{"P8_HORA",18.11}})

// Matricula e Filial o funciinário.
Aadd(aAutoCab,{{"RA_FILIAL","D MG 01 "},{"RA_MAT","005023"},aSP8})

/*/ Parâmetros PONM010
    lWork		,;	//01 -> Se o "Start" foi via WorkFlow
    lUserDef 	,;	//02 -> Não utilizado para o ExecAuto
    lLimita		,;	//03 -> Não utilizado para o ExecAuto
    cProcFil	,;	//04 -> Não utilizado para o ExecAuto
    lProcFil	,;	//05 -> Não utilizado para o ExecAuto
    lApoNLidas	,;	//06 -> Não utilizado para o ExecAuto
    lForceR		,;	//07 -> Não utilizado para o ExecAuto
    xAutoCab	,;  //08 -> Identificação dos Funcionários para o ExecAuto
    xAutoItens	,;  //09 -> Marcações dos funcionários que serão incluídas ou excluídas
    nOpcAuto    ,;  //10 -> Exclusão ou inclsuão da marcação - 1 - Exclusão, 3 Inclusão
/*/

// Laço de repetições para a chamada do MsExecAuto por funcionário
For nI := 1 To Len(aAutoCab)
    MSExecAuto({|a,b,c,d,e,f,g,h,i,j| PONM010(a,b,c,d,e,f,g,h,i,j)},.T.,"","","","","","",aAutoCab[nI],aAutoCab[nI,3],3)
    If lMsErroAuto
        MostraErro()
    Else
        Conout("ExecAuto PONM010 Finalizado")
    EndIf
Next

Return
Aviso
titleImportante

Caso o ExecAuto seja executado sem interface, é necessário colocar o PREPARE ENVIRONMENT EMPRESA ("T1") FILIAL ("D MG 01") e RESET ENVIRONMENT. Se o ExecAuto for executado dentro do Protheus, chamando a rotina pelo Menu, não é necessário colocar o PREPARE ENVIRONMENT e RESET ENVIRONMENT.


Após a execução do MsExecAuto, veremos no console log a mensagem que foi incluída no programa "ExecAuto PONM010 Finalizado" para os dois funcionários.

Image Added

Ao consultar a tabela de marcações (SP8), poderemos ver que as 8 marcações foram incluidas com sucesso.

Image Added


HTML
<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>