Identificador de Regra
GER-000EXPWIS
Módulo: GER - Gerais
Finalidade: Permite executar diferentes ações após o commit de cada ordem de separação, tanto no processo de envio quanto no de retorno da separação. A variável VSGERAFLUXOINTEGRACAO indica se o processo em andamento corresponde ao envio (separação ou cancelamento) ou ao retorno (separação ou cancelamento). Em cada etapa, é possível realizar operações customizadas, desde que essas customizações não iniciem novas transações nem gerem exceções.
Características: A regra é executada após o commit, fora da transação dos bancos do ERP e do WMS, para cada ordem de separação. Não é recomendado utilizá-la em operações que demandem longo tempo de processamento, pois isso pode degradar significativamente o desempenho da integração. Como o identificador é acionado apenas após o commit de cada ordem de separação, não há possibilidade de rollback causado por essa regra.
Transação: Não se aplica.
Variáveis Disponibilizadas:
| Nome | Tipo | Observações | Retorna Valor |
|---|---|---|---|
| VSGERAFLUXOINTEGRACAO | Alfa |
Indicativo da ação sendo executada no momento da execução do identificador. Os valores possíveis são:
|
N |
| VSGERANUMEROORDEM | Alfa | Número da ordem | N |
| VSGERNEMPRESA | Número | Código da empresa do documento | N |
| VSGERNFILIAL | Número | Código da filial do documento | N |
Neste exemplo a regra verifica a variável VSGERAFLUXOINTEGRACAO e armazena um texto indicando a operação sendo executada. Após isto, a regra recupera a origem da pré-fatura, que se for origem "8 - Pré-fatura" vai recupera os itens da E180IPF, inserindo um log na tabela E135OBS para cada item.
definir alfa VSGERAFLUXOINTEGRACAO;
definir alfa VSGERANUMEROORDEM;
definir numero VSGERNEMPRESA;
definir numero VSGERNFILIAL;
definir alfa vSeqIto;
definir alfa vMSGLOG;
definir numero vNumAne;
definir numero vNumAne;
definir numero vNumPfa;
definir numero vSeqObs;
definir alfa vTipObs;
definir alfa vObsPfa;
definir numero vUsuGer;
definir data vDatGer;
definir numero vHorGer;
definir cursor CurE000ODW;
definir cursor CurE180IPF;
definir numero nErro;
definir alfa aRet;
vUsuGer = 3;
vDatGer = DatSis;
vHorGer = HorSis;
vTipObs = "A";
se (VSGERAFLUXOINTEGRACAO = "ENVIOSEPARACAO")
vMSGLOG = "PROCESSAMENTO DO ENVIO DA ORDEM DE SEPARAÇÃO NRO "
+ VSGERANUMEROORDEM + " REALIZADO COM SUCESSO";
senao inicio
se (VSGERAFLUXOINTEGRACAO = "ENVIOCANCELAMENTO")
vMSGLOG = "PROCESSAMENTO DO ENVIO DO CANCELAMENTO DA ORDEM DE SEPARAÇÃO "
+ VSGERANUMEROORDEM + " REALIZADO COM SUCESSO";
senao inicio
se (VSGERAFLUXOINTEGRACAO = "RETORNOSEPARACAO")
vMSGLOG = "PROCESSAMENTO DO RETORNO DA SEPARAÇÃO DA ORDEM DE SEPARAÇÃO "
+ VSGERANUMEROORDEM + " REALIZADO COM SUCESSO";
senao inicio
se (VSGERAFLUXOINTEGRACAO = "RETORNOCANCELAMENTO")
vMSGLOG = "PROCESSAMENTO DO RETORNO DO CANCELAMENTO DA ORDEM DE SEPARAÇÃO "
+ VSGERANUMEROORDEM + " REALIZADO COM SUCESSO";
fim
fim
fim
fim;
CurE000ODW.SQL
"SELECT E000ODW.PRDORD FROM E000ODW \
WHERE E000ODW.CODEMP = :VSGERNEMPRESA AND \
E000ODW.CODFIL = :VSGERNFILIAL AND \
E000ODW.NUMORD = :VSGERANUMEROORDEM";
CurE000ODW.AbrirCursor();
se (CurE000ODW.Achou) inicio
se (CurE000ODW.PRDORD = 8) inicio
CurE180IPF.SQL
"SELECT E180IPF.NUMANE, E180IPF.NUMPFA, E180IPF.SEQITO FROM E180IPF \
WHERE E180IPF.CODEMP = :VSGERNEMPRESA AND \
E180IPF.CODFIL = :VSGERNFILIAL AND \
E180IPF.NUMORD = :VSGERANUMEROORDEM";
CurE180IPF.AbrirCursor();
enquanto (CurE180IPF.Achou) inicio
vNumAne = CurE180IPF.NumAne;
vNumPfa = CurE180IPF.NumPfa;
RetornarSequencialBaseadoChave("E135OBS", "CodEmp;CodFil;NumAne;NumPfa", vSeqObs);
IntParaAlfa(CurE180IPF.SEQITO, vSeqIto);
vObsPfa = "ITEM " + vSeqIto + " - " + vMSGLOG;
ExecSQLEx (
"INSERT INTO E135OBS (CODEMP, CODFIL, NUMANE, NUMPFA, SEQOBS, TIPOBS, OBSPFA, USUGER, DATGER, HORGER) \
VALUES (:VSGERNEMPRESA, :VSGERNFILIAL, :vNumAne, :vNumPfa, :vSeqObs, :vTipObs, :vObsPfa, :vUsuGer, :vDatGer, :vHorGer)",
nErro,
aRet
);
CurE180IPF.Proximo();
fim;
CurE180IPF.FecharCursor();
fim;
fim;
CurE000ODW.FecharCursor();
Atenção
Caso o parâmetro global LisVarReg esteja habilitado, a variável ListaVariaveis estará disponível em todos os identificadores de regras do sistema. O conteúdo desta variável lista os campos disponibilizados no identificador de regras em questão.
Não é aconselhada a ativação desse parâmetro global para o uso cotidiano. Esse recurso de listagem dos campos de identificadores auxilia a construção de regras e o Suporte para, por exemplo, depuração ou quando não houver acesso à documentação dos identificadores de regras.
English
Español
English
Español


