Árvore de páginas


01. DADOS GERAIS

Produto:

TOTVS RH

Linha de Produto:

Linha Protheus

Segmento:

RH

Módulo:

TOTVS RH (Linha Protheus) - Cargos e Salários (SIGACSA)

Função:CSAA070.PRW
País:Brasil
Ticket:14742300
Requisito/Story/Issue (informe o requisito relacionado) :DRHROTPRT-6504


02. SITUAÇÃO/REQUISITO

Necessidade de documentação da rotina automática para a rotina de Tabela Salarial.

03. SOLUÇÃO

No exemplo abaixo estamos realizando as operações de Inclusão/Alteração/Exclusão de uma tabela de Valores Exatos com 2 níveis e 2 faixas por nível.

Alguns pontos importantes:

  1. A tabela a ser inserida via rotina automática sempre será do tipo INFORMADA,
  2. Para cada operação o array aCabec que contempla o cabeçalho deve ser enviado os campos citados no exemplo, ele sempre deverá ser enviado com os dados da tabela!,
  3. A operação de exclusão, excluí todos os registros da tabela (RBR/RB6),
  4. Campo "Tipo Valor"  (RBR_TIPOVL ou RB6_TIPOVL) aceita o seguinte conteúdo: 
     1    // Tabela de Valores Exatos por Nível
     2    // Tabela de Intervalos por Nível
     3    // Tabela de Valores por Faixa
     4    // Tabela de Intervalos por Faixa


Aviso

É necessário efetuar atualização no dicionário de dados a partir da execução do UPDDISTR com o dicionário liberado no pacote de expedição do módulo RH a partir de   para os releases iguais ou superiores a versão 12.1.33.

O campo RB6_TIPOVL terá a seguinte estrutura no dicionário SX3:

X3_ARQUIVOX3_CAMPOX3_TIPOX3_TITULOX3_VALID
RB6RB6_TIPOVLNTipo Valor  Pertence("1,2,3,4")
Exemplo de ExecAuto para Cadastro de Tabela Salarial
User Function CSAA070AUT()

Local aCabec   := {}
Local aItens   := {}
Local aLinha   := {}
Private lMsErroAuto := .F.

// INCLUSÃO
//Faz chamada para inclusão de Tabela Informada / Valores Exatos / 2 Níveis / 2 Faixas por Nível (opcao 3)
aCabec   := {}
aadd(aCabec,{"RBR_FILIAL"  ,"D MG 01 "  			,   Nil  })
aadd(aCabec,{"RBR_TABELA"  ,"001" 					,	Nil  })
aadd(aCabec,{"RBR_DESCTA"  ,"TABELA SALARIAL 001" 	,	Nil  })
aadd(aCabec,{"RBR_DTREF"   ,CtoD('02/08/2022') 		,	Nil  })
aadd(aCabec,{"RBR_VLREF"   ,100						,	Nil  })
aadd(aCabec,{"RBR_USAPTO"  ,1 						,	Nil  })
aadd(aCabec,{"RBR_APLIC"   ,"2" 					,	Nil  })
aadd(aCabec,{"RBR_TIPOVL"  ,3 						,	Nil  })

// PRIMEIRO NÍVEL - PRIMEIRA FAIXA
aadd(aLinha,{"RB6_FILIAL"	,"D MG 01 "  			,   Nil })
aadd(aLinha,{"RB6_TABELA"   ,"001" 					,	Nil })
aadd(aLinha,{"RB6_DESCTA"   ,"TABELA SALARIAL 001" 	,	Nil })
aadd(aLinha,{"RB6_TIPOVL"   ,3						,	Nil })
aadd(aLinha,{"RB6_NIVEL" 	,"01" 					,	Nil })
aadd(aLinha,{"RB6_FAIXA"  	,"01" 					,	Nil })
aadd(aLinha,{"RB6_VALOR" 	, 500    				,   Nil })
aadd(aLinha,{"RB6_PTOMIN"  	, 1    					,   Nil })
aadd(aLinha,{"RB6_PTOMAX"  	, 4.99    				,   Nil })
aadd(aLinha,{"RB6_CLASSE"  	, "001"   			    ,   Nil })
aadd(aLinha,{"RB6_DTREF" 	, CtoD('02/08/2022') 	, 	Nil })
aadd(aLinha,{"RB6_COEFIC" 	, 5    					, 	Nil })
aadd(aLinha,{"RB6_ATUAL" 	, "1"    				, 	Nil })
aadd(aItens,aLinha)
aLinha := {}


