Processo automático 180 - Atendimento de pedidos
Este processo é responsável por gerenciar pedidos, avaliando estoque e crédito do cliente, gerando pré-faturas e integrando com o sistema de gerenciamento de armazém (WMS) para a separação física dos produtos (quando há integração). O processo respeita parâmetros específicos e possui restrições para garantir a eficiência e a precisão no atendimento dos pedidos.
Utilização via agendador
Tipo Processo: "4 - Rotina".
Rotina Sapiens: "180 - Atendimento de pedidos".
Etapas do processo
- Carregar Lista de Pedidos: O processo inicia com o carregamento de uma lista de pedidos a serem processados e tratará cada pedido individualmente.
- Avaliar Estoque: Cada produto do pedido é avaliado para verificar a disponibilidade de estoque dos produtos solicitados. O processo sempre validará a existência de estoque com base no parâmetro da Filial para formação de estoque, conforme definido na tela Parâmetros da Filial para Compras (F070FCP).
- Avaliar Crédito do Cliente: O crédito do cliente é verificado para garantir que ele está apto a realizar a compra.
- Gerar Pré-Fatura: Uma pré-fatura é gerada para os pedidos que passaram nas avaliações de estoque e crédito. As pré-faturas geradas são do tipo 1, da Gestão de Faturamento e Outras Saídas, e do processo de Expedição.
- Fechar Pré-Fatura: Se configurada, a pré-fatura é fechada após sua geração.
- Integração com WMS: Caso necessário, o processo integra com o WMS para a separação física dos produtos.
- Respeitar Parâmetro de Aceita Parcial: O processo respeita o parâmetro de Aceita Parcial para o pedido, atendendo parcialmente se permitido.
Restrições
Produtos Kit: O kit somente será atendido se todos se todos os itens do kit puderem ser atendidos.
Observações
Fila de Processamento:
- Quando configurada uma fila de processamento (1 ou 2), pedidos que não puderem ser atendidos por falta de estoque ou outras restrições serão movidos para uma segunda fila de processamento;
- Quando um pedido for encontrado para a formação da pré-fatura (com a situação do cabeçalho como "1-Aberto Total" ou "2-Aberto Parcial"), mas nenhum dos itens atender aos requisitos necessários para formação da pré-fatura, como itens com situação que não permite a geração da pré-fatura ou falta de saldo em estoque, o pedido será registrado na tela Atendimento de pedidos (F121FPP).
Assim, o acompanhamento dos pedidos que não foram faturados por algum motivo pode ser feito na tela de consulta de atendimento de pedidos (F121FPP); - Isso evita tentativas repetidas de atendimento dos mesmos pedidos.
Paralelismo
O processo pode trabalhar com paralelismo. O paralelismo é recomendado quando se deseja que haja uma maior vazão no atendimento dos pedidos, de forma que várias instâncias processarão pedidos diferentes em paralelo, aumentando assim a vazão X tempo. Atenção à configuração do paralelismo, para evitar que haja sobreposição de processos que possam tentar atender o mesmo pedido ao mesmo tempo. Para que haja uma performance ainda maior no processo de atendimento é altamente recomendado que a entrada de pedidos seja feita de forma que os produtos estejam ordenados por Código do produto + Código da Derivação.
Paralelismo | Descrição |
---|---|
NIVELPARALELISMO = 1..10 |
O paralelismo é utilizado para permitir que vários processos rodem ao mesmo tempo, pegando pedidos diferentes em cada processo para otimizar o tempo de geração. O nível de paralelismo representa quantas execuções simultâneas (pode ser de 1 a 10) estarão executando o processo. Conforme o nível do paralelismo indicado, cada pedido cairá para uma instância diferente. |
Paralelismo suportado de 1 até 10. |
Sequência do paralelismo indica qual é o número da instância que estará executando o processo. Deve-se configurar a quantidade de processos agendados conforme o nível de paralelismo definido. Quando se define um paralelismo maior que 1 entende-se que terá um segundo processo agendado que irá realizar o mesmo processo de atendimento e que parte dos pedidos serão atendidos por um processo e parte por outro processo. |
Funcionamento
Exemplo da configuração:
- SEQUENCIAPARALELISMO = 1: indica que é a instância numero 1 do paralelismo.
- NIVELPARALELISMO = 5: indicará que tem 5 instâncias para rodar (neste caso é necessário cadastrar 5 processos agendados para esta empresa/filial, mudando a sequência de paralelismo).
Detalhamento
- Nível de paralelismo: 1 - Somente 1 instância, todos os pedidos serão enviados para atendimento.
- Nível de paralelismo: 2
- Sequência de paralelismo = 1: Pedidos pares;
- Sequência de paralelismo = 2: Pedidos ímpares.
- Nível de paralelismo: 3
- Sequência de paralelismo = 1: Pedidos finalizados em 1, 2, 3;
- Sequência de paralelismo = 2: Pedidos finalizados em 4, 5, 6;
- Sequência de paralelismo = 3: Pedidos finalizados em 7, 8, 9, 0.
- Nível de paralelismo: 4
- Sequência de paralelismo = 1: Pedidos finalizados em 1, 2;
- Sequência de paralelismo = 2: Pedidos finalizados em 3, 4;
- Sequência de paralelismo = 3: Pedidos finalizados em 5, 6, 7;
- Sequência de paralelismo = 4: Pedidos finalizados em 8, 9, 0.
- Nível de paralelismo: 5
- Sequência de paralelismo = 1: Pedidos finalizados em 1 e 2;
- Sequência de paralelismo = 2: Pedidos finalizados em 3 e 4;
- Sequência de paralelismo = 3: Pedidos finalizados em 5 e 6;
- Sequência de paralelismo = 4: Pedidos finalizados em 7 e 8;
- Sequência de paralelismo = 5: Pedidos finalizados em 9 e 0.
Parâmetros de Processo
Parâmetro | Tipo | Descrição |
---|---|---|
EMPRESA |
NÚMERO |
Indica qual a empresa para filtro dos pedidos. Nota Este campo não possui abrangência, e, caso necessário parametrizar para mais de uma filial, é necessário um processo para cada filial. |
FILIAL | NÚMERO |
Indica qual a filial para filtro dos pedidos Caso parâmetros de empresa e filial não sejam informados, serão utilizados empresa e filial do processo automático. Nota Este campo não possui abrangência, e, caso necessário parametrizar para mais de uma filial, é necessário um processo para cada filial. |
FILTRO_PEDIDO | TEXTO |
Campo opcional que permite inserir um filtro no comando SQL para deixar alguns pedidos de fora. Caso o filtro de pedidos seja informado, ele é o primeiro filtro a ser executado e, os pedidos não retornados por conta do filtro não entrarão em nenhuma esteira de processamento. Exemplo de filtro por rota de entrega: (E120PED.CODROE = '123'). Por padrão, o filtro é informado com o operacional SQL "AND" quando há a necessidade de conectá-lo a outros campos. Porém, neste caso específico, deve ser utilizado sem o operacional SQL "AND". A tabela principal da rotina é a E120PED e deve ser utilizada como base para realizar filtros. Outras tabelas podem ser incorporadas através de INNER JOIN, mas sempre com a E120PED como tabela base. Dessa forma, é importante garantir que as tabelas adicionais permitam a realização de INNER JOIN a partir da E120PED. Segue um exemplo de filtro para retornar pedidos que não contenham produtos com o código "TESTE": É importante, ainda, esclarecer que não existem identificadores de regras para customizar filtros para a formação de pré-faturas. Esse filtro é único e exclusivamente personalizado através do parâmetro FILTRO_PEDIDO. |
QUANTIDADE_PEDIDOS | NÚMERO | Quantidade máxima de pedidos a serem processados a cada execução. O valor máximo processado é 500. Se for informado número acima de 500, será assumido 500. |
FECHAR_PREFATURAS | NÚMERO | Indicativo se a pré-fatura deve ser fechada após sua geração. |
ITENS_EM_PREPARACAO | NÚMERO (1/2) | Indica se, ao atender o pedido, devem ser avaliados itens em preparação (itens em preparação são itens que estão em situação "em carga"), e que ainda não podem ser faturados. |
CONSIDERAR_TRANSP_PEDIDO | TEXTO (S/N) | Indica se, ao gerar a pré-fatura deve-se herdar a transportadora do pedido para a pré-fatura. |
TRANSPORTADORA | NÚMERO (1/2) | Indica o código da transportadora para a qual devem ser atreladas as pré-faturas geradas. Caso o campo CONSIDERAR_TRANSP_PEDIDO esteja igual a "S" e no pedido houver transportadora informada, será mantida a transportadora do pedido. |
GERAR_BLOQUEADO | TEXTO (S/N) | Indicativo se deverá gerar pré-fatura para clientes que possuem crédito bloqueado. Valores possíveis: "S - Sim" e "N - Não". Em caso de "S - Sim", e o crédito do cliente estar bloqueado, a pré-fatura será gerada com situação "1". Em caso de "N - Não" e o crédito do cliente estar bloqueado, não será gerada a pré-fatura. |
QUANTIDADE_TENTATIVAS | NÚMERO | Este parâmetro só tem aplicação quando a fila de processamento (FILA_PROCESSAMENTO) for igual a 2. Ele indica a quantidade de tentativas que devem ser feitas para atender um pedido que entrou para a fila secundária. O número máximo de tentativas que o processo executará a tentativa de geração da pré-fatura pelo processo da FILA_PROCESSAMENTO = 2, é 10, neste caso fazendo dez tentativas de geração. |
FILA_PROCESSAMENTO | NÚMERO |
Indica a fila de processamento para execução. A fila de processamento tem por objetivo fazer com que pedidos que apresentem alguma inconsistência no seu processamento, como por exemplo, falta de estoque, sejam direcionados para uma segunda fila, evitando que toda a vez o sistema tente atender novamente aquele pedido e fique apresentando sempre no mesmo erro. Isso evita processamento desnecessário e dá uma maior vazão ao atendimento dos pedidos .Valores possíveis "1" e "2".
Atenção Quando trabalhar com paralelismo, o indicado é que o paralelismo seja utilizado somente para FILA_PROCESSAMENTO = 1. Quando parâmetro FILA_PROCESSAMENTO não for preenchido, não serão movidos pedidos para a fila secundária. Exemplos:
Situação 1
Processo rodando com FILA_PROCESSAMENTO = 1.
Situação 2
O pedido pode ser atendido parcial, porém somente alguns dos itens puderam ser atendidos. Nesse caso, o pedido também será movido para a fila secundária, pois um ou mais itens não foram atendidos. Este pedido poderá entrar novamente na fila de execução de duas formas:
Atenção!
Quando o processamento da fila secundária e um pedido for atendido totalmente, o mesmo é removido da fila, não mantendo seu histórico de tentativas. |
DIAS_PEDIDO | NÚMERO |
Indica a quantidade de dias passados que o processo deve considerar ao buscar os pedidos na base para gerar a pré-fatura. Por exemplo, se configurado para 7, o processo buscará pedidos dos últimos 7 dias. |