Árvore de páginas

Versões comparadas

Chave

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

Rotina Automática para transferência de funcionários GPEA180

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]

- Funcionários a serem transferidosaAutoItens

[

x][

1] - Filial Origem do funcionário

(String)

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

(String)

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

aAutoItens[x][3][y][1] - Nome do campo

na SRA (String

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 -
RSP100INC
GPEA180
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TBICONN.CH"

User Function TRANSF()
	Local aAutoItens	:= {}
	Local aCampos		:= {}
	Local 
dDataTransf
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 
INCLUSAO
de 
VAGA
funcionarios - 
SQS
SRA",80))

 
//CAMPOS OBRIGATORIOS
 
-
 
CADASTRO
 
DE
 
VAGAS
	
Aadd(
dDataTransf 
aRotAuto,
 
{ "QS_FILIAL", xFilial("SQS","01"), Nil }) Aadd( aRotAuto, { "QS_DESCRIC", "VAGA ABERTA ROTINA AUTOMATICA - II", Nil }) Aadd( aRotAuto
 := StoD("20181015")
  	    aAdd( aCampos, { "
QS
RA_
FILPOST
FILIAL", "
M PR 01", Nil
02" }
)
 
//SE UTILIZA INTEGRAÇÃO ORGxRSP(MV_IORGRSP
)
, é obrigatório

Aadd( aRotAuto, { "QS_POSTO",
 
"000000009",
 
Nil
 
})
 
//SE
 
UTILIZA
 
INTEGRAÇÃO
 
ORGxRSP(MV_IORGRSP), é obrigatório Aadd
 aAdd( 
aRotAuto
aCampos, { "
QS
RA_
CC
MAT"  , "
000000001
000002"
,
 
Nil
} 
}
)
Aadd(
 
aRotAuto,
 
{ "QS_FUNCAO", "00001", Nil }) Aadd(
 
aRotAuto,
 
{
 
"QS_NRVAGA",
 
3,
 
Nil }) Aadd
 aAdd( 
aRotAuto
aCampos, { "
QS
RA_
SOLICIT
DEPTO", "
usuário Rotina Automatica
000000002"
,
 
Nil
}
) Aadd( aRotAuto,
 
{ "QS_DTABERT", DATE(), Nil }
)
		
Aadd
aAdd( 
aRotAuto
aAutoItens, { "
QS_TIPO
01", "
1
000001", 
Nil
aCampos } ) 
//1
  
- Interna/Externa ; 2 - Interna ; 3 - Externa //CAMPOS OPCIONAIS //Aadd( aRotAuto, { "QS_VAGA", "000005", Nil }) //Aadd( aRotAuto, { "QS_AREA", "001", Nil }) //Aadd( aRotAuto, { "QS_CLIENTE", "INTERNO", Nil }) //Aadd( aRotAuto, { "QS_PRAZO", 30, Nil }) //Aadd( aRotAuto, { "QS_DTFECH", "", Nil }) //Aadd( aRotAuto, { "QS_VAGAFEC", "", Nil }) //Aadd( aRotAuto, { "QS_VCUSTO", 2000, Nil }) //Aadd( aRotAuto, { "QS_PROCESS", "0001", Nil }) //Aadd( aRotAuto, { "QS_TESTE", "001", Nil }) //Aadd( aRotAuto, { "QS_PONTOS", 150, Nil }) //Aadd( aRotAuto, { "QS_AUTOM", "", Nil }) //reprova candidato que não possui pontuação mínima automaticamente //Aadd( aRotAuto, { "QS_MSGAPV", "000001", Nil }) //Aadd( aRotAuto, { "QS_MSGREP", "000002", Nil }) //Aadd( aRotAuto, { "QS_REINSC", "", Nil }) //permite reinscrição //Aadd( aRotAuto, { "QS_MATRESP", "000009", Nil }) //Aadd( aRotAuto, { "QS_FILRESP", "01", Nil }
     
        
        aCampos := {}
   	    aAdd( aCampos, { "RA_FILIAL", "02" } )
        aAdd( aCampos, { "RA_MAT"  , "000003" } )
        aAdd( aCampos, { "RA_DEPTO", "000000003" } )
        aAdd( aAutoItens, { "01", "000002", aCampos } )
 
	//chamada ExecAuto
	MSExecAuto( {|x,y,z,w| GPEA180(x,y,z,w)}, 6, aAutoItens, dDataTransf, .T. )

	If !lMsErroAuto
		ConOut("
**** Incluido com sucesso! ****") Else
Transferencia efetuada!")
	Else
		If !IsBlind()
	       aLogAuto:= MostraErro('Null')
	       varinfo("aLogAuto",aLogAuto)
		Else
			MostraErro() //caso acionada via interface.
		EndIf	
		ConOut("Erro na 
Transferência
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