Через mirror прилітають оновлення обʼєкта:

  • навіть якщо ніяка дата не змінювалась
  • навіть якщо перезберігти обʼєкт в БД один до одного (нуль змін)

Тобто, будь яка операція по модифікації даних обʼєкта на рівні БД надішле оновлення через mirror.


Наприклад, якщо devOps вручну вносять в БД зміни у обʼєкт - це будуть зміни, які НЕ вносяться програмним шляхом.

При цьому можуть бути не змінені systemDateModified / dateModified, але mirror надішле зміни все одно.


Mirror - це real-time синхронізація БД (простими словами)


systemDateModified - це дата модифікації даних програмним шляхом, яка не зачіпає даних обʼєкта (Процедури\Реєстра...)
dateModified - модифікація даних обʼєкта програмним шляхом, яка зачіпає дані обʼєкта


для dateModified на Search існує endPoint https://procedure-sandbox.prozorro.sale/api/doc#/procedure/search_by_date_modified 
для systemDateModified на Search заплановано додати такий endPoint

Якщо Майданчик НЕ цікавлять ніякі зміни, які відбуваються поза флоу обʼєкта, то можна дивитись на зміну поля dateModified

Якщо необхідно відслідковувати зміни, які відбуваються по флоу обʼєкта (наприклад: міграції даних, додавання ДІ), то необхідно відслідковувати зміни поля systemDateModified

Основні правила:

  • Якщо змінюється dateModified, то змінюється і systemDateModified
  • Якщо змінюється systemDateModified то поле dateModified може змінюватися, а може і ні. Бо не всі зміни systemDateModified змінюють обʼєкт і, відповідно, dateModified


Тому Майданчику можна дивитись завжди тільки на зміни поля systemDateModified


P.S.: На сервісі Процедур і Реєстрів логіка цих полів однакова.

На Jobber ще не додавали, але планується.
Це концептуальна core логіка, яка має бути у всіх обʼєктів ЦБД.

  • No labels