Мазмұнға өту
N1
CRM / Bitrix24 · Диск · деректерді қалпына келтіру

Іс құжаттарын қалпына келтіру: «мәмілелерден файлдар жоғалып кетеді»

Клиент: Заң компаниясы, NDA Санат: CRM / Bitrix24 Стек: PHP 8, Bitrix24 D7 (Disk, CRM Factory), CLI, Bash-пайплайн, cron Мерзім: шамамен бір апта
Мәселе

Заңгерлер істерден құжаттар жоғалып кететініне шағымданатын. Себебі үш смарт-процестің роботтарында болып шықты: әрқайсысы Ортақ дискідегі іс папкасын өзінше атайтын, ал іс атауы өзгергенде жаңасын жасайтын — құжаттары бар ескі папка картадан сілтемесіз қалатын.

Шектеулер

Ештеңені жоюға болмайды: бұл сот істері бойынша жұмыс құжаттары. Сілтемелердің бір бөлігі сыртқы қысқартқыш арқылы өтетін немесе ескі порталға апаратын, кейбір істердің өз папка контейнерлері бар, ал даулы сәйкестіктерді тек заңгерлермен бірге шешуге болады.

Не істедім
  • Тек оқу режиміндегі барлау: папкалар пулы, карталардағы әр сілтемені жіктеу (жұмыс істейтін, қысқартқыш арқылы, ескі портал, бос, қоқыс), жетім папкалар
  • Түбір іске басымдық бере отырып, дубликат папкаларды біріктіру: мазмұны канондық папкаға көшіріледі, дереккөздер жойылмайды, күмәнді топтар — қолмен талдауға
  • Картаның файл өрістеріндегі файлдарды іс папкасына аты мен өлшемі бойынша дубликатсыз синхрондау, сілтемелерді жөндеу және папка id-сы бар қызметтік өрісті толықтыру
  • Дискіде жұмыс папкасы мүлдем болмаған істер үшін жетіспейтін папкаларды қайта жасау
  • Бір командамен іске қосылатын қорытынды пайплайн: әдепкі бойынша үш dry-run, нақты іске қосу — тек растаумен, бірінші қатеде тоқтау; cron бойынша түнгі синк
Архитектура
Барлау (read-only) → Дубликаттарды біріктіру → Папкаларды қайта жасау → Файлдар мен сілтемелер синкі → Түнгі cron
Нәтиже

Барлау 334 папканы, 16 дубликат тобын және қысқартқыш арқылы өтетін түзетуге болатын 298 сілтемені тапты. Нақты іске қосу 750 элементті өңдеді: 2544 файл көшірілді, 302 сілтеме жөнделді, 250 папка id-сы толтырылды — 0 қате; қайта тексеру 780 элемент бойынша 7182 файлдың өз орнында екенін растады.

Нені қайта қолдануға болады
Кез келген өзгерістің алдында сілтемелерді жіктейтін «тек оқу» барлауы Дереккөздерді жоймай дубликат папкаларды біріктіру Dry-run → растау → нақты іске қосу пайплайны