Árvore de páginas

 

Informações Gerais

 

Especificação

Produto

PIMSCANA

Módulo

CUSTAG

Segmento Executor

Agroindústria

Projeto1

AGRO PIMS

IRM1

AGRPIMS01-142

Requisito1

AGRPIMS01-143

Subtarefa1

AGRPIMS01-184

Chamado2

 

País

( x ) Brasil  ( x ) Argentina  (x  ) Mexico  (  ) Chile  (x  ) Paraguai  (x  ) Equador

( x ) USA  (x  ) Colombia   (x  ) Outro: Peru____________.

Outros

<Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>.

   Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos). 

Objetivo

Reescrever e refatorar a rotina de processamento de orçamento agroindustrial em linguagem Java, na plataforma PIMSServer, para obter maior performance em comparação com o processo atual desenvolvido em Centura.

 

Definição da Regra de Negócio

 A rotina de processamento de orçamento é divida em fases de processamento, cada fase é uma sub-rotina com objetivos específicos. Logo a especificação será detalhada em fases.

 

Rotina

Tipo de Operação

Opção de Menu

Regras de Negócio

[Processamento de Orçamento]

[Alteração]

[Processamento / Orçamento]

-

 

A rotina de processamento do orçamento é dividida em fases de processamento, cada fase é uma sub-rotina e contém um objetivo, logo a especificação será detalhada em fases.

 

Fase 0 – Pré-Processamento

 

O pré-processamento consiste em gerar a tabela PLC_CC_COMPO_ORG e verificação de operações sem grupo de custeio em PLANOPER, como não são cálculos complexos eles devem ficar no centura e não serão reescritos.

 

Fase 1 – Captação de matrizes no PLATIV

 

A primeira parte desta fase é parametrizada, ela pode seguir dois caminhos, o primeiro é a captação dos planejamentos por local e a transformação em matriz do custag. Como é possível ver abaixo existem dois SQL’s que são responsáveis por obter o header da matriz e os detalhes, então é possível realizar apenas um SQL com todas essas informações e inseri-las nas matrizes.

 

 

 

Já o segundo caminho desta fase é a captação dos planejamentos por local e a transformação desses registros em valores operacionais, pulando a etapa da geração de matrizes. No CENTURA é realizado um insert (PLCOPER) com select (PA_OPLOC_REC).

 

 

Mas esse tipo de operação pode apresentar problemas de performance com grandes quantidades de informações (+200k de registros), e depois de realizado o comando acima, é feito um select recuperando apenas alguns componentes que precisam ser valorizados.

 

 

Para evitar essas duas operações é necessário transforma-las em apenas uma, mas tomando o cuidado com grandes quantidades de informações. Selecione os registros de todos os componentes, mas limitando o resultado em 15k por vez, valorizar os componentes e inseri-los em PLCOPER.

 

A segunda parte desta fase é a captação das matrizes do PLATIV e a inserção em matriz do CUSTAG. No centura é um insert com select, mas como o histórico não é de grandes quantidades de informações, não é necessário realizar nenhum modificação, apenas reescrever essa parte.

 

Fase 2 – Captação dos planejamentos operacionais PLATIV

 

Essa fase também é dividida em duas etapas, e ambas etapas são bem simples, a primeira é uma seleção de registros em PA_OPLOC_REC mas apenas por operação e a inserção em PLANOPER e a segunda é uma seleção em PA_PLGLOB*** e inserção em PLANOPER, em ambas as etapas não é necessária nenhuma modificação, apenas reescrever estas partes.

 

Fase 3 – Verificar índices de COMP_VAL

 

Fase responsável por recuperar todos os registros de COMP_VAL e verificar os índices econômicos desta tabela, não é necessário modificar a sua estrutura, apenas reescrever a fase.

 

Fase 4 – Apropriações diretas

 

Nessa fase é recuperado os valores de APROPDIR e serão transportados para PLCPRIM e PLCRCTA, ao realizar o transporte é calculado os índices dos valores de APROPDIR.

No centura era recuperado a data de APROPDIR e ela era modificada para ser o primeiro dia do mês, então para agilizar o processo e diminuir a quantidade de registros verificados, realizar um TRUNC no banco de dados.

 

 

Fase 5 – Geração de PLCOPER a partir de PLANOPER

 

Está fase é dividida em duas etapas, a primeira é a geração da PLCOPER partindo dos registros de PLANOPER, para cada registro é feita uma busca de matrizes. A segunda etapa é uma seleção da própria PLCOPER mais apenas dos componentes do tipo Q, para gerar os valores operacionais dos equipamentos que trabalharam, a partir dessa seleção é feita a mesma busca de matrizes.

No centura o código está replicado, reescrever essas duas etapas em uma só, reutilizando o código.

 

 

 

Fase 6 – Geração de PLCOPER para componentes derivados

 

Fase responsável por gerar os componentes derivados em PLCOPER, ela está dividida em duas etapas, a primeira etapa é a geração dos componentes derivados de componentes do tipo encargo. No centura é um select e insere cada registro na PLCOPER, então recomendo realizar um insert com select já que não são muitas informações a serem inseridas.

 

 

Já a segunda etapa é uma geração de componente derivados onde a forma de derivação é de equipamentos, é uma rotina que também valoriza os componentes gerados, não é necessário mudar a sua estrutura, apenas reescreve-la.

 

Fase 7 – Geração de PLCCCEQ a partir de PLCOPER

 

Fase que gera o histórico de produção dos componentes equipamento e mão de obra. No centura é selecionado os registros e acumulado os valores de produção no primeiro dia de cada mês. Para melhorar a performance é preciso realizar um trunc, diminuindo consideravelmente a quantidade de registros e diminuindo processamento.

 

 

