Páginas filhas
  • ER LOGWMS01-829 ME 15.6.2 - Convocação Ativa - Inventário

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.                                                             

  

Informações Gerais

Especificação

Produto

Logix

Módulo

WMS

Segmento Executor

Supply Chain - Inovação

Projeto1

LOGWMS01

IRM/EPIC1

Jira
serverJIRA Produção
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId0c783de1-186e-383b-975c-a1acd7d76cb5
keyLOGWMS01-545

Requisito/Story/Issue1

Jira
serverJIRA Produção
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId0c783de1-186e-383b-975c-a1acd7d76cb5
keyLOGWMS01-8292265

Subtarefa1

Jira
serverJIRA Produçãocolumnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId0c783de1-186e-383b-975c-a1acd7d76cb5
keyLOGWMS01-18772298

País

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

(  ) USA  (  ) Colombia   (  ) Outro _____________.

Aviso
titleATENÇÃO!

Os requisitos tratados por esta especificação fazem parte de um conjunto de requisitos destinados a atender a funcionalidade de "Convocação Ativa".

O desenvolvimento será realizado de forma incremental, sendo assim, cada requisito irá incrementar a funcionalidade da convocação ativa que será considerada como completa quando todos os requisitos estiverem concluídos.

Esta especificação trata do requisito 6 de um total de 13 requisitos. Sendo que as especificações dos requisitos anteriores estão em:

Introdução & Requisito 1 → ER_LOGWMS01-845_ME_15.1-Convocação_Ativa-Grupo_de_Endereços

Requisito 2 → ER_LOGWMS01-942_ME_15.2-Convocação_Ativa-Configuração

Requisito 3 → ER_LOGWMS01-826_ME_15.3-Convocação_Ativa-Gerenciamento

Requisito 4 → ER_LOGWMS01-827_ME_15.4-Convocação_Ativa-Recebimento

Requisito 5 → ER_LOGWMS01-1621_ME15.5-Convocação_Ativa-Armazenagem_Transferencia

 Requisito 6.1ER LOGWMS01-829 ME 15.6.1 Convocação Ativa - Ajustes nos controles da convocação ativa BRA

Dica
titleSUGESTÃO

Os arquivos originais(dinâmicos) utilizados e aqui apresentados em formato de imagem(estático) estão anexos a este documento.

Image Added

Image Added

Objetivos

  • Permitir que seja realizada convocação ativa da atividade de inventário.
    • Gerar pendência de convocação ativa ao liberar e gerar contagens do inventário quando parâmetro que bloqueia atividade de inventário pública estiver desabilitado;
    • Atualizar/Excluir registros de pendência de convocação ativa ao alocar/desalocar usuário no plano de inventário;
    • Excluir pendências de convocação ativa ao cancelar plano de inventário;
    • Realizar tratamentos no programa de convocação ativa para que usuário executor em branco (= " ") tenha o mesmo comportamento de usuário executor nulo (NULL) da mesma forma que tratamentos realizados para não nulos (IS NOT NULL) sejam aplicados para diferente de branco ( <> " ");
    • Realizar tratamentos para verificar convocação ativa de usuário para atividade de inventário realizando alocação automática para novo executor nas contagens do plano. Deverá ser respeitada a forma de alocação já existente no plano caso possuir (por plano ou endereço), assumindo como padrão a alocação por endereços caso nenhum tipo de alocação tenha sido realizada ainda.
    • Alterar programa de contagem no coletor de dados para que ao acionar a opção <F8> para finalizar contagem do usuário no coletor de dados a participação do usuário seja efetivamente encerrada. Por cosenquência alterar o controle de alocação no plano de inventário para que permita reabrir participação de um determinado usuário.  Alterações disponíveis somente quando empresa utilizar convocação ativa.
    • Atualizar registros de pendência de convocação ativa ao executar contagem de inventário através do coletor de dados pelos formatos atuais via lista pública ou particular.
    • Atualizar registros de pendência de convocação ativa ao iniciar/finalizar contagem de inventário através do coletor de dados quando executado através da convocação ativa. Permitir contagem somente nos endereços alocados para o usuário executor.
    • Finalizar possíveis pendências de convocação ativa ao finalizar o plano de inventário;

Objetos a serem alterados ou criados

