Objetivos |
Afim de mitigar possíveis duplicações de pedidos de venda no SAP Business One, estamos disponibilizando o Script SQL, que pode será aplicada na Transaction Notification do SAP B1;
👉 Mas o que é a Transaction Notification? 🤯
Bem, é uma ferramenta presente no Banco de Dados que serve para criar validações nas transações realizadas no SAP B1, e com essas validações criar "bloqueios" que atendam as regras de negócios da sua empresa. Caso queira saber mais, dá uma olhada nesse blog da SAP.
Script SQL |
Abaixo disponibilizamos o script SQL, o qual você pode copiar e encaminhar à consultoria SAP, a qual poderá implementar na Transaction Notification.
Uma vez implementada, para os pedidos integrados pelo sistema Bahn, será validado se o pedido já existe (com o mesmo número) já existe, impedindo que o pedido seja duplicado no ERP.
-- PEDIDOS DUPLICADOS / Autor.: Nordware / Descrição: Não permitir pedidos integrados pelo Bahn duplicados no SAP
IF object_type = '17' AND (transaction_type = 'A' OR transaction_type = 'U') AND error = 0
THEN
declare iLoja varchar(100);
declare nordOrder varchar(100);
declare iDocEntry int;
declare iDocNum int;
declare iExists int;
select
"U_NORD_Ecommerce", "U_NORD_Order", "DocEntry", "DocNum" into iLoja, nordOrder, iDocEntry, iDocNum
from ORDR
where "DocEntry" = :list_of_cols_val_tab_del;
select count(*) into iExists
from ORDR
where IFNULL(:nordOrder,'') <> ''
and "DocEntry" <> :iDocEntry
and ("U_NORD_Order" = :nordOrder
OR "U_NORD_Order" = :nordOrder || '-1'
OR "U_NORD_Order" = :nordOrder || '-2'
OR "U_NORD_Order" = :nordOrder || '-3'
);
if :iExists > 0
then
error := 100001;
error_message := 'Pedido duplicado [Loja = ' || :iLoja || ' | Pedido Bahn = ' || :nordOrder || '].';
end if;
END IF;
Exemplo do retorno da trava no Bahn