// PRIMEIRO NÍVEL - SEGUNDA FAIXA
aadd(aLinha,{"RB6_FILIAL"	,"D MG 01 "  			,   Nil })
aadd(aLinha,{"RB6_TABELA"   ,"001" 					,	Nil })
aadd(aLinha,{"RB6_DESCTA"   ,"TABELA SALARIAL 001" 	,	Nil })
aadd(aLinha,{"RB6_TIPOVL"   ,3	 					,	Nil })
aadd(aLinha,{"RB6_NIVEL" 	,"01" 					,	Nil })
aadd(aLinha,{"RB6_FAIXA"  	,"02" 					,	Nil })
aadd(aLinha,{"RB6_VALOR" 	, 1000    				,   Nil })
aadd(aLinha,{"RB6_PTOMIN"  	, 5    					,   Nil })
aadd(aLinha,{"RB6_PTOMAX"  	, 10   					, 	Nil })
aadd(aLinha,{"RB6_CLASSE"  	, "001"   			    , 	Nil })
aadd(aLinha,{"RB6_DTREF" 	, CtoD('02/08/2022')    , 	Nil })
aadd(aLinha,{"RB6_COEFIC" 	, 10    				, 	Nil })
aadd(aLinha,{"RB6_ATUAL" 	, "1"    				, 	Nil })
aadd(aItens,aLinha)
aLinha := {}                


// SEGUNDO NÍVEL - PRIMEIRA FAIXA
aadd(aLinha,{"RB6_FILIAL"	,"D MG 01 "  			,   Nil })
aadd(aLinha,{"RB6_TABELA"   ,"001" 					,	Nil })
aadd(aLinha,{"RB6_DESCTA"   ,"TABELA SALARIAL 001" 	,	Nil })
aadd(aLinha,{"RB6_TIPOVL"   ,3 						,	Nil })
aadd(aLinha,{"RB6_NIVEL" 	,"02" 					,	Nil })
aadd(aLinha,{"RB6_FAIXA"  	,"01" 					,	Nil })
aadd(aLinha,{"RB6_VALOR" 	, 1000    				,   Nil })
aadd(aLinha,{"RB6_PTOMIN"  	, 11    				,   Nil })
aadd(aLinha,{"RB6_PTOMAX"  	, 14.99    				,   Nil })
aadd(aLinha,{"RB6_CLASSE"  	, "002"   			    ,   Nil })
aadd(aLinha,{"RB6_DTREF" 	, CtoD('02/08/2022')    , 	Nil })
aadd(aLinha,{"RB6_COEFIC" 	, 10    				, 	Nil })
aadd(aLinha,{"RB6_ATUAL" 	, "1"    				, 	Nil })
aadd(aItens,aLinha)
aLinha := {}     

// SEGUNDO NÍVEL - SEGUNDA FAIXA
aadd(aLinha,{"RB6_FILIAL"	,"D MG 01 "  			,   Nil })
aadd(aLinha,{"RB6_TABELA"   ,"001" 					,	Nil })
aadd(aLinha,{"RB6_DESCTA"   ,"TABELA SALARIAL 001" 	,	Nil })
aadd(aLinha,{"RB6_TIPOVL"   ,3						,	Nil })
aadd(aLinha,{"RB6_NIVEL" 	,"02" 					,	Nil })
aadd(aLinha,{"RB6_FAIXA"  	,"02" 					,	Nil })
aadd(aLinha,{"RB6_VALOR" 	, 2000    				,   Nil })
aadd(aLinha,{"RB6_PTOMIN"  	, 15    				,   Nil })
aadd(aLinha,{"RB6_PTOMAX"  	, 20    				,   Nil })
aadd(aLinha,{"RB6_CLASSE"  	, "002"   			    ,   Nil })
aadd(aLinha,{"RB6_DTREF" 	, CtoD('02/08/2022')    , 	Nil })
aadd(aLinha,{"RB6_COEFIC" 	, 20    				, 	Nil })
aadd(aLinha,{"RB6_ATUAL" 	, "1"    				, 	Nil })
aadd(aItens,aLinha)
aLinha := {}

MSExecAuto({|x,y,k,w| CSAA070(x,y,k,w)},aCabec,aItens,3,.F.)  //-- Opcao 3 - Inclui registro */


