Class SeqPcpc020
f_seq_pcpc_020
.
Tudo indica que a lógica deste processo em Vision foi feita para contornar inconsistências.
Ela faz o seguinte:
- Bloqueia o registro da tabela
empr_001
. - Lê o número desse registro.
- Lê também o número de uma sequência do banco.
- Se existir ordem de confecção com o número da sequência, volta ao passo 2 (não precisava: bastava repetir o passo 3).
- Se não existir, então, se esse número ainda não for maior que o número do registro, volta ao passo 2 (também não precisava: bastava repetir o passo 3).
- Se for maior, então, atualiza o registro com o número encontrado.
Já dá pra ver alguns problemas:
- Só precisava ler o registo da tabela uma vez, no início.
- Se a sequência não é maior que o número do registro, não precisa verificar nada: tem que incrementar a sequência até que supere o número do registro.
No fim das contas, a regra funciona desta forma: incrementando o sequencial e o número do registro, o que vai valer é o maior deles, desde que não exista ordem de confecção com esse número; se existir, valerá o seguinte que não estiver em uso.
Aí eu pergunto:
- Como pode o número do registro da tabela ser maior que o sequencial?
- Como pode existir ordem de produção com um número maior que todos eles?
- Por que estão usando dois - ou três! - sistemas de numeração?!
É preciso abandonar o uso da coluna empr_001.ordem_confeccao
. Essa coluna
deveria ser eliminada, e é preciso assegurar que nenhum lugar do sistema a esteja usando.
Isso já resolveria também outros problemas com bloqueio de registro.
A função em Vision executa este processo numa transação em uma conexão separada. Esta classe
Java não controla transação: isto fica a cargo da aplicação que a usa. Basta que a aplicação
forneça uma AppConnection
conveniente e controle a transação em cima dela.
- Author:
- sergio
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic int
executar
(br.com.intersys.systextil.connection.AppConnection conn)
-
Field Details
-
versao_systextilweb_f
public int versao_systextilweb_f
-
-
Constructor Details
-
SeqPcpc020
public SeqPcpc020()
-
-
Method Details
-
executar
public static int executar(br.com.intersys.systextil.connection.AppConnection conn)
-