CONTEÚDO
- Visão Geral
- Exemplo de utilização
- Fluxo
- Pré-requisitos e Restrições
- Configurações do JOB
- Configurações do Consumo de Verba SellOut
- Outras Ações / Ações relacionadas
- JOB
- Tabelas UtilizadasAplicações Relacionadas
01. VISÃO GERAL
Esta documentação tem como objetivo visa auxiliar na configuração deste processo que será executado pelo JOB sp_AtualizaVerbaBaixaPDV ou pelos JOBs da Pkg_Mrl_VerbaSelloutConsumo.
O ERP oferece como opção a baixa de verba em modo assíncrono na importação das vendas de frente de caixa (PDV) e no faturamento de documento fiscal no ERP, especialmente para as empresas que trabalham com o modelo de verba compartilhada. Com essa opção, a atualização da verba sellout acontece em segundo plano, permitindo que a baixa de venda ou o faturamento seja processado com maior desempenho, reduzindo a concorrência no banco de dados e otimizando a operação.
02. EXEMPLO DE UTILIZAÇÃO
Fluxo

Imagem 1 - Fluxo dos processos executados no JOB
Pré-requisitos e Restrições
Existir verbas vigentes no momento das vendas. Entende-se como verba vigente uma verba que esteja dentro do no período de validade e que tenha saldo para consumir.
Não pode ser utilizado em conjunto com a baixa de venda agrupada.
Configurações do JOB
| Aviso |
|---|
|
Para clientes que já utilizam o JOB sp_AtualizaVerbaBaixaPDV e vão substituir pelos novos JOBs da Pkg_Mrl_VerbaSelloutConsumo será necessário a interrupção dos Schedulers de importação de vendas e verficar se todos os dados da tabela de controle de consumo assíncrono foram finalizados, ou seja, na tabela Mrl_CtrlConsumoAssincronoVerba não podem existir linhas com Status 1 ou 2. Em seguida, também interromper os Schedulers do processo de baixa de verba. Observação: Caso ainda existam linhas que não foram finalizadas na tabela de controle de consumo assíncrono após a interrupção dos Schedulers, será necessário entrar em contato com o Suporte para solicitar o ajuste antes da ativação dos novos JOBs. |
Configurar o PD CONTR_VERBA_BONIF_BAIXA_PDV do grupo BAIXA_PDV
- Opção S: Com esta configuração o consumo será online, ou seja, conforme configuração do PD FORMA_APLIC_VERBA_BONIF.
- Opção N: Com esta configuração o consumo será offline (Baixa assíncrona), realizado através da execução do JOB sp_AtualizaVerbaBaixaPDVdos JOBs, com exceção dos casos que se enquadram na opção P do PD FORMA_APLIC_VERBA_BONIF.
...
| é sugerido configurar para executar a cada 1 minuto. |
Parâmetros
- pnQtdLinhaCommit: Parâmetro de entrada opcional. Utilizado para indicar a quantidade de linhas que serão processadas antes de cada commit.
- pnNroDivisao: Parâmetro de entrada opcional. Utilizado para executar o processo para uma única Divisão. Com esta configuração é possível realizar a baixa de verba simultaneamente para divisões diferentes.
| Informações |
|---|
| icon | false |
|---|
| title | Exemplos de possíveis configurações do JOB sp_AtualizaVerbaBaixaPDV: |
|---|
|
| Totvs custom tabs box |
|---|
| tabs | Configuração 1, Configuração 2 |
|---|
| ids |
|---|
|
| passo1,passo2| config_antigo_1,config_antigo_2 |
| | Totvs custom tabs box items |
|---|
|
| passo1 | Executar para uma única divisão realizando commits a cada N linhas processadas | Dica |
|---|
| Configuração para clientes com muitas Divisões que possuem muitas empresas |
| configuradas, o exemplo abaixo executará o processo para a Divisão 1, commitando os dados a cada 50 linhas processadas. |
| Bloco de código |
|---|
| begin
sp_AtualizaVerbaBaixaPDV(pnQtdLinhaCommit => 50,
pnNroDivisao => 1);
end; |
|
| Totvs custom tabs box items |
|---|
|
| passo2 | Executar para uma lista de divisões realizando commits a cada N linhas processadas | Recomendado Configuração para clientes com muitas Divisões mas que não possuem muitas empresas | configuradas, o exemplo abaixo executará o processo para as Divisões 2,3, 4 commitando os dados a cada 50 linhas processadas. | Bloco de código |
|---|
| begin
for ListaDivisao in (select a.NroDivisao
from max_Divisao a
where a.NroDivisao in (2, 3, 4))
loop
sp_AtualizaVerbaBaixaPDV(pnQtdLinhaCommit => 50,
pnNroDivisao => ListaDivisao.NroDivisao);
end loop;
end; |
|
|
|
| Aviso |
|---|
|
O objeto abaixo faz parte do novo fluxo de baixa da verba e está disponível a partir do service pack 24.01.004 Para utilizar os novos objetos é necessário configurar o PD IND_FLUXO_CONSUMO com a opção S. |
| Informações |
|---|
| icon | false |
|---|
| title | Exemplos de possíveis configurações dos JOBs |
|---|
|
| Totvs custom tabs box |
|---|
| tabs | Configuração 1, Configuração 2 |
|---|
| ids | config_consumo_1,config_consumo_2 |
|---|
| | Totvs custom tabs box items |
|---|
| default | yes |
|---|
| referencia | config_consumo_1 |
|---|
| | Dica |
|---|
| Configuração para clientes com muitas Divisões que possuem muitas empresas, os exemplos abaixo executarão os processos para uma única Divisão ou Empresa, commitando os dados a cada 50 linhas processadas. |
| Bloco de código |
|---|
| begin
Pkg_Mrl_VerbaSelloutConsumo.sp_InsereFila(pnNroDivisao => 1,
pnQtdLinhaCommit => 50);
end; |
| Bloco de código |
|---|
| begin
Pkg_Mrl_VerbaSelloutConsumo.sp_ConsumoAssincrono(pnNroDivisao => 1,
pnQtdLinhaCommit => 50);
end; |
| Bloco de código |
|---|
| begin
Pkg_Mrl_VerbaSelloutConsumo.sp_AtualizaVenda(pnNroEmpresa => 100,
pnQtdLinhaCommit => 50);
end; |
| Bloco de código |
|---|
| begin
Pkg_Mrl_VerbaSelloutConsumo.sp_AtualizaCusto(pnNroEmpresa => 100,
pnQtdLinhaCommit => 50);
end; |
|
| Totvs custom tabs box items |
|---|
| default | no |
|---|
| referencia | config_consumo_2 |
|---|
| Configuração para clientes com muitas Divisões mas que não possuem muitas empresas, os exemplos abaixo executarão os processos para uma lista de Divisões ou Empresas,commitando os dados a cada 50 linhas processadas. | Bloco de código |
|---|
| begin
for ListaDivisao in (select a.NroDivisao
from max_Divisao a
where a.NroDivisao in (2, 3, 4))
loop
Pkg_Mrl_VerbaSelloutConsumo.sp_InsereFila(pnNroDivisao => ListaDivisao.NroDivisao,
pnQtdLinhaCommit => 50);
end loop;
end; |
| Bloco de código |
|---|
| begin
for ListaDivisao in (select a.NroDivisao
from max_Divisao a
where a.NroDivisao in (2, 3, 4))
loop
Pkg_Mrl_VerbaSelloutConsumo.sp_ConsumoAssincrono(pnNroDivisao => ListaDivisao.NroDivisao,
pnQtdLinhaCommit => 50);
end loop;
end; |
| Bloco de código |
|---|
| begin
for ListaEmpresa in (select a.NroEmpresa
from max_Empresa a
where a.NroEmpresa in (200, 300, 400))
loop
Pkg_Mrl_VerbaSelloutConsumo.sp_AtualizaVenda(pnNroEmpresa => ListaEmpresa.NroEmpresa,
pnQtdLinhaCommit => 50);
end loop;
end; |
| Bloco de código |
|---|
| begin
for ListaEmpresa in (select a.NroEmpresa
from max_Empresa a
where a.NroEmpresa in (200, 300, 400))
loop
Pkg_Mrl_VerbaSelloutConsumo.sp_AtualizaCusto(pnNroEmpresa => ListaEmpresa.NroEmpresa,
pnQtdLinhaCommit => 50);
end loop;
end; |
|
|
|
Configurações do Consumo de Verba
...
Configurar o PD FORMA_APLIC_VERBA_BONIF do grupo PED_VENDA
...
- Caminho: Módulo Parâmetros > Menu Parâmetros > Aplicação Código Geral de Operação > - MAX0023
Na Aba Emissão de NF> Marcar o checkbox , marcar a opção Utiliza Valor de Verba de Bonificação.
Image Modified
Imagem 2 - Códigos Gerais de Operação (CGO)
03.
...
Outras Ações / Ações relacionadas
04. JOB
Principais Campos e Parâmetros
Não há
05. TABELAS UTILIZADAS
Não há