Encadeamento de eventos e manipuladores de eventos

Alguns manipuladores de eventos suportam a chamada de APIs. Essas APIs podem recuperar mais dados pertinentes ao evento que estiver sendo levantado, ou podem executar um cálculo ou transação de negócios. Por sua vez, a transação pode levantar outros eventos, resultando, assim, em encadeamento de eventos.

Por exemplo, um dos manipuladores de eventos para o evento ORDER_CREATE pode verificar a validade de um pedido e chamar uma API para reter um pedido. Isso resulta no acionamento do evento HOLD, que envia uma mensagem de e-mail para um responsável pelo atendimento ao cliente. O encadeamento de eventos fornece um mecanismo de extensibilidade que é necessário para processamento de negócios complexo.

Importante: as ações configuradas para serem chamadas pelo evento ON_FAILURE não devem executar nenhuma atualização de banco de dados. Qualquer atualização de banco de dados executada por uma ação chamada pelo evento ON_FAILURE é retrocedida.

Para acessar os dados publicados pelo Sterling™ Order Management System, você deve implementar a interface YFSEventHandlerEx( ), que fornece a função handleEvent( ) a ser implementada da seguinte forma:

public boolean handleEvent (YFSEnvironment oEnv, String sTranID, String
 sActionCode, Map sKeyData, int iDataType, Object sData, String sShipNode,
 String [] parms) throws Exception 
Importante: embora seja possível implementar uma API que faz com que um evento associado a uma ação no aplicativo chame a mesma API, tome cuidado para evitar essa situação. Ela cria um loop infinito.

O nome da classe deve ser configurado como o objeto Java™ na tela Configuração de ação na configuração de transação do Sterling Order Management System

Todos os parâmetros para a função handleEvent() são parâmetros de entrada, com valores inseridos pelo aplicativo. O último parâmetro nessa função é o parâmetro parms, que é uma matriz de constantes de Sequência. Os valores dessas constantes de sequência são os valores das constantes de sequência especificadas após o nome da classe durante a configuração de ação no aplicativo.

Observação: para obter detalhes sobre a interface YFSEventHandlerEx, consulte as informações do Javadoc.