Tempo aproximado para leitura: 03:00:00 min
Ocorrência
Ao incluir o documento de entrada com natureza de rendimento ocorre o error.log abaixo:
array out of bounds ( 0 of 241 ) on A103FKW(MATA103REINF.PRW)
Importante: O número do cabeçalho do erro ( 0 of 241 ) pode variar de acordo com o dicionario de dados.
Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) - Compras/GCT - Protheus Release 12.1.33.
Causa
Quando o erro "array out of bounds" inicia-se com zero ( 0 of 241 ) geralmente o campo utilizado pelo sistema estar inativo na base de dados. Um dos fatores é devido o campo não estar marcado como USADO no configurador, ou existe alguma validação naquele campo que está tornando-o nulo
Solução
Para solucionar essa ocorrência, solicitamos que acesse o Configurador > Base de Dados > Dicionario > Base de Dados:
Passo 1: Selecione a empresa que ocorre o erro > Clique em Dicionario de Dados > Clique na Lupa de pesquisa conforme imagem abaixo:
Passo 2: Busque pela tabela SD1 > Clique em Alterar:
Passo 3: Localize os campos descritos abaixo > Clique em Alterar > Vá aba "Uso" > Marque os campos como "Usado":
Campos que devem estar marcados como "Usado" e com o nível do campo = "1" para correção deste erro:
- D1_VALIRR
- D1_VALPIS
- D1_VALCOF
- D1_VALCSL
- D1_VALIPI
- D1_TOTAL
- D1_BASEIRR
- D1_BASEPIS
- D1_BASECOF
- D1_BASECSL
- D1_BASEIPI
Passo 4: Após marcar todos os campos acima como USADO, clique no Disquete para salvar:
IMPORTANTE:
1-) Caso algum dos campos apontados acima NÃO exista, solicitamos que atualize os pacotes dos dicionários Completo ( SDS.bra ) e o diferencial completo ( SDF.bra ) disponíveis em nosso portal de download.
2-) Se por acaso um dos campos acima não estiver marcado como Usado e, no momento de marcar ao salvar o sistema apresenta o help abaixo :
Se o tamanho do campo for 14 com 2 decimais, altere a picture para @E 99,999,999,999.99 e salve a alteração.
OBS.: Essa validação de picture começou a ocorrer por conta da evolução da LIB que passou a validar o formato ( picture ) dos campos.
3-) Lembrando que por padrão, o nível desses campos não pode ser alterado via configurador.
Exemplo de uma query executada para verificação e validação dos campos envolvidos nesse erro, considerando a SX3 da empresa 99 ( teste ).
SELECT X3_CAMPO, X3_TIPO, X3_USADO,X3_NIVEL FROM SX3990
WHERE X3_CAMPO IN ('D1_VALIRR','D1_VALPIS','D1_VALCOF','D1_VALCSL','D1_VALIPI','D1_TOTAL','D1_BASEIRR','D1_BASEPIS','D1_BASECOF','D1_BASECSL','D1_BASEIPI'). O resultado obtido nas configurações padrão do sistema, é o abaixo :
0 Comentários