...
Verificar os campos que tem máscara se são calculados na para aceitar até 546:07 e caso sim, passar aceitar até 999:59.
...
Alterar o tipo do campo para int e também a máscara, que só aceita 3 dígitos. Aumentando o tamanho do campo possibilita números maiores. Neste caso teria que também alterar todos os módulos de Lançamento de eventos, como também as grids de lançamentos que tem em módulos como as Retificações, Rescisão Complementar, Entrada de Dados, etc e relatórios.
Aviso |
---|
|
Para permitir que o TOTVS Folha de Pagamento aceite valor até 999:59 no campo hora, foi necessário criar script de banco de dados para alterar o tipo de do campo para int. Caso o cliente possua índice (SQL e Oracle) ou estatísticas (SQL) vinculado ao campo hora nas tabelas nas tabelas relacionadas abaixo, poderá retornar erro ao atualizar a base e a mesma ser travada. Neste caso recomendamos que seja feito a atualização antes em uma base de homologação e caso ocorra erros referente a marcação LB.2022.08_07, orientamos que os índices (SQL e Oracle) ou estatísticas (SQL) sejam excluídos antes da atualização da base e recriados após de dados. Após o processo de atualizar atualização ser concluído o com sucesso, é necessário avaliar com o DBA da sua empresa a necessidade de recriar os índices novamente, pois os mesmos podem impactar na performance. Lembrando que os clientes possuem autonomia para fazer otimizações para o uso do banco de dados. No caso das tabelas abaixo, por padrão o produto não tem os índices para os campos relacionados. Expandir |
---|
| - PEVTRELACSALCMP campo:NHORAS
- PEVTRELACSALCMPCC campo:NHORAS
- PFENTMOV campo: HORA
- PFFINANC campo: HORA
- PFFINANCCOMPL campo: HORA
- PFHSTENTMOV campo: HORA
- PFMOVCC campo: HORA
- PFMOVCCCOMPL campo: HORA
- PFRESILICAOMOV campo: HORA
- PFVALORFORCADO campo: HORA
- PFVERBAS campo: HORA
- PFVERBASCOMPL campo: HORA
- PFVERBASDIS campo: HORA
- PFVERBASDISFER campo: HORA
- PFVERBASDISFERHIST campo: HORA
- PFVERBASDISHIST campo: HORA
- PORCAMENTOPERFILEVENTOS campo: HORA
- PFMOVTOMADOR campo: HORA
- PFRESILICAOMOVBASE campo: HORA
- PORCAMENTOMOVVALOR campo: HORA
- PPOSTRANSFERENCIA campo: HORA
- PSIMULADEMISSAOEVENTOS campo: HORA
- PFSUBSTITUICAO campo: NROHORAS
- PFSUBSTITUICAO campo: NROHORASORIGINAL
|
Foi incluída uma validação onde o atualizador não permitirá a atualização caso existem índices índice (SQL e Oracle) ou estatísticas (SQL). Caso seja reportado o erro desta situação, pode ser verificado no banco a lista de tabelas e colunas dos índices índice (SQL e Oracle) ou estatísticas (SQL) existentes com as consultas abaixo: Expandir |
---|
| Expandir |
---|
| Bloco de código |
---|
language | sql |
---|
title | Verificar índices |
---|
| SELECT TABLE_NAME, COLUMN_NAME, INDEX_NAME
FROM USER_IND_COLUMNS
WHERE
( ( TABLE_NAME = 'PEVTRELACSALCMP' AND COLUMN_NAME = 'NHORAS' )
OR ( TABLE_NAME = 'PEVTRELACSALCMPCC' AND COLUMN_NAME = 'NHORAS' )
OR ( TABLE_NAME = 'PFENTMOV' AND COLUMN_NAME = 'HORA' )
OR ( TABLE_NAME = 'PFFINANC' AND COLUMN_NAME = 'HORA' )
OR ( TABLE_NAME = 'PFFINANCCOMPL' AND COLUMN_NAME = 'HORA' )
OR ( TABLE_NAME = 'PFHSTENTMOV' AND COLUMN_NAME = 'HORA' )
OR ( TABLE_NAME = 'PFMOVCC' AND COLUMN_NAME = 'HORA' )
OR ( TABLE_NAME = 'PFMOVCCCOMPL' AND COLUMN_NAME = 'HORA' )
OR ( TABLE_NAME = 'PFRESILICAOMOV' AND COLUMN_NAME = 'HORA' )
OR ( TABLE_NAME = 'PFVALORFORCADO' AND COLUMN_NAME = 'HORA' )
OR ( TABLE_NAME = 'PFVERBAS' AND COLUMN_NAME = 'HORA' )
OR ( TABLE_NAME = 'PFVERBASCOMPL' AND COLUMN_NAME = 'HORA' )
OR ( TABLE_NAME = 'PFVERBASDIS' AND COLUMN_NAME = 'HORA' )
OR ( TABLE_NAME = 'PFVERBASDISFER' AND COLUMN_NAME = 'HORA' )
OR ( TABLE_NAME = 'PFVERBASDISFERHIST' AND COLUMN_NAME = 'HORA' )
OR ( TABLE_NAME = 'PFVERBASDISHIST' AND COLUMN_NAME = 'HORA' )
OR ( TABLE_NAME = 'PORCAMENTOPERFILEVENTOS' AND COLUMN_NAME = 'HORA' )
OR ( TABLE_NAME = 'PFMOVTOMADOR' AND COLUMN_NAME = 'HORA' )
OR ( TABLE_NAME = 'PFRESILICAOMOVBASE' AND COLUMN_NAME = 'HORA' )
OR ( TABLE_NAME = 'PORCAMENTOMOVVALOR' AND COLUMN_NAME = 'HORA' )
OR ( TABLE_NAME = 'PPOSTRANSFERENCIA' AND COLUMN_NAME = 'HORA' )
OR ( TABLE_NAME = 'PSIMULADEMISSAOEVENTOS' AND COLUMN_NAME = 'HORA' )
OR ( TABLE_NAME = 'PFSUBSTITUICAO' AND COLUMN_NAME = 'NROHORAS' )
OR ( TABLE_NAME = 'PFSUBSTITUICAO' AND COLUMN_NAME = 'NROHORASORIGINAL' )
) |
|
Expandir |
---|
| Bloco de código |
---|
language | sql |
---|
title | Verificar índices |
---|
| select tabela, type_desc, indice, colunasIndice
from
(
SELECT s.name as [schema], t.name as [tabela]
-- Detalhes do | ÃndiceIndice
, i.[type_desc], i.[is_primary_key], i.[is_unique], i.[is_unique_constraint]
, ISNULL(i.name, '') AS [indice]
, ISNULL(SUBSTRING(c.[indexed], 0, LEN(c.[indexed])), '') AS [colunasIndice]
| , ISNULL(SUBSTRING(c.[included], 0, LEN(c.[included])), '') AS [included]
ÃndiceIndice
, ISNULL(i.filter_definition, '') AS [filtered]
FROM sys.schemas s
INNER JOIN sys.tables t
ON s.[schema_id] = t.[schema_id]
INNER JOIN sys.indexes i
ON t.[object_id] = i.[object_id]
-- | RelaçãoRelacao de colunas que formam o | Ãndice INNER JOIN sys.index_columns ic
| ON c.[object_id] = ic.[object_id]
| AND c.[column_id] = ic.[column_id]
| WHERE t.[object_id] = c.[object_id]
| AND ic.[index_id] = i.[index_id]
ORDER BY [key_ordinal]
FOR XML PATH('')
) AS [indexed]
) | AND ic.[is_included_column] = 0
ORDER BY [key_ordinal]
FOR XML PATH('')
) AS [indexed]
,(
SELECT c.name + ', '
FROM sys.columns c
INNER JOIN sys.index_columns ic
ON c.[object_id] = ic.[object_id]
AND c.[column_id] = ic.[column_id]
WHERE t.[object_id] = c.[object_id]
AND ic.[index_id] = i.[index_id]
AND ic.[is_included_column] = 1
ORDER BY [key_ordinal]
FOR XML PATH('')
) AS [included]
) AS c
) AS D
WHERE
( AS c
) AS D
WHERE
( ( D.tabela = 'PEVTRELACSALCMP' AND D.colunasIndice LIKE '%NHORAS%')
OR ( D.tabela = 'PEVTRELACSALCMPCC' AND D.colunasIndice LIKE '%NHORAS%')
OR ( D.tabela = 'PFENTMOV' AND D.colunasIndice LIKE '%HORA%')
OR ( D.tabela = 'PFFINANC' AND D.colunasIndice LIKE '%HORA%')
OR ( D.tabela = 'PFFINANCCOMPL' AND D.colunasIndice LIKE '%HORA%')
OR ( D.tabela = 'PFHSTENTMOV' AND D.colunasIndice LIKE '%HORA%')
OR ( D.tabela = 'PFMOVCC' AND D.colunasIndice LIKE '%HORA%')
OR ( D.tabela = 'PFMOVCCCOMPL' AND D.colunasIndice LIKE '%HORA%')
OR ( D.tabela = 'PFRESILICAOMOV' AND D.colunasIndice LIKE '%HORA%')
OR ( D.tabela = 'PFVALORFORCADO' AND D.colunasIndice LIKE '%HORA%')
OR ( D.tabela = 'PFVERBAS' AND D.colunasIndice LIKE '%HORA%')
OR ( D.tabela = 'PFVERBASCOMPL' AND D.colunasIndice LIKE '%HORA%')
OR ( D.tabela = 'PFVERBASDIS' AND D.colunasIndice LIKE '%HORA%')
OR ( D.tabela = 'PFVERBASDISFER' AND D.colunasIndice LIKE '%HORA%')
OR ( D.tabela = 'PFVERBASDISFERHIST' AND D.colunasIndice LIKE '%HORA%')
OR ( D.tabela = 'PFVERBASDISHIST' AND D.colunasIndice LIKE '%HORA%')
OR ( D.tabela = 'PORCAMENTOPERFILEVENTOS' AND D.colunasIndice LIKE '%HORA%')
OR ( D.tabela = 'PFMOVTOMADOR' AND D.colunasIndice LIKE '%HORA%')
OR ( D.tabela = 'PFRESILICAOMOVBASE' AND D.colunasIndice LIKE '%HORA%')
OR ( D.tabela = ' | PEVTRELACSALCMPPORCAMENTOMOVVALOR' AND D.colunasIndice LIKE ' | %NHORAS%%HORA%')
OR ( D.tabela = ' | PEVTRELACSALCMPCCPPOSTRANSFERENCIA' AND D.colunasIndice LIKE ' | %NHORAS%%HORA%')
OR ( D.tabela = ' | PFENTMOVPSIMULADEMISSAOEVENTOS' AND D.colunasIndice LIKE '%HORA%')
OR ( D.tabela = ' | PFFINANCPFSUBSTITUICAO' AND D.colunasIndice LIKE ' | %HORA%%NROHORAS%')
OR ( D.tabela = ' | PFFINANCCOMPLPFSUBSTITUICAO' AND D.colunasIndice LIKE '%NROHORASORIGINAL%')
) |
|
|
Expandir |
---|
| Expandir |
---|
| Bloco de código |
---|
language | sql |
---|
title | Verificar estatísticas |
---|
| SELECT s.name [STATS_NAME], s.stats_id [STATS_ID], t.name [TABLE_NAME], c.name [COLUNM_NAME]
FROM sys.stats s
INNER JOIN sys.tables t ON s.object_id = t.object_id
INNER JOIN sys.stats_columns sc ON s.object_id = sc.object_id AND s.stats_id = sc.stats_id
INNER JOIN sys.columns c ON sc.object_id = c.object_id AND sc.column_id = c.column_id
WHERE
( object_name(c.object_id) = 'PFFINANCCOMPL' AND c.name LIKE '%HORA%')
OR ( | D.tabela object_name(c.object_id) = 'PFHSTENTMOV' AND | DcolunasIndiceD.tabela object_name(c.object_id) = 'PFMOVCC' AND | DcolunasIndiceD.tabelaobject_name(c.object_id) = 'PFMOVCCCOMPL' AND | DcolunasIndiceD.tabelaobject_name(c.object_id) = 'PFRESILICAOMOV' AND | DcolunasIndiceD.tabelaobject_name(c.object_id) = 'PFVALORFORCADO' AND | DcolunasIndiceD.tabela object_name(c.object_id) = 'PFVERBAS' AND | DcolunasIndiceD.tabela object_name(c.object_id) = 'PFVERBASCOMPL' AND | DcolunasIndiceD.tabela object_name(c.object_id) = 'PFVERBASDIS' AND | DcolunasIndiceD.tabelaobject_name(c.object_id) = 'PFVERBASDISFER' AND | DcolunasIndiceD.tabela object_name(c.object_id) = 'PFVERBASDISFERHIST' AND | DcolunasIndiceD.tabela object_name(c.object_id) = 'PFVERBASDISHIST' AND | DcolunasIndiceD.tabela object_name(c.object_id) = 'PORCAMENTOPERFILEVENTOS' AND | DcolunasIndiceD.tabela object_name(c.object_id) = 'PFMOVTOMADOR' AND | DcolunasIndiceD.tabela object_name(c.object_id) = 'PFRESILICAOMOVBASE' AND | DcolunasIndiceD.tabela object_name(c.object_id) = 'PORCAMENTOMOVVALOR' AND | DcolunasIndiceD.tabela object_name(c.object_id) = 'PPOSTRANSFERENCIA' AND | DcolunasIndiceD.tabela object_name(c.object_id) = 'PSIMULADEMISSAOEVENTOS' AND | DcolunasIndiceD.tabela object_name(c.object_id) = 'PFSUBSTITUICAO' AND | DcolunasIndicename LIKE '%NROHORAS%')
OR ( | D.tabelaobject_name(c.object_id) = 'PFSUBSTITUICAO' AND | DcolunasIndicename LIKE '%NROHORASORIGINAL%' | )
|
|
|