Pular para o conteúdo principal

Fluxo de Integração de Entidades (BusinessPartners) do B1

⚙️ Especificações ténicas

Visão Geral do Framework

Os integradores de entidades do B1 (como o B1EntityIntegrator) herdam de BaseIntegrator, classe base do nosso framework de integração. Essa classe orquestra o fluxo de execução utilizando o padrão Template Method, garantindo padronização e rastreabilidade em todas as integrações.

Fluxo de execução

  • Query: Consulta os dados no B1, utilizando o B1QueryCursor para buscar apenas registros novos ou alterados desde a última execução.
  • Parse: Converte os dados retornados do B1 para os modelos internos do sistema, prontos para persistência.
  • Send: Salva os registros convertidos no banco de dados do sistema, atualiza cursor da integração e registra cada operação na tabela de auditoria IntegrationTracking.

Detalhamento das Etapas

Query

Query
B1EntityIntegrator.Query()
└── B1EntityImportService.ImportAsync()
└── B1EntityImportService.GetErpIntegrationEntities()
└── B1BusinessPartnerConnector.GetAllBusinessPartnersAsync()
  • B1EntityImportService.ImportAsync(): Inicia o processo de importação, buscando integrações ERP configuradas e disparando a consulta de entidades para cada uma.
  • B1EntityImportService.GetErpIntegrationEntities(): Para cada integração, prepara a configuração e o cursor, e solicita os dados de entidades ao conector do B1.
  • B1BusinessPartnerConnector.GetAllBusinessPartnersAsync(): Executa a consulta no SAP B1, retornando todos os Business Partners alterados após o timestamp do cursor.

Parse

Parse
B1EntityIntegrator.Parse()
  • B1EntityIntegrator.Parse(): Converte os dados retornados do B1 (B1BusinessPartnerResponse) para o modelo interno do sistema (EntityFull), associando-os às operações logísticas.

Send

Send
B1EntityIntegrator.Send()
└── B1EntityImportService.SaveAsync()
├── RecordEntityService.RecordEntitiesAsync()
└── EntityIntegrationService.SaveEntityIntegrationTrackingsAsync()
  • B1EntityImportService.SaveAsync(): Persiste as entidades convertidas no banco de dados e atualiza o cursor de integração.
  • RecordEntityService.RecordEntitiesAsync(): Salva as entidades no banco de dados do sistema.
  • EntityIntegrationService.SaveEntityIntegrationTrackingsAsync(): Registra cada operação de integração na tabela de auditoria IntegrationTracking, incluindo dados, resultado e status de sucesso/erro.