Á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 transferidos

aAutoItens[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 que sofrerá transferência

na

(SRA

(String

)

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

(String)

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 
aCampos
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))

 
Aadd(
 
aAutoItens,
 
{
 
"QS_FILIAL", xFilial("SQS","01"), Nil
 
}) Aadd( aRotAuto, { "QS_DESCRIC", "VAGA ABERTA ROTINA AUTOMATICA - II", Nil }) Aadd( aRotAuto, { "QS_FILPOST", "M PR 01", Nil }) //SE UTILIZA INTEGRAÇÃO ORGxRSP(MV_IORGRSP), é obrigatório Aadd( aRotAuto
	dDataTransf   := StoD("20181015")
  	    aAdd( aCampos, { "
QS
RA_
POSTO
FILIAL", "
000000009
02"
,
 
Nil
}
) //SE
 
UTILIZA INTEGRAÇÃO ORGxRSP(MV_IORGRSP), é obrigatório Aadd( aRotAuto, { "QS_CC", "000000001", Nil }) Aadd( aRotAuto
)
        aAdd( aCampos, { "
QS_FUNCAO", "00001", Nil }) Aadd( aRotAuto, { "QS_NRVAGA", 3, Nil }) Aadd( aRotAuto, { "QS_SOLICIT", "usuário Rotina Automatica", Nil }) Aadd( aRotAuto
RA_MAT"  , "000002" } )
        aAdd( aCampos, { "
QS
RA_
DTABERT
DEPTO", 
DATE(), Nil }
"000000002" } )
		
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