Árvore de páginas

Í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. 

Importante

O MsExecAuto do PONM010 é de utilização apenas para inclusão ou exclusão de marcações.
As marcações serão incluídas como marcação Informada, ou seja, essa marcação será considerada como 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 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:

PONMARC
#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

Importante

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.

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