Ir para o final dos metadados
Ir para o início dos metadados

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

Versão 1 Próxima »

A rotina de Processamento compreende o trabalho de conciliação dos dados recebidos pelas instituições, bem como o procedimento de fechamento periódico.

O desenho esquemático abaixo mostra como esse processo funciona:

<figure markdown>

{ align=left }
<figcaption>Figura 2: Fluxo do processo de conciliação</figcaption>
</figure>

Conciliação

<figure markdown>

{ align=left }
<figcaption>Figura 3: Fluxo de Conciliação</figcaption>
</figure>

Importante

Os participantes devem sempre que possível enviar os reportes dos dois lados, seja como server ou como client, mesmo que a chamada não tenha sido bem sucedida, uma vez que elas serão usadas para fins de controle estatístico e de monitoramento do ecossistema (objetivo principal da plataforma), incluindo casos de erros http séries 5xx, 4xx, etc.

Fases do processamento

O processo de conciliação ocorre em três momentos do fluxo de processamento dos reportes: Recepção, Fechamento e na Resolução de Divergências.

Recepção

Quando um report é recebido pela API, ele é validado e enfileirado para que cada reporte seja processado individualmente. É nesse momento que a maioria dos reportes serão conciliados.

Fechamento

No momento do fechamento, a plataforma busca por todos os registros que ainda permanecem como pendentes e aplica a regra da conciliação sobre eles. Esse passo é necessário para evitar eventuais problemas de concorrência no processamento em tempo real. O momento do fechamento e os SLAs a serem cumpridos pelo sparticipantes serão oportunamente definidos pelos GTs responsáveis.

Resolução de Divergências

Registros com os status UNPAIRED e PAIRED_INCONSISTENT são considerados divergentes e deverão passar pelo processo de resolução. Este processo será oportunamente definido pelos GT responsáveis.

<figure markdown>

{ align=left }
<figcaption>Figura 4: Interação entre os status de um reporte</figcaption>
</figure>

Um reporte deverá sempre estar em um dos seguinte status:

DISCARDED
O status DISCARDED indica que o reporte foi enviado pelo participante e será descartado para fins de composição de métricas. Ainda que não utilizado nas métricas, ele será persistido e só será utilizado em relatórios estatísticos, não sendo possível corrigí-lo e nem utilizá-lo em nenhum processo de negócio. Esse status é devolvido para o participante de maneira síncrona no momento da inclusão do reporte. Consulte a documentação da API para informações sobre o schema a ser enviado.
Transições: N/A (estado terminal)

ACCEPTED
O status ACCEPTED indica que a validação de formato do reporte não apresentou erros e este será enviado para processamento.
Transições:
[1] Transiciona para PAIRED para indicar que outro reporte foi encontrado com o mesmo fapiInteractionId e os demais dados foram conciliados
[2] Transiciona para PAIRED_INCONSISTENT quando outro reporte foi encontrado com o mesmo fapiInteractionId mas os demais dados não foram conciliados
[3] Transiciona para UNPAIRED quando não existe outro reporte com o mesmo fapiInteractionId.
[7] Transiciona para SINGLE quando não existe fapiInteractionId e o status é 408 (timeout) ou da série 5xx.
[9] Transiciona para DISCARDED quando existe algum tipo de erro semântico no reporte.

SINGLE
O status SINGLE indica que o reporte em questão não tem uma contraparte. Ele é utilizado em casos onde a conciliação entre dois reportes não é possível. Os casos onde isso pode ocorrer são:

  • Impossibilidade de conciliação por falta de fapiInteractionId: ocorre quando o client não gera o fapiInteractionId e o server está impossibilitado de responder à requisição - o que pode acontecer em um caso de timeout ou em um erro 5xx. Nesse caso, o reporte é considerado válido uma vez que ele representa uma chamada que será contabilizada em métricas.

  • Resolução de divergência manual: ocorre quando um reporte está divergente e não há uma possibilidade de conciliação por falha no processo. Nesses casos, uma intervenção manual pode colocar o reporte em questão como SINGLE (ou DISCARDED dependendo do tipo de resolução).


Transições: N/A (estado terminal)

UNPAIRED
O status UNPAIRED significa que o reporte atual não possui uma correspondência em outro reporte através do atributo fapiInteractionId. Indica um reporte divergente.
Transições:
[4] Transiciona para PAIRED para indicar que outro reporte foi encontrado com o mesmo fapiInteractionId e os demais dados foram conciliados. Esse processo só vai acontecer quando o reporte par for enviado.
[5] Transiciona para PAIRED_INCONSISTENT caso um reporte seja enviado com o mesmo fapiInteractionId mas algum dado esteja inconsistênte entre os reportes.
[8] Transiciona para SINGLE caso o reporte seja válido, mas não haja a possibilidade de conciliá-lo com outro reporte.

PAIRED_INCONSISTENT
O status PAIRED_INCONSISTENT significa que o reporte corrente possui uma contraparte com o mesmo fapiInteractionId, mas algum dado esteja inconsistente entre os reportes. Indica um reporte divergente.
Transições:
[6] Transiciona para PAIRED caso o processo de resolução de divergência"*" corrija um dos dois reportes. Processo a ser definido.

PAIRED
Indica que o reporte tem uma contraparte com o mesmo fapiInteractionId e os demais dados estão conciliados. Representa o estado final desejado em um fluxo correto.
Transições: N/A (estado terminal)

  • Sem rótulos