Processo automático 126 - Faturamento de Pedidos
Esta documentação apresenta um exemplo de uso do parâmetro PROCESSO_ORIGEM na rotina de faturamento automático de pedidos, com dois processos automáticos cadastrados para serem executados em periodicidades diferentes.
Os pedidos que apresentarem erros no faturamento serão controlados por meio dos identificadores de regras VEN-140FLPED01, acionado quando ocorre um erro no processamento, e VEN-140FLPED02, executado ao processar um pedido com sucesso.
PROCESSO_ORIGEM = Processo 1
Processo principal de faturamento de pedidos. Utiliza uma série diferente da do processo 2, o que garante maior eficiência. É executado com maior frequência e carrega os pedidos que não estão registrados na tabela de usuário de pedidos com erros.
Processou com sucesso?
Nada a fazer.
Houve erros no processamento?
Utilizando o identificador VEN-140FLPED01 é possível inserir os dados do pedido em uma tabela de usuário.
Exemplo:
Definir Numero VenNCodEmp;
Definir Numero VenNCodFil;
Definir Alfa VenACodSnf;
Definir Numero VenNNumNfv;
Definir Numero VenNFilPed;
Definir Numero VenNNumPed;
Definir Alfa VenAMsgErro;
Definir Alfa VenAEstruturaTransacaoBanco;
Definir Alfa VenAEtapaErro;
Definir Alfa VenAProcessoOrigem;
Definir Numero xErro;
Definir Alfa xMsgRetornoSql;
SE (VenAProcessoOrigem = "Processo 1")
INICIO
IniciarTransacao();
ExecSQLEx ("INSERT INTO USU_T140FLPED (USU_CODEMP, USU_CODFIL, USU_CODSNF, USU_NUMNFV, USU_FILPED, USU_NUMPED, USU_MSGERRO, USU_TNSBANCO, USU_ETAPAERRO, USU_PROCORIGEM) \
VALUES (:VenNCodEmp, :VenNCodFil, :VenACodSnf, :VenNNumNfv, :VenNFilPed, :VenNNumPed, :VenAMsgErro, :VenAEstruturaTransacaoBanco, :VenAEtapaErro, :VenAProcessoOrigem)", xErro, xMsgRetornoSql);
Se (xErro = 0){
FinalizarTransacao();
}
Senao {
DesfazerTransacao();
GeraLog("ERRO. Não foi possivel gravar o registro.");
}
FIM
PROCESSO_ORIGEM = Processo 2
Processo secundário de faturamento de pedidos. Utiliza uma série diferente da do processo 1, o que garante maior eficiência. É executado com menor frequência e carrega os pedidos que estão na tabela do usuário, respeitando as seguintes condições:
- Selecionar apenas pedidos cuja Etapa do Erro seja diferente de EMISSAO;
- Não selecionar pedidos cuja Estrutura das Transações do Banco seja ETAPAS e cuja Etapa do Erro seja FECHAMENTO.
Processou com sucesso?
Pode-se utilizar o identificador VEN-140FLPED02 para remover o pedido da tabela de usuário.
Exemplo:
Definir Numero VenNCodEmp;
Definir Numero VenNCodFil;
Definir Alfa VenACodSnf;
Definir Numero VenNNumNfv;
Definir Numero VenNFilPed;
Definir Numero VenNNumPed;
Definir Alfa VenAMsgErro;
Definir Alfa VenAEstruturaTransacaoBanco;
Definir Alfa VenAEtapaErro;
Definir Alfa VenAProcessoOrigem;
Definir Numero xErro;
Definir Alfa xMsgRetornoSql;
SE (VenAProcessoOrigem = "Processo 2")
INICIO
IniciarTransacao();
ExecSQLEx ("DELETE USU_T140FLPED WHERE USU_CODEMP = :VenNCodEmp AND USU_CODFIL = :VenNFilPed AND USU_NUMPED = :VenNNumPed ", xErro, xMsgRetornoSql);
Se (xErro = 0){
FinalizarTransacao();
}
Senao {
DesfazerTransacao();
GeraLog("ERRO. Não foi possivel gravar o registro.");
}
FIM
Houve erros no processamento?
Poderá utilizar o identificador VEN-140FLPED01 para incrementar uma quantidade de tentativas de faturamento por pedido (opcional).
English
Español
English
Español


