Table of Contents

Sink report

Introduction

To enable their partners and customers to detect any missing message on their sink, Cegid Loop publishes every night a daily report of the expected messages for each entity, in the corresponding directory of the sink. This report is published as one (or more if needed) message(s) named according to the following convention: queuing.cpa.comptabilite-fr.cegid.loop.comptaDailyReport-${offset}-${timestamp}

It provides, for each object having been inserted, updated or deleted during the previous day, the timestamp and object ID of each operation. The values of id and timestamp of each item of the records array contained in a daily report can therefore be compared to the values of id and timestamp contained in the messages received on the sink during the previous day, to detect any eventual loss of message implying outdated data. For a given id and timestamp reported in the daily report, if no message was found in the sink with matching values, that would mean that a message was not correctly synchronized during the previous day. To do something about it, you should request a partial reinitialization of the entity concerned, for a timeframe including the timestamp of the missing message. Documentation link coming soon

Note: For accounting entries, the report includes only the last update's timestamp for each accounting entry, which only helps detect whether the last update was missed. Indeed, when an accounting entry is updated, a message comptaEcritureDeleted followed by a message comptaEcritureInserted are pushed to the sink. As the message comptaEcritureInserted contains the whole accounting entry, any intermediate message lost would not be an issue in ensuring data is kept up to date.

Important fields of the message:

  • timestamp: useful to deduce the day of the report
  • entite_id: ID of the concerned entity
  • id: ID of the report
  • page: pagination
  • topics: array of objects with following sub-properties:
    • topicName: name of the topic
    • values: array of objects with following sub-properties:
      • name: name of business class
      • schemaName: name of the schema
      • records: array of objects with following sub-properties:
        • id: ID of the concerned object
        • timestamp: date of last operation for the concerned object (insert/update/delete)

Example

{
  "timestamp": 1701825527628,
  "application_id": "1999353e-52d1-4598-b76e-6fcbd15620fe",
  "entite_id": "b6335a14-3391-4fba-b397-32835fe15e2b",
  "id": "b65e1475-3842-49ac-882a-1dccee66b88a",
  "page": "1/1",
  "topics": [
    {
      "topicName": "queuing.cpa.comptabilite",
      "values": [
        {
          "name": "ecritureGroupe",
          "schemaName": "comptaEcriture",
          "records": [
            {
              "id": "01d8b10e-2679-4d4d-89ef-34702ebee574",
              "timestamp": 1701796117000
            },
            {
              "id": "50e15713-fb7c-4e62-8880-3e3bcffd134d",
              "timestamp": 1701796117000
            },
            {
              "id": "0888aaed-a0c9-412b-b985-98d0005864dd",
              "timestamp": 1701797510000
            },
            {
              "id": "4a311e84-43d5-4c09-a58b-9a10decdd0b4",
              "timestamp": 1701797510000
            },
            {
              "id": "121ba87c-0046-480e-9475-a572b73ba70b",
              "timestamp": 1701796117000
            },
            {
              "id": "62e6227e-93dc-4e02-b1e7-e12dc60b9111",
              "timestamp": 1701796117000
            }
          ]
        }
      ]
    }
  ]
}