Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2014-07-14

Logging ProjectMate

Не так давно мне рассказали душещипательную историю об уровне поддержки корпоративных клиентов. За достоверность не ручаюсь, излагаю как запомнил.
Один корпоративный клиент, использующий ProjectMate в своей работе, захотел добавить функцию контроля (фактически отслеживания) хода дел, учитываемых в PM. По простому — пользователь изменил запись, атрибут карточки, параметры объекта — и сведения о состоявшемся изменении пошли к начальству. Журналирование операций по нашему.
Обратившись к изготовителю PM с запросом на добавление такой функциональности, клиент был мягко послан в поход.

Тогда клиент обратился ко мне. И вместе мы придумали простое решение проблемы — записывать изменения на уровне базы данных.

В принципе, в MS SQL есть то, что нужно – CT, CDC. Но, по разным причинам, нам это не подошло. То лицензия на базу «не энтерпрайз», то журнал разбросан по разным таблицам, сейчас уже и не вспомню всех резонов. Помню, что решили сделать по простому: навесить на нужные таблицы данных ПроджектМейта триггеры и заставить эти триггеры записывать инфу в журнал.

Подробнее можно почитать в тут: https://github.com/vasnake/pmate-log/blob/master/readme.pdf

А остальные подробности и код можно взять тут: ttps://github.com/vasnake/pmate-log

Код, собственно, состоит из скрипта создания таблицы журнала и скрипта генерации триггеров по заданному списку таблиц.

Решение должно работать практически в любой БД MS SQL и не только с ПрожектМейтом.



original post http://vasnake.blogspot.com/2014/07/logging-projectmate.html

Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Klaipeda (15) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) Baltic (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) seaside (1) serialization (1) shore (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)