RotinaTipo de OperaçãoOpção de Menu
wmsr139[Alteração]<função de regra de negócio da convocação ativa>
wms6743[Alteração]Logix → Logística → WMS → Coletores → Diversos → Convocação Ativa
sup20007[Alteração]Logix → Logística → WMS → Inventário  → SUP2000 - Plano de inventário → Contagens → Gerar
sup2033[Alteração]Logix → Logística → WMS → Inventário  → SUP2000 - Plano de inventário → Alocação de recursos → Confirmar
sup20332[Novo]Logix → Logística → WMS → Inventário  → SUP2000 - Plano de inventário → Alocação de recursos → Reabrir exec.
sup2067[Alteração]

<acionado através da lista pública/particular para atividades de inventário>

Logix → Logística → WMS → Coletores → Pendências → WMS6070 - Lista pública/WMS6069 - Lista particular

sup2065[Alteração]<função de regra de negócio responsável por direcionar a abertura do programa de coletor de dados do SUP ou do WMS>
wms6077[Alteração]<função de regra de negócio de controle de execução dos programas chamados pela lista pública e particular >

Definição da Regra de Negócio

  1. 1. Permitir que seja realizada convocação ativa da atividade de inventário.
    1. Objetivo: Gerar pendência de convocação ativa ao liberar contagem do inventário quando parâmetro que bloqueia atividade de inventário pública esteja desabilitado ('N').
      • Contextualização:
      1. Para que as atividades de inventário possam ser avaliadas para convocação ativa através do programa de convocação ativa WMS6743 faz-se necessário um registro na tabela wms_conv_ativa para cada ordem de serviço / atividade e usuário executor. Com base nisso, o programa WMS6743 irá convocar o usuário executor quando já definido, ou caso ainda não possua usuário executor definido irá avaliar e convocar qual usuário deverá realizar a atividade com base nas configurações realizadas no programa WMS6742. Identificando que o usuário executor não poderá executar todas as contagens pendentes no inventário uma nova pendência de convocação ativa será gerado pelo próprio programa WMS6743 para a mesma ordem de serviço / atividade. Vale lembrar que o relacionamento ordem de serviço x plano de inventário é de 1x1.
      • Segue abaixo os passos sugeridos para atingir o objetivo proposto:
      1. Criar função wmsr139_gera_pendencias_conv_ativa_plano_inventario. Esta função deverá receber como parâmetro empresa(l_empresa), plano de inventário(l_plano_inventario) e modo de exibição de mensagem (l_modo_exibicao_msg). Com base nestas informações e considerando o relacionamento 1x1 do inventário e ordem de serviço, a função deverá gerar novos registros na wms_conv_ativa para cada ordem de serviço, atividade e usuário alocado (caso exista) do plano de inventário. Por ser uma função RNL que poderá ser chamada de outros pontos, ao gerar registros para convocação ativa onde já existam usuários alocados, considerar as duas possibilidades de alocação, por plano(sup_plan_inv_ativ_executore por endereço(sup_plan_inv_ativ_endereco). A função deverá retornar TRUE quando sucesso e FALSE em caso de algum erro de processamento. Transacionar a operação realizando os mesmos controles existentes para outras funções do fonte wmsr139.
        • Origem das informações para inclusão de novo registro em wms_conv_ativa:

          Expandir
          titleClique aqui para verificar as indicações para implementações

          empresa → sup_plan_inv_ativ_endereco.empresa;
          trans_conv_ativa → gerado automaticamente;
          ctr_ent_sai_veic_docum → NULL;
          ordem_servico → wms_ordem_servico_ativ.ordem_servico;
          ativ → wms_ordem_servico_ativ.ativ;
          tip_clas_operacao → wms_clas_operacao.tip_clas_operacao ;
          conv_ativa_atividade → wms_tip_processo.conv_ativa_atividade;
          tip_processo → wms_tip_processo.tip_processo;
          dat_hor_inclusao → data e hora do momento da inclusão (CURRENT YEAR TO SECOND);
          usuario_alocacao → usuário "logado" (p_user), somente quando usuario_executor IS NOT NULL;
          dat_hor_alocacao_executor → data e hora do momento do processamento (CURRENT YEAR TO SECOND), somente quando usuario_executor IS NOT NULL;
          usuario_executor → SE sup_plan_inv_ativ_executor.usuario_alocado = ' ' ENTÃO alocado sup_plan_inv_ativ_endereco.usuario_alocado SENÃO sup_plan_inv_ativ_executor.usuario_alocado
          deposit → wms_ordem_servico.deposit;
          programa_origem → log1200_nome_programa() ;
          programa_alteracao → NULL;

          Usar como base para consulta a tabela sup_plan_inv_ativ_endereco. A partir da tabela sup_plan_inv_ativ_endereco relacionar com as demais mencionadas acima para obter os valores. Para evitar registros duplicados, utilizar a cláusula DISTINCT.

          Atenção com as tabelas  sup_plan_inv_ativ_executor e sup_plan_inv_ativ_endereco. A tabela sup_plan_inv_ativ_executor é gravada quando o processo de alocação é feito para todo o plano, sendo assim os usuários alocados valem para todos os endereços de uma contagem do plano. A tabela sup_plan_inv_ativ_endereco é sempre gravada, porém o usuário alocado para cada endereço só é gravado caso a alocação tenha sido feita por endereço.

        • Como esta função deverá ser "genérica" para geração de pendências de convocação ativa, algumas situações devem ser tratadas para garantir que não seja gerado registro incorretamente:
          • Situação da ordem de serviço e da atividade não pode estar 5 - Encerrada, 6 - Cancelada ou 3 - Bloqueada;
          • Somente usuários com contagens pendentes ou em andamento (sit_atividade <> 'F');
          • Não deve duplicar registro para a mesma ordem de serviço, atividade e usuário executor;
          • Situação do executor da ordem de serviço não pode estar concluída (wms_os_ativ_executor.sit_execucao = 5)

      2. Alterar a função wmsr139_gera_pendencias_conv_ativa_os_ativ incluindo nova condição para a atividade de inventário (conv_ativa_atividade=12). Dentro desta nova condição, chamar uma nova função (wms_retorna_plano_inventario) a ser criada para obter o código do plano de inventário através da ordem de serviço. Após obter o plano de inventário, chamar a nova função wmsr139_gera_pendencias_conv_ativa_plano_inventario.
      3. Alterar a função sup20007_libera_plano_e_gera_contagens para que após confirmar mensagem de liberação do plano e/ou geração de contagem e tenha sido realizado o respectivo processamento, seja verificado se o parâmetro utiliza_conv_ativa = 'S' e em seguida se o parâmetro bloqueia_os_inv_lista_publica está igual a 'N'. Estando como 'N' a nova função de geração de pendência de convocação ativa para inventário deverá ser chamada wmsr139_gera_pendencias_conv_ativa_plano_inventario. 

    2. Objetivo: Atualizar/Excluir registros de pendência de convocação ativa ao alocar/desalocar usuário no plano de inventário;
      • Contextualização:  
      1. Conforme visto no item anterior, quando o parâmetro bloqueia_os_inv_lista_publica está igual a 'N', logo após a contagem é possível executar a contagem dos itens mesmo não realizando alocações específicas para um usuário. Caso o parâmetro bloqueia_os_inv_lista_publica seja igual a 'S', então as atividades só serão direcionadas aos usuários quando realizado o processo de alocação. Existem duas formas de alocação (a) Por plano (b) Por endereço. Quando realizado alocação por endereço, um determinado usuário só poderá contar endereços alocados para ele em uma determinada contagem do plano ou sem alocação para outro usuário. Quando realizado alocação por plano, basta relacionar usuários a contagens, estes usuários poderão então realizar contagem em qualquer endereço. Independente deste formato/origem de alocação, as mesmas deverão ser replicadas para a convocação ativa de forma distinta para ordem de serviço / atividade / usuário executor.
      • Segue abaixo os passos sugeridos para atingir o objetivo proposto:
      1. Seguindo o mesmo formato de trabalho das demais funções existentes no wmsr139, criar nova função wmsr139_atualiza_pendencias_conv_ativa_plano_inventario semelhante a função wmsr139_atualiza_pendencias_conv_ativa_transf_armz_os. Esta nova função terá o objetivo de identificar registros de convocação ativa para usuários não mais alocados para contagem e atualizar estes registros com usuários alocados em contagem ainda sem pendência de convocação ativa. Vale lembrar que diferente da função citada como exemplo, a origem das informações de alocações não estarão nos processos de movimentos e sim nas alocações em contagens gravadas em sup_plan_inv_ativ_executor  quando por plano e sup_plan_inv_ativ_endereco quando por endereço. Esta nova função deverá receber como parâmetro empresa(l_empresa), plano de inventário(l_plano_inventario) e modo de exibição de mensagem (l_modo_exibicao_msg). Retornar TRUE ou FALSE no caso de um erro de processamento. Transacionar a operação realizando os mesmos controles existentes para outras funções do fonte wmsr139.
      2. Ainda seguindo o mesmo formato de trabalho das demais funções existentes no wmsr139, criar nova função wmsr139_ajusta_pendencias_conv_ativa_plano_inventario semelhante a função wmsr139_ajusta_pendencias_conv_ativa_transf_armz_os. Esta função deverá ter o objetivo de atualizar pendências desatualizadas através da função wmsr139_atualiza_pendencias_conv_ativa_plano_inventario , gerar novas pendências caso necessário através da função wmsr139_gera_pendencias_conv_ativa_plano_inventario e excluir pendências de usuários não mais alocados nas contagens através da função wmst274_wms_conv_ativa_exclui_condicional passando um where clause que identifique registros da wms_conv_ativa onde não possua mais uma ordem de serviço / atividade e usuário executor nas alocações do plano, seja em sup_plan_inv_ativ_executor ou sup_plan_inv_ativ_endereco. Esta nova função deverá receber como parâmetro empresa(l_empresa), plano de inventário(l_plano_inventario) e modo de exibição de mensagem (l_modo_exibicao_msg). Retornar TRUE ou FALSE no caso de um erro de processamento. Transacionar a operação realizando os mesmos controles existentes para outras funções do fonte wmsr139.
      3. Alterar a função wmsr139_ajusta_pendencias_conv_ativa incluindo nova condição para a atividade de inventário (conv_ativa_atividade=12). Dentro desta nova condição, chamar uma nova função (wms_retorna_plano_inventario) a ser criada para obter o código do plano de inventário através da ordem de serviço. Após obter o plano de inventário, chamar a nova função wmsr139_ajusta_pendencias_conv_ativa_plano_inventario.
      4. Alterar a função sup2033_after_confirm_toolbar para que após a confirmação e processamento da alocação (antes do commit), seja por endereço ou por plano, sejam atualizadas as pendências de convocação ativa do plano através da nova função wmsr139_ajusta_pendencias_conv_ativa_plano_inventario. Condicionar a chamada da função a utiliza_conv_ativa = 'S'.

    3. Objetivo: Excluir pendências de convocação ativa ao cancelar plano de inventário;
      • Contextualização:
      1. Quando um plano de inventário é cancelado, os processos relacionados a ele como por exemplo, movimentos, alocações, ordem de serviço entre outros também são cancelados. Uma vez um plano de inventário cancelado o mesmo não volta para outra situação e nenhum outro processo relacionado ao inventário é executado. Sendo assim, ao cancelar um plano de inventário, as pendências de convocação ativa devem ser removidas.
      • Segue abaixo os passos sugeridos para atingir o objetivo proposto:
      1. Criar nova função wmsr139_exclui_pendencias_conv_ativa_plano_inventario que receba por parâmetro empresa(l_empresa), plano de inventário(l_plano_inventario) e modo de exibição de mensagem (l_modo_exibicao_msg) e efetue a exclusão das pendências de convocação ativa relacionadas ao plano através da ordme de serviço e atividade. A exclusão deverá ser feita através da função wmst274_wms_conv_ativa_exclui_condicional pois desta forma o histórico do registro será gravado em wms_conv_ativa_historico. Outras funções fazem operação semelhante como por exemplo wmsr139_exclui_pendencias_conv_ativa_transf_armz_os.
      2. Alterar a função  wmsr139_exclui_pendencias_conv_ativa_os incluindo nova condição para a atividade de inventário (conv_ativa_atividade=12). Dentro desta nova condição, chamar uma nova função (wms_retorna_plano_inventarioa ser criada para obter o código do plano de inventário através da ordem de serviço. Após obter o plano de inventário, chamar a nova função wmsr139_exclui_pendencias_conv_ativa_plano_inventario.

    4. Objetivo: Realizar tratamentos no programa de convocação ativa para que usuário executor em branco (= " ") tenha o mesmo comportamento de usuário executor nulo (NULL) da mesma forma que tratamentos realizados para não nulos (IS NOT NULL) sejam aplicados para diferente de branco ( <> " ").
      • Contextualização:
      1. As tabelas que servirão como base para gerar pendência de convocação ativa no inventário (sup_plan_inv_ativ_executorsup_plan_inv_ativ_endereco) possuem o campo referente ao usuário executor da atividade(usuario_alocado) como NOT NULL e ao gravar que uma determinada contagem não possui usuário executor é gravado " " ao invés de NULL. Atualmente o programa de convocação ativa possue algumas tratativas para quando usuário IS NULL e também para IS NOT NULL. Por exemplo para buscar atividades para convocação de usuário, são avalidas atividades que estão alocadas para o uusário ou atividades que não possuem usuário. Será necessário adaptar estes pontos para que sejam realizados os mesmos tratamentos quando IS NULL e = " " da mesma forma  para IS NOT NULL e <> " ".
      • Segue abaixo os passos sugeridos para atingir o objetivo proposto:
      1. Alterar as funções abaixo do wms6743 para considerar (wms_conv_ativa.usuario_executor IS NULL OR wms_conv_ativa.usuario_executor = " "); e  (wms_conv_ativa.usuario_executor IS NOT NULL AND wms_conv_ativa.usuario_executor <> " ").

        Expandir
        titleClique aqui para verificar as indicações para implementações

        wms6743_busca_atividades_conv_ativa
        wms6743_existe_executor_atividade

    5. Objetivo: Realizar tratamentos para verificar convocação ativa de usuário para atividade de inventário realizando alocação automática para novo executor nas contagens do plano. Deverá ser respeitada a forma de alocação (por plano ou endereço) já existente no plano caso já tenha sido realizada alocação , assumindo como padrão a alocação por endereços caso nenhum tipo de alocação tenha sido realizada ainda. 
      • Contextualização:
      1.  Ao ser adicionada uma nova atividade para convocação ativa, algumas alterações devem ser realizadas. A primeira é a alteração na busca de atividades (wms6743_busca_atividades_conv_ativa e wms6743_carrega_dados_todas_atividades) no progama de convocação ativa para que esta nova atividade possa ser considerada para convocação ou não do usuário. Após ter alterado o programa para buscar esta nova atividade, deve-se implementar as regras específicas desta atividade para identificar se o usuário realmente pode executar a atividade no momento em que está sendo processado o programa (wms6743_permite_executar_atividade). Para o caso do inventário essa avalição deve levar em consideração as restrições de depositante e endereços configuradas em WMS6742. As restrições de depositante já são validadas na busca das atividades, bastando então implementar a verificação da existência de contagens com endereços onde o usuário esteja configurado para trabalhar sendo que o usuário não tenha realizado contagem anterior neste endereço. Em seguida, o programa de convocação ativa deverá efetivamente alocar o usuário (wms6743_aloca_usuario_atividade) no processo de contagem com os respectivos endereços onde o usuário pode realizar contagem. Por fim, o último passo é executar o programa de contagem de inventário para que o usuário possa efetivamente realizar as contagens (wms6743_executa_atividade). Ao exibir a tela de convocação do usuário, apresentar a descrição reduzida do depositante e o código do plano de inventário, além das informações "padrões" referente a descrição reduzida da atividade e sua respectiva instrução.. 
      • Segue abaixo os passos sugeridos para atingir o objetivo proposto:
      1. Alterar a função wms6743_busca_atividades_conv_ativa para que a atividades de inventário possam ser encontradas na busca;
      2. Alterar as funções wms6743_busca_identificador_1wms6743_busca_identificador_2, e wms6743_busca_identificador_3 para que seja apresentado a descrição reduzida do depositante, o código do plano de inventário, e em branco respectivamente  quando a atividade a ser executada for referente a contagem de inventário (conv_ativ_atividade = 12). 
        Image Added
      3. Alterar a função wms6743_carrega_dados_todas_atividades para que a atividade de inventário possa ser encontrada na busca e que os respectivos filtros possíveis possam ser aplicados na nova atividade (atenção aos filtros de endereços origem e destino);
      4. Criar nova função wms6743_permite_executar_ativ_inventario para que seja consultado os endereços disponíveis para contagem(sup_plan_inv_ativ_endereco.sit_atividade<>'F' AND sup_plan_inv_ativ_endereco.usuario_alocado = ' ') onde o usuário não tenha realizado contagem anterior(seq_repeticao_atividade), e se alocação por endereço deve existir pelo menos 1 configurado para o usuário em WMS6742 (wms_conv_ativa_config_grp_end & wms_grupo_endereco_detalhe) , isso se o usuário possuir alguma restrição de endereço configurada. Incluir chamada para esta nova função em wms6743_permite_executar_atividade quando conv_ativ_atividade = 12.
      5. Criar nova função wms6743_aloca_usuario_ativ_inventario para que seja identificado os endereços disponíveis para contagem (sup_plan_inv_ativ_endereco.sit_atividade<>'F' AND sup_plan_inv_ativ_endereco.usuario_alocado = ' 'onde o usuário ainda não tenha realizado uma contagem anterior(seq_repeticao_atividadee se alocação por endereço, verificar os endereços onde o usuário possa trabalhar conforme WMS6742 (wms_conv_ativa_config_grp_end & wms_grupo_endereco_detalhe)Identificando a existência de endereços disponíveis para contagem, obter o modo de alocação do plano (sup_par_selecao_inventario.parametro = 'sup2033_tipo_aloca'). Em seguida realizar efetivamente a alocação do usuário conforme os itens abaixo:
        • Incluir usuário executor na ordem de serviço caso não exista (wms_os_ativ_executor → um registro por usuário na ordem de serviço)
        • Incluir recurso do usuário na ordem de serviço caso não exista (wms_ordem_servico_ativ_recurso → um registro para o recurso principal na ordem de serviço);
        • Se alocação por plano, incluir novo executor de contagem caso ainda não exista (sup_plan_inv_ativ_executor →  um registro por usuário/contagem);
        • Se alocação por endereço, atualizar o executor da contagem no endereço (sup_plan_inv_ativ_endereco →  atualizar cada registro referente aos endereços/contagem )
        • Incluir usuários habilitados no plano de inventário caso ainda não exista (sup_inv_usuario_habilitado → um registro por usuário);
      6. Alterar a função wms6743_executa_atividade para que a rotina de contagem seja chamada através do wms6077_administra_os como já é feito para outras atividades.  

    6. Objetivo: Alterar programa de contagem no coletor de dados para que ao acionar a opção F8 para finalizar contagem do usuário no coletor de dados a participação do usuário seja efetivamente encerrada. Por cosenquência alterar o controle de alocação no plano de inventário para que permita reabrir participação de um determinado usuário. 
      • Contextualização:
      1. Atualmente ao realizar alocação de um usuário em um plano de inventário este usuário não é mais "desalocado" ou tem sua finalização efetivamente concluída  até que o inventário todo seja concluído. Com convocação ativa isso passa a ser problema principalmente nas situações de alocação de usuário por plano ou nos casos de contagem por item onde a conclusão da participação do usuário na contagem depnde de uma ação dele. Atualmente o usuário pode apenas ser desalocado de uma determinada contagem ou endereço de uma contagem, porém ele fica com acesso disponível a contagem via coletor de dados até o cancelamento ou finalização do plano. O objetivo dessa alteração é permitir que o usuário informe que concluiu sua participação na contagem e assim ficar livre para executar uma próxima atividade. Para concluir sua participação o usuário não poderá ter contagens alocadas pendentes ou interrompidas (consistências já existentes). Uma vez que o usuário tenha concluído sua participação na contagem do plano, faz-se necessário uma opção que permita reabrir esta participação caso a finalização tenha sido por engano ou seja necessário reabrir para nova participação do usuário no plano.
      • Segue abaixo os passos sugeridos para atingir o objetivo proposto:
      1. Alterar a exibição das opções disponíveis na contagem no coletor de dados na tela principal quando empresa utilizar convocação ativa(utiliza_conv_ativa = 'S')  . Alterar a opção "F8  Retorna lista" para "F8 Encerra exec.";
      2. Alterar a atual mensagem de confirmação da opção F8 de "Retorna a lista de atividades? ", para "Encerrar participacao nas contagens do plano?" quando empresa utilizar convocação ativa (utiliza_conv_ativa = 'S');
      3. Para que a opção F8 efetivamente encerre a participação do usuário na ordem de serviço do plano de inventário, caso a empresa utilize convocação ativa(utiliza_conv_ativa = 'S') alterar a função sup2067_prepara_retorno() para que a variável l_funcao receba  
      1. "SUP2065" ao invés do atual "sup2067".
      2. Incluir nova opção "Reabrir executor" na toolbar da opção "Alocação Recursos" (sup2033) que permita reabertura de participação de usuário. Ao clicar nesta nova opção, exibir as opções de "Confirmar" e "Cancelar", desabilitar todos os campos e botões da tela exceto o "Plano". Posicionar foco no campo Plano para que o usuário informe o código do plano e ao sair do campo seja aberta o novo programa (sup20332) conforme imagem abaixo. Antes de abrir a tela realizar algumas validações, (a) a situação do plano(wms_plano_inventario.sit_plano)  deve estar "Liberado"(2) ou "Em andamento"(3), e (b) deve existir pelo menos uma contagem em andamento. Para construir a verificação de contagem em andamento pode-se consultar a função sup20007_carrega_contagens() como forma de helpPara carregar as informações na tela, consultar os usuários executores do plano (wms_os_ativ_executor) onde a situação(sit_execucao) seja 5-Concluída (desconsiderar recurso e não repetir usuário). O usuário poderá selecionar qual executor deseja reabrir execução selecionando a linha no grid e confirmando a operação. Ao confirmar a operação alterar a situação(sit_execucao) do executor (wms_os_ativ_executor) para 1-Pendete (desconsiderar recurso), e atualizar as pendência de convocação ativa  através da função wmsr139_ajusta_pendencias_conv_ativa_plano_inventario.
        Image Added
      3. Alterar as funções sup2033_grava_alocacoes e sup2033_grava_executores_plano, acionadas quando confirmada geração de alocação nas cotnagens quando alocação por endereço ou por plano respectivamente. Alterar estas funções para que ao realizar a alocação de cada usuário selecionado, seja verificado se o usuário possui participação encerrada na ordem de serviço do plano (wms_os_ativ_executor.sit_execucao = 5) . Caso exista, a mesma deve voltar para 1-Pendente. Condicionar alteração a utilização de convocação ativa (utiliza_conv_ativa = 'S').

    1. Objetivo: Atualizar registros de pendência de convocação ativa ao iniciar/finalizar contagem de inventário através do coletor de dados quando executado pelos formatos atuais via lista pública ou particular.
      • Contextualização:
      1. O funcionamento da rotina de contagem do inventário (SUP2067) via lista pública/particular não deve sofrer mudança de comportamento da forma que é executado atualmente. Ou seja, as consistências, regras de utilização deverão permanecer as mesmas. As alterações a serem realizadas tem apenas o objetivo de atualizar os registros de pendência de convocação ativa com o objetivo de não gerar convocação ativa para contagens em endereços que já estão sendo contados por lista pública/particular por algum motivo. As atualizações devem acontecer basicamente em dois momentos, ao iniciar contagem em um novo endereço não alocado incialmente para o usuário e ao concluir contagem de endereço não restando novos endereços alocados para contagem do usuário.
      • Segue abaixo os passos sugeridos para atingir o objetivo proposto:
      1. Alterar a função sup2067_verifica_endereco_plano para que caso seja utilizado a convocação ativa(utiliza_conv_ativa = 'S'), seja chamada a função wmsr139_gera_pendencias_conv_ativa_plano_inventario. O objetivo é que ao iniciar a contagem de um enderçeo ainda não alocado(l_novo_endereco = TRUE), um registro de convocação ativa para o usuário será criado caso já não exista.
      2. Criar uma nova função sup2067_usuario_possui_endereco_alocado, através de empresa e plano, esta função deverá verificar se o usuário não possui mais alocações de contagens pendentes para execução. Lembrando que caso a alocação tenha acontecido por plano (sup_plan_inv_ativ_executor) o usuário só não terá mais alocação caso não exista nenhum endereço previsto para contagem (sup_plan_inv_ativ_endereco).  Caso a alocação seja por endereço, basta verificar se existe alguma alocação em endereço (sup_plan_inv_ativ_endereco) para o usuário desconsiderando recurso.
      3. Seguindo o mesmo formato de trabalho das demais funções existentes no wmsr139, criar nova função wmsr139_finaliza_pendencias_conv_ativa_plano_inventario semelhante a função wmsr139_finaliza_pendencias_conv_ativa_transf_armz Esta nova função terá o objetivo de buscar um registro na convocação ativa para o plano de inventário e usuário executor e realizar o processo de finalização da pendência de convocação ativa. Esta nova função deverá receber como parâmetro empresa(l_empresa), transação da convocação ativa(l_trans_conv_ativa)plano de inventário(l_plano_inventario), usuario(l_usuario), indicador se após a finalização realiza ou não ajuste de pendência(l_ajusta_pends_os) e por fim  modo de exibição de mensagem (l_modo_exibicao_msg). Retornar TRUE ou FALSE no caso de um erro de processamento. Transacionar a operação realizando os mesmos controles existentes para outras funções do fonte wmsr139.
      4. Alterar a função  wmsr139_finaliza_pendencias_conv_ativa incluindo nova condição para a atividade de inventário (conv_ativa_atividade=12). Dentro desta nova condição, chamar uma nova função (wms_retorna_plano_inventario) a ser criada para obter o código do plano de inventário através da ordem de serviço. Após obter o plano de inventário, chamar a nova função wmsr139_finaliza_pendencias_conv_ativa_plano_inventario.
      5. Alterar a função sup2067_grava_atividades_concluidas para que caso utilize convocação ativa (utiliza_conv_ativa='S') , após ter mudado a situação da contagem de um endereço para 'F' e não exista mais nenhum endereço previsto para contagem para o usuário no plano (sup2067_usuario_possui_endereco_alocado() = FALSE) seja então chamada a função para finalização da pendência de convocação ativa wmsr139_finaliza_pendencias_conv_ativa_plano_inventario.

    2. Objetivo: Atualizar registros de pendência de convocação ativa ao iniciar/finalizar contagem de inventário através do coletor de dados quando executado através da convocação ativa. Permitir contagem somente nos endereços alocados para o usuário executor.
      • Contextualização: 
      1. Conforme outras atividades implementadas para convocação ativa, ao iniciar/interromper e finalizar uma atividade as pendências de convocação ativa devem ser atualizadas caso necessário para que o controle de convocação ativa seja consistente com as atividades que estão sendo realizadas. Como a rotina de contagem do inventário é chamada via lista pública/particular(wms6077_administra_os), a mesma já foi alterada em outros requisitos para tratar estas atualizações. O que será necessário efetivamente implementar é o bloqueio de contagem em endereços onde o usuário não está alocado quando a alocação feita por endereço, quando alocação por plano atualmente já é verificado.
      • Segue abaixo os passos sugeridos para atingir o objetivo proposto:
      1. O ajustes e finalização das pendências de convocação ativa não precisarão de nova implementação a não ser as já previstas nesta especificação para tratar o conv_ativa_atividade = 12 em wmsr139_ajusta_pendencias_conv_ativa e wmsr139_finaliza_pendencias_conv_ativa.
      2. Criar nova função sup2067_recurso_alocado_ativ_seq_end semelhante a função existente sup2067_recurso_alocado_ativ_seq porém consultando a tabela sup_plan_inv_ativ_endereco ao invés da tabela sup_plan_inv_ativ_executor.
      3. Alterar a função sup2067_verifica_endereco_plano para que caso a empresa utilize convocação ativa(utiliza_conv_ativa='S') e tenha sido chamada da rotina de convocação ativa (m_trans_conv_ativa <> 0) e o tipo de alocação do plano tenha sido por endereço(m_tip_alocacao_plano = 'E') seja verificado se o endereço informado pelo usuário(l_endereco) está alocado para ele através da nova função (sup2067_recurso_alocado_ativ_seq_end). Exibir a mensagem já exibida quando a verificação é feita por plano substituindo a palavra "plano" por "endereço".
      4. Alterar a função sup2067_popup_endereco para que caso seja utilizado convocação ativa utiliza_conv_ativa = 'S' e o programa tenha sido chamado da convocação ativa (m_trans_conv_ativa = 0)  e o tipo de alocação do plano tenha sido por endereço(m_tip_alocacao_plano = 'E'), seja exibido somente os endereços alocados para o usuário. Alterar também para sempre exibir a descrição reduzida do endereço ao invés das coordenadas conforme é buscado atualmente.

    3. Objetivo: Finalizar possíveis pendências de convocação ativa ao finalizar o plano de inventário;
      • Contextualização: 
      1. Ao encerrar um inventário, caso tenha ficado pendente alguma pendência de convocaçãoa tiva, excluir.
      • Segue abaixo os passos sugeridos para atingir o objetivo proposto:
      1. O encerramento da ordem de serviço/atividade de inventário se da através da função sup34806_encerra_os_atividades → wmsr22_encerra_cancela_os_atividade. Esta função atualmente já chama wmsr139_finaliza_pendencias_conv_ativa que já deverá ter sido alterada nesta especificação para tratar a nova função de finalização wmsr139_finaliza_pendencias_conv_ativa_plano_inventario para inventário. Sendo assim, possivelmente nenhuma alteração adicional será necessária.
Definição da Regra de Negócio

 

 

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.