/*
// ALTERAÇÃO
// Faz chamada para alteração do Pontos Máximos da segunda faixa do segundo nível
aCabec   := {}
aadd(aCabec,{"RBR_FILIAL"  ,"D MG 01 "  			,   Nil  })
aadd(aCabec,{"RBR_TABELA"  ,"001" 					,	Nil  })
aadd(aCabec,{"RBR_DESCTA"  ,"TABELA SALARIAL 001" 	,	Nil  })
aadd(aCabec,{"RBR_DTREF"   ,CtoD('02/08/2022') 		,	Nil  })
aadd(aCabec,{"RBR_VLREF"   ,100						,	Nil  })
aadd(aCabec,{"RBR_USAPTO"  ,1 						,	Nil  })
aadd(aCabec,{"RBR_APLIC"   ,"2" 					,	Nil  })
aadd(aCabec,{"RBR_TIPOVL"  ,3 						,	Nil  })

// SEGUNDO NÍVEL - PRIMEIRA FAIXA
aadd(aLinha,{"RB6_FILIAL"	,"D MG 01 "  			,   Nil })
aadd(aLinha,{"RB6_TABELA"   ,"001" 					,	Nil })
aadd(aLinha,{"RB6_NIVEL" 	,"02" 					,	Nil })
aadd(aLinha,{"RB6_FAIXA"  	,"02" 					,	Nil })
aadd(aLinha,{"RB6_PTOMAX"  	, 25    				,   Nil })
aadd(aItens,aLinha)

MSExecAuto({|x,y,k,w| CSAA070(x,y,k,w)},aCabec,aItens,4,.F.)  //-- Opcao 4 - Altera registro
*/

/*
// EXCLUSÃO
// Faz a exclusão da tabela salarial completa (igual opção em tela Outras Ações > Excluir)
aCabec   := {}
aadd(aCabec,{"RBR_FILIAL"  ,"D MG 01 "  			,   Nil  })
aadd(aCabec,{"RBR_TABELA"  ,"001" 					,	Nil  })
aadd(aCabec,{"RBR_DESCTA"  ,"TABELA SALARIAL 001" 	,	Nil  })
aadd(aCabec,{"RBR_DTREF"   ,CtoD('02/08/2022') 		,	Nil  })
aadd(aCabec,{"RBR_VLREF"   ,100						,	Nil  })
aadd(aCabec,{"RBR_USAPTO"  ,1 						,	Nil  })
aadd(aCabec,{"RBR_APLIC"   ,"2" 					,	Nil  })
aadd(aCabec,{"RBR_TIPOVL"  ,3 						,	Nil  })

// SEGUNDO NÍVEL - PRIMEIRA FAIXA
aadd(aLinha,{"RB6_FILIAL"	,"D MG 01 "  			,   Nil })
aadd(aLinha,{"RB6_TABELA"   ,"001" 					,	Nil })
aadd(aLinha,{"RB6_DESCTA"   ,"TABELA SALARIAL 001" 	,	Nil })
aadd(aLinha,{"RB6_TIPOVL"   ,3						,	Nil })
aadd(aLinha,{"RB6_NIVEL" 	,"02" 					,	Nil })
aadd(aLinha,{"RB6_FAIXA"  	,"02" 					,	Nil })
aadd(aLinha,{"RB6_VALOR" 	, 2000    				,   Nil })
aadd(aLinha,{"RB6_PTOMIN"  	, 15    				,   Nil })
aadd(aLinha,{"RB6_PTOMAX"  	, 25    				,   Nil })
aadd(aLinha,{"RB6_CLASSE"  	, "002"   			    ,   Nil })
aadd(aLinha,{"RB6_DTREF" 	, CtoD('02/08/2022')    , 	Nil })
aadd(aLinha,{"RB6_COEFIC" 	, 20    				, 	Nil })
aadd(aLinha,{"RB6_ATUAL" 	, "1"    				, 	Nil })
aadd(aItens,aLinha)

MSExecAuto({|x,y,k,w| CSAA070(x,y,k,w)},aCabec,aItens,5,.F.)  //-- Opcao 5 - Exclui registro
*/

//Retorno de erro na execução da rotina
If lMsErroAuto   
	Alert("Não foi possível realizar a operação!")  	  
Else 	
	Alert("Operação realizada com sucesso!")  	
EndIf


Return(.T.) 


04. DEMAIS INFORMAÇÕES

N/A


05. ASSUNTOS RELACIONADOS

  • N/A