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:
- A tabela a ser inserida via rotina automática sempre será do tipo INFORMADA,
- 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!,
- A operação de exclusão, excluí todos os registros da tabela (RBR/RB6),
- 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_ARQUIVO | X3_CAMPO | X3_TIPO | X3_TITULO | X3_VALID |
|---|---|---|---|---|
| RB6 | RB6_TIPOVL | N | Tipo 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
Import HTML Content
Visão Geral
Conteúdo das Ferramentas