Sincronização de Dados Acumulativos

O produto é compatível com um método de sincronização de dados pelo qual várias alterações feitas em uma entidade podem ser acumuladas e enviadas juntas como uma única mensagem para o sistema externo.

Os pontos a seguir descrevem a funcionalidade em um nível superior.
  • Quando uma entidade é adicionada, alterada ou excluída, um instantâneo dos dados da entidade antes de a alteração ser capturada em uma ou mais solicitações de sincronização, um para cada sistema externo com o qual os dados precisam ser compartilhados. O instantâneo antes da atualização é usado como linha de base para detectar todas as alterações feitas desde então no momento do envio da mensagem ao sistema externo.

  • As solicitações de sincronização são processadas pelo próximo processo de monitoramento em batch.

  • O processamento da solicitação de sincronização geralmente envolve regras de negócios que comparam o instantâneo antes da atualização com o conteúdo atual da entidade para detectar todas as alterações feitas. Se forem feitas alterações, a lógica poderá decidir continuar com o envio da mensagem de sincronização; caso contrário, a solicitação será descartada. Essas regras também são responsáveis por tratar os erros encontrados durante a comunicação com o sistema externo e gerenciar as novas tentativas, conforme necessário.

Essa funcionalidade é compatível com a lógica fornecida na Solicitação de Sincronização do objeto de negócios base (F1-SyncRequest). Cada aplicativo integrável fornece um objeto de negócios-filho adequado deste objeto de negócios para cada cenário de sincronização aceito no produto. Parte da funcionalidade abaixo é realizada por meio da configuração no objeto de negócios-pai fornecido pelo Framework, enquanto outra parte pode ser fornecida pelo objeto de negócios-filho. A integração específica do seu produto pode dar suporte a casos de uso mais complexos. Para obter mais informações, consulte a biblioteca do objeto de negócios de Solicitação de Sincronização do seu aplicativo e a documentação relacionada à integração específica do seu produto.

As seções a seguir descrevem os principais aspectos dessa abordagem de sincronização de dados.

Capturando a Alteração

O produto base fornece o algoritmo de captura de dados de alteração (Auditoria de Objeto de Manutenção) F1-GCHG-CDCP, que pode ser usado por objetos de manutenção que precisam ser sincronizados por esse método. Esse algoritmo cria um registro de Solicitação de Sincronização para o registro alterado, capturando o código do objeto de manutenção e a chave primária, se não encontra uma solicitação de sincronização existente para o mesmo registro (e o mesmo objeto de negócios) no status inicial. O objeto de negócios de Solicitação de Sincronização usado é aquele definido na opção Objeto de Negócios da Solicitação de Sincronização do objeto de manutenção para o registro que foi alterado. Se houver mais de uma opção desse tipo, várias solicitações de sincronização serão criadas.

Seu produto específico também pode apresentar outros algoritmos de Auditoria para atender a casos mais complexos.

Normalmente, quando você cria o registro de solicitação de sincronização, o objeto de negócios de Solicitação de Sincronização tem um plug-in de pré-processamento que tira uma captura dos dados do registro antes da alteração. Esse plug-in é usado nas etapas subsequentes para verificar se o sistema externo precisa ser notificado da alteração.

Confirmando a Necessidade de Sincronização

Depois que uma solicitação de sincronização é capturada, há várias etapas que ainda precisam ser realizadas antes de enviar informações ao sistema externo.

Observação:
Esta seção só destaca as etapas mais importantes. Para obter uma visão completa da funcionalidade inteira, consulte a configuração do objeto de negócios, bem como o ciclo de vida e os algoritmos dele.
  • Quando é criado um registro de Solicitação de Sincronização, o status inicial dele (Pendente) é configurado para ser processado por um monitoramento em batch. Dessa forma, os registros são adicionados à tabela de solicitações de sincronização ao longo do dia, mas são processados todos juntos. O algoritmo de auditoria de objeto de manutenção garante que não será criada outra solicitação de sincronização se já houver um registro Pendente para determinada combinação de objeto de manutenção e chave primária (para o mesmo objeto de negócios). No entanto, pode haver um registro para essa combinação em uma etapa subsequente "não final" (por exemplo, Aguardando Confirmação). Esse status inclui um algoritmo de monitoramento para verificar a condição e ignorar a transição se há outro registro. Isso é feito para garantir a conclusão do registro existente antes do processamento do novo registro.

  • O próximo status do ciclo de vida é Determinar se a Sincronização é Necessária. Essa etapa usa um algoritmo para tirar uma captura (chamada de 'captura final') dos dados e compará-la com a captura inicial tirada quando o registro foi criado. Com base na lógica definida, o algoritmo pode decidir continuar o processo (transição para Enviar Solicitação) ou descontinuá-lo (transição para Descartado).

Comunicando a Decisão ao Sistema Externo

Assim que é confirmado que a sincronização deve ocorrer, é preciso enviar uma mensagem ao sistema externo. Os pontos a seguir destacam a funcionalidade básica.

  • Um algoritmo vinculado ao status Enviar Solicitação. Espera-se que esse algoritmo crie uma mensagem de saída que encaminhe as informações ao sistema externo da maneira adequada. O algoritmo precisa determinar o sistema externo e o tipo de mensagem de saída a ser usado. Os objetos de negócios de Solicitação de Sincronização dão suporte a opções de objeto de negócios para definir o sistema externo e o tipo de mensagem de saída a ser usado para esse algoritmo.

  • Assim que a mensagem de saída é disparada, o registro vai para o status Aguardando Confirmação. Esse status é usado para impedir a solicitação de sincronização de avançar para outros status até ser recebida uma confirmação do sistema externo. Note que essa etapa depende da implementação de um mecanismo de resposta do sistema externo. Recomenda-se implementar uma resposta, pois isso ajuda a controlar o fluxo cronológico das informações. O pacote-base fornece o serviço de negócios F1-UpdateSyncRequest, que transfere a solicitação de sincronização para o próximo status padrão (neste caso, Sincronizado) se é recebida uma confirmação positiva ou para o status associado à condição de transição de Rejeição (neste caso, o status Erro) se é recebida uma confirmação negativa. Além disso, esse status pode ser configurado com um algoritmo de monitoramento que detecta quando o limite de expiração é atingido.

  • Para registros que entram no status Erro, recomenda-se configurar um algoritmo que crie uma entrada de Atividade para alertar alguém sobre o problema. Para obter mais informações, consulte a documentação de integração. O status já está pré-configurado com um algoritmo para concluir as Atividades durante a saída.

  • É usado o status final Sincronizado para marcar as sincronizações com sucesso. No entanto, para casos de uso mais complexos, é possível usar esse status para disparar mais algumas ações. Para obter mais informações, consulte a documentação da integração específica do seu produto.