Fase 8 - Geração de PLCPRIM a partir de PLCOPER

 

Está fase gera os valores primários a partir dos valores operacionais. No centura é feito uma seleção em PLCOPER e para cada registro é verificado se ele é do tipo derivado para procurar o centro de custo origem. Depois dessa verificação é realizado uma busca em PLCPRIM usando a chave primaria para saber se o registro já existe.

 

 

Construir um select que já traga o centro de custo correto para os componentes derivados e também já traga os valores corretos para realizar um update em PLCPRIM nas chaves que já existam. Desta forma evita-se vários selects que diminuem drasticamente a performance do processo.

 

Fase 9 - Geração de PLCPRIM a partir de PLCOPER

 

Está fase gera os valores rateados por conta a partir dos valores operacionais. No centura é feito uma seleção em PLCOPER e para cada registro é realizado uma busca em PLCRCTA usando a chave primaria para saber se o registro já existe.

 

 

Construir um select que já traga os valores corretos para realizar um update em PLCRCTA nas chaves que já existam. Desta forma evita-se vários selects que diminuem drasticamente a performance do processo.

 

 

Fase 10 - Gerando bases de rateio calculadas

 

Fase que recupera as bases de rateio calculadas e calcula o seu fator. É possível refatorar os SQLs e funcionalidades que recuperam e calculam o fator, como essa fase está dividida em etapas, é necessário juntar os SQLs e reaproveitar as funcionalidades que estão reescritas no código e que são iguais para essas etapas.

 

 

 

Fase 11 - Gerando rateio de contas para centro de custo

 

Essa fase ira ratear as contas em centro de custo, necessário realizar alguns ajustes na estrutura do código, recuperar as bases de rateio no momento da execução da seleção principal, tornando o processo mais rápido.

Fase 12 - Gerando contas derivadas

 

Fase que deve gerar as contas derivadas a partir de CTA_CSTO.CD_CTA_ORI em PLCPRIM.CD_CONTA, reescrever a rotina e incluir a inserção e atualização de dados em lote.

 

Fase 13 - Calculando pré-rateio bases calculadas e definidas

 

Reescrever a rotina que faz checagens e monta as tabelas PLCPRERAT e PLCPREVAL que serão a origem dos dados para rateio.

 

Fase 14 - Rateando bases calculadas e definidas

 

Essa fase irá ratear os valores de base calculada e definida que foram previamente montados na fase 8. É necessário adaptar a chamada do RATEIO32.DLL via ambiente PIMSServer, essa fase utiliza a leitura e escrita de arquivos de texto, logo é preciso criar essa funcionalidade no PIMSServer.

 

Fase 15 - Gerando histórico de valores secundários

 

Nessa fase serão gerados os dados de valores secundários e primários a partir de PLCPRIM e PLCRAT, é preciso refatorar essa rotina para não realizar uma checagem se o registro já existe em PLCSEC e realizar a inserção de dados em lote.

 

 

 

Fase 16 – Valorização de PLCCCEQ

 

Realizar um select de PLCSEC e efetuar um update em PLCCCEQ, modificar o select principal para recuperar os componentes derivados e realizar a derivação.

 

Fase 17 - Calculando valor unitário de componentes do tipo equipamento

Fase 18 - Calculando valor unitário de componentes do tipo mão de obra

 

Ambas as fases serão apenas reescritas, o objetivo é calcular o valor unitário de cada tipo de componente, após encontrar esse valor é preciso realizar uma atualização em lote de todos os registros em PLCOPER.

 

 

Fase 19 – Ajuste de rateio nos valores unitários de equipamentos

 

Essa fase ajusta os rateios para centro de custos de equipamento, isso acontece por causa do qualificador que pode deixar o custo de rateio diferente do operacional, não será necessário modificar a estrutura da fase, apenas reescreve-la.

 

Fase 20 – Valorização de unitários de componentes derivados

 

Modificar o select principal para truncar a data, diminuindo a quantidade de registros e já calcular a derivação no select.

 

 

 

Fase 21 - Atualizando valor médio do período processado

 

Fase que atualiza PLCOPER com o valor médio por componente no período processado. No centura essa fase está em 3 etapas, por tipo de componente, construir uma forma de uma única rotina realizar o cálculo do valor médio de todos componentes.

 

 

 

 

 

 

 

 

 

Fase 22 - Calculando pré-rateio bases auto-definidas

Fase 23 - Rateando bases auto-definidas

Fase 24 - Gerando histórico de valores secundários por base auto-definida

Fase 25 - Calculando pré-rateio bases pós auto-definidas

Fase 26 - Rateando bases pós auto-definidas

Fase 27 - Gerando histórico de valores secundários por base pós auto-definida

 

Todas essas fases devem seguir o mesmo modelo das fases 8, 9 e 10 apenas atentando as regras que cada uma tem, como a validação de rateio de base auto-definida enviando para calculada/definida.

Fase 28 – Atualização de taxa fixa

 

Remover essa fase, por que ela realiza uma update em PLCOPER jogando o VL_CONSUM em VL_TAXFIX, então é mais fácil que em qualquer insert ou update em PLCOPER, modificar o VL_TAXFIX com o valor de VL_CONSUM.

 

Fase 29 – Gerando valores adquiridos - parte 1

Fase 30 - Gerando valores adquiridos - parte 2

 

Em ambas as rotinas atuais são feitas seleções por centro de custo e para cada centro de custo é feita uma busca de valores em cada origem de valor adquirido, é necessário refatorar as seleções principais para recuperar todas as origens de valores adquiridos de uma só vez e realizar a inserção de todos os valores em lote.

 

 

 

 

 

Protótipo de Tela

 

 

 

 

(