Árvore de páginas

Versões comparadas

Chave

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

...

Produto:

Microsiga Protheus®

Versões:

12.1.17

Ocorrência:

Exemplo de uso da Rotina Automática(ExecAuto) para Transferência de Funcionários - GPEA180

Ambiente:

P12

Passo a passo:

Essa rotina tem por objetivo, realizar a transferência de um ou mais funcionários existentes na filial logada:

Sintaxe:GPEA180( nOpcAuto, aAutoItens, dDataTransf , lAutomato )
Parâmetros:
nOpcAutoOperação - 6 (Transferir)
aAutoItens

Array com as informações dos funcionários a serem transferidos:

aAutoItens[x][1] - Filial Origem do funcionário

aAutoItens[x][2] - Matrícula Origem do funcionário

aAutoItens[x][3] - Array com os campos do funcionário cuja transferência será efetuada

aAutoItens[x][3][y][1] - Nome do campo que sofrerá transferência (SRA)

aAutoItens[x][3][y][2] - Novo conteúdo - Destino

Onde todos os conteúdos serão em formato String e:

x = número de funcionários da filial logada a serem transferidos e,

y = número de campos a serem transferidos de cada funcionário.

dDataTransf

Data da transferência (opcional)

Formato: data

Caso não seja passada por parâmetro, a data utilizada será a data base do sistema.

lAutomatoValor lógico que deve ser enviado com valor '.T.'  caso não seja desejada a exibição de nenhuma interação com o usuário .
Exemplo:
Bloco de código
titleExecAuto - GPEA180
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TBICONN.CH"

User Function TRANSF()
	Local aAutoItens	:= {}
	Local aCampos		:= {}
	Local aLogAuto		:= {}
	Local dDataTransf	:=  CtoD("15/10/2018")
	Private lMsErroAuto	:= .F.


	PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "GPE"

	ConOut(Repl("-",80))
	ConOut("Inicio: "+Time())
	ConOut(PadC("Rotina Automatica Transferencia de funcionarios - SRA",80))

     	dDataTransf   := StoD("2016101520181015")
  	    aAdd( aCampos, { "RA_FILIAL", "02" } )
        aAdd( aCampos, { "RA_MAT"  , "000002" } )
        aAdd( aCampos, { "RA_DEPTO", "D RJ 01 " } )"000000002" } )
		aAdd( aAutoItens, { "01", "000001", aCampos } )        
        
        aCampos := {}
   	    aAdd( aCampos, { "RA_FILIAL", "02" } )
        aAdd( aCampos, { "RA_MAT"  , "000002000003" } )
        aAdd( aCampos, { "RA_DEPTO", "000000002000000003" } )
        aAdd( aAutoItens, { "01", "000001000002", aCampos } )
 
	//chamada ExecAuto
	MSExecAuto( {|x,y,z,w| GPEA180(x,y,z,w)}, 6, aAutoItens, dDataTransf, .T. )

	If !lMsErroAuto
		ConOut("Transferencia efetuada!")
	Else
		If !IsBlind()
	       aLogAuto:= MostraErro('Null')
	       varinfo("aLogAuto",aLogAuto)
		Else
			MostraErro() //caso acionada via interface.
		EndIf	
		ConOut("Erro na Transferencia!")
	EndIf

	ConOut("Fim : "+Time())
	ConOut(Repl("-",80))

	RESET ENVIRONMENT

Return NIL
Observações:

Os nomes dos campos a serem passados na terceira dimensão do array seguem o padrão dos campos da SRA: RA_FILIAL, RA_MAT,... ( RA_xxx ), exceto o campo correspondente a grupo de empresas, cujo nome a ser passado será M_EMPRESA.

Os períodos nos processos Origem e Destino devem estar correspondentes, e os lançamentos do funcionário a ser transferido devem estar de acordo, para não necessitar de informação adicional de transferência de processo.

Necessário inicializar o array aCampos a cada funcionário

Pacote:12.1.17: https://suporte.totvs.com/portal/p/10098/download?e=718497