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
B1QueryCursorpara 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.