CONTEÚDO
1. OBJETIVO
Desenvolver uma documentação complementar do Cadastro de Operando de Faturamento (WMS6401), detalhando principalmente os campos que compõem a aba 2- Customizações.
2. ABA 2 - CUSTOMIZAÇÕES
2.1. Cálculo Customizado
Neste campo é possível efetuar a customização do cálculo, sendo necessário informar o SQL com o comando SELECT.
O comando do tipo SQL deve retornar obrigatoriamente um único valor, pois o Sistema está preparado para trabalhar apenas com o resultado final a ser retornado por este comando, sendo que atualmente este campo comporta até 255 caracteres.
Exemplo:
SELECT SUM(minha_tabela.meu_campo)
SELECT COUNT(m.campo_nao_padrao)
SELECT MAX(d.campo_nao_padrao)
SELECT AVG(m.qtd_volumes) #Média de volumes expedição por dia. m -> wms_exp_mestre_?
O campo Cálculo Customizado somente tem utilidade quando na aba 1 - Dados Principais, o campo Tipo Cálculo estiver configurado como Customizado pelo usuário, conforme especificado a seguir:
2.2. Comando Customizado
Neste campo é possível cadastrar uma função que pode manipular os comandos SQL (SELECT, FROM e WHERE ) padrões antes da execução na função padrão de apuração, sendo que esta função será executada antes do PREPARE do SQL utilizado para efetuar a leitura do valor calculado do operando no período, atuando como um “before_prepare”.
Esta função vai receber por SET as variáveis cmd_select , cmd_from e cmd_where que estarão com os valores padrões como, por exemplo:
cmd_select = "SELECT SUM(m.qtd_palete_fisico)"
cmd_from = " FROM wms_armaz_end_08345690901 m" onde 08345690901 é código do depositante.
cmd_where = " WHERE m.empresa = ‘01’ AND m.sit_registro <> 'C' AND m.data_posicao_estoque >= ? AND m.data_posicao_estoque <= ?"
A função de apuração chamará a função cadastrada no campo Comando Customizado, podendo editar e retornar estes comandos que serão recebidos por funções de GET conforme abaixo:
LET l_select_stmt = LOG_getVar("cmd_select") Máximo 255 caracteres
LET l_from_stmt = LOG_getVar("cmd_from") Máximo 1000 caracteres
LET l_where_stmt = LOG_getVar("cmd_where") Máximo 5000 caracteres
Deve obrigatoriamente retornar TRUE ou FALSE. Nesta função é possível, por exemplo, alterar o comando FROM que a função padrão executará, informando uma tabela específica ou adicionar um filtro no comando WHERE.
Exemplo básico:
FUNCTION wmsyXXXX_customiza_operando()
DEFINE l_cmd_from CHAR(1000)
LET l_cmd_from = LOG_getVar("cmd_from")
# ‘m’ representa o alias da tabela mestre do processo
LET l_cmd_from = l_cmd_from CLIPPED,
" INNER JOIN minha_tabela",
" ON minha_tabela.empresa = m.empresa",
" AND minha_tabela.ctr_ent_sai_veic_docum = m.ctr_ent_sai_veic_docum"
CALL LOG_setVar("cmd_from", l_cmd_from)
RETURN TRUE
END FUNCTION
2.3. Comando Retorno Valor
Neste campo é possível cadastrar uma função que pode utilizar o valor calculado para um determinado operando para, por exemplo, gravar uma tabela auxiliar específica.
Esta função não manipula o valor calculado, recebendo o valor calculado do operando para cada dia do período pela função setVar:
CALL LOG_setVar("valor_operando",l_valor_operando)
Exemplo:
# Comando para ser executado após o calculo do valor do operando
# e a gravação da tabela padrão wms_geracao_dados_operando
FUNCTION wmsyXXXX_comando_retorno_valor()
DEFINE l_depositante LIKE wms_geracao_dados_operando.depositante,
l_operando_faturamento LIKE wms_geracao_dados_operando.operando_faturamento,
l_data_geracao LIKE wms_geracao_dados_operando.dat_geracao,
l_val_parametro LIKE wms_geracao_dados_operando.val_parametro
LET l_depositante = wmsr48_get_depositante()
LET l_operando_faturamento = wmsr48_get_operando_faturamento()
LET l_data_geracao = wmsr48_get_data_atual_processamento()
LET l_val_parametro = LOG_getVar("valor_operando")
INSERT INTO minha_tabela (depositante, operando, data_geracao, valor_operando)
VALUES (l_depositante, l_operando_faturamento, l_data_geracao, l_val_parametro)
RETURN TRUE
END FUNCTION



