| Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
cli:franke:digital_cic [2025/04/17 09:19] admin |
cli:franke:digital_cic [2025/06/20 12:10] (current) admin [Parametri XML] |
| |
| ====== Email Notification System ====== | ====== Email Notification System ====== |
| | Si richiede di sviluppare un sistema di notifica tramite email quando: \\ |
| | 1) Viene assegnato/riassegnato un responsabile ad una safety action \\ |
| | 2) Viene assegnato/riassegnato un problem solver ad un action plan \\ |
| |
| Creare un campo codice per la tabella safetyactions e valorizzarlo con un id incrementale: | {{:cli:franke:objiter.png?400|}} |
| | |
| | **Safety Action** \\ |
| | Una safety action è un'azione solitamente collegata ai Job Safety Observation e alle Vulnerability Management. |
| | Ogni azione ha un responsabile che si dovrà occupare di eseguirla. Il responsabile viene identificato nel campo safetyactions.codoper |
| | |
| | **Action Plan** \\ |
| | Esistono 4 tipologie di actionplan all'interno del DSFM. Quality, Delivery, Cost e Maintenance. |
| | Gli action plan sono objiter di tipo Q (quality), O (cost), W (delivery), I (maintenance). |
| | L'utente a cui è assegnato un actionplan si trova nel campo codoperres della tabella project \\ \\ |
| | |
| | Il sistema di notifica dovrà essere configurabile ed in particolare: \\ |
| | - potrà essere abilitato per alcuni plant (ubicaz.tiposet = 'S'). \\ |
| | - potrà essere abilitato per le safety action \\ |
| | - potrà essere abilitato per ogni singolo action plan \\ |
| | |
| | Ogni action plan ed ogni safety action saranno collegati ad una ubicaz (che potrà essere di tiposet S, R o P). \\ |
| | |
| | Se gerarchicamente l'ubicaz associata ad una safety action o ad un action plan appartiene ai plant abilitati e se l'oggetto stesso (safety action o lo specifico action plan) è abilitato all'invio della notifica, sarà possibile l'invio delle email verso il responsabile definito. \\ |
| | |
| | **Quando inviare l'email?** \\ |
| | Al salvataggio (inserimento o update) di un action plan o di una safety action vanno verificate le seguenti condizioni: \\ |
| | - gerarchicamente l'ubicaz associata ad una safety action o ad un action plan appartiene ai plant abilitati \\ |
| | <code sql> |
| | WITH RECURSIVE treeubi AS ( |
| | SELECT u.* |
| | FROM ubicaz u |
| | where u.codice = project.codubi |
| | UNION ALL |
| | SELECT u.* |
| | FROM ubicaz u, treeubi |
| | WHERE u.codice = treeubi.codubib |
| | ) |
| | SELECT distinct treeubi.* |
| | FROM treeubi |
| | WHERE tiposet = 'S' |
| | </code> |
| | |
| | - l'oggetto stesso (safety action o lo specifico action plan) è abilitato \\ |
| | - il responsabile dell'azione è definito \\ \\ |
| | |
| | Se tutte queste condizioni sono vere, l'email dovrà essere inviata al responsabile. \\ |
| | Quando viene assegnato un nuovo responsabile (e rimangono valide le condizioni predecenti), il vecchio responsabile dovrà essere notificato del cambio owner ed il nuovo responsabile dovrà essere notificato dell'avvenuta assegnazione di una SA o di un AP \\ |
| | |
| | **Creazioni tabelle dei setting** |
| | <code sql> |
| | CREATE TABLE public.emailsetting ( |
| | codubi character varying(51) NOT NULL, |
| | type character varying(2) NOT NULL, |
| | tmreminder integer DEFAULT 0, |
| | deflang varchar(8) |
| | ); |
| | |
| | ALTER TABLE public.emailsetting OWNER TO postgres; |
| | COMMENT ON TABLE public.emailsetting IS 'Tabella che configura il sistema di notifica email. Gli stabilimenti presenti in questa tabella (codubi) potranno ricevere notifiche per gli oggetti definiti dal campo type. '; |
| | COMMENT ON COLUMN public.emailsetting.type IS 'Q: Action Plan Quality, O: Action Plan Cost, W: Action Plan Delivery, I: Action Plan Maintenance, S: Safety Actions'; |
| | COMMENT ON COLUMN public.emailsetting.tmreminder IS 'il tm in secondi per cui deve essere inviata un''email di reminder. Se 0 il reminder non è attivo'; |
| | ALTER TABLE ONLY public.emailsetting ADD CONSTRAINT ix_emailsetting_pk PRIMARY KEY (codubi, type); |
| | ALTER TABLE ONLY public.emailsetting ADD CONSTRAINT ix_emailsetting_codubi FOREIGN KEY (codubi) REFERENCES public.ubicaz(codice) ON UPDATE CASCADE ON DELETE CASCADE NOT VALID; |
| | |
| | CREATE TABLE public.emailope ( |
| | codice double precision NOT NULL, |
| | type character varying(2) NOT NULL, |
| | codoper character varying(51), |
| | tm double precision, |
| | tmlast double precision |
| | ); |
| | ALTER TABLE public.emailope OWNER TO postgres; |
| | COMMENT ON TABLE public.emailope IS 'In questa tabella vengono salvati gli invii email effettuati'; |
| | COMMENT ON COLUMN public.emailope.codice IS 'questo codice fa riferimento a objiter.codice se type è Q,O,W,I. Altrimenti farà riferimento al campo safetyactions.codice se di tipo S'; |
| | COMMENT ON COLUMN public.emailope.type IS 'Valori ammessi: Q: Quality Action Plan, O: Cost Action Plan, W: Delivery Action Plan, I: Maintenance Action Plan, M: Safety Action'; |
| | COMMENT ON COLUMN public.emailope.codoper IS 'l''utente che dovrà ricevere l''email'; |
| | COMMENT ON COLUMN public.emailope.tm IS 'il tm di primo invio email'; |
| | COMMENT ON COLUMN public.emailope.tmlast IS 'il tm dell''ultimo invio fatto'; |
| | ALTER TABLE ONLY public.emailope ADD CONSTRAINT ix_emailope_pk PRIMARY KEY (codice, type); |
| | ALTER TABLE ONLY public.emailope ADD CONSTRAINT ix_emailope_codoper FOREIGN KEY (codoper) REFERENCES public.operato(codice) ON UPDATE CASCADE ON DELETE RESTRICT NOT VALID; |
| | </code> |
| | |
| | **Creazione di un campo codice univoco per la tabella safetyactions ** \\ |
| | Creare un campo codice per la tabella safetyactions e valorizzarlo con un id incrementale: \\ |
| <code sql> | <code sql> |
| alter table safetyactions add column codice float; | alter table safetyactions add column codice float; |
| FROM numerati | FROM numerati |
| WHERE safetyactions.ctid = numerati.ctid; | WHERE safetyactions.ctid = numerati.ctid; |
| | </code> |
| | **Ricordarsi di fare la addrecnume!!** |
| | \\ \\ |
| | <code sql> |
| | CREATE TABLE public.operacom ( |
| | codice integer NOT NULL, |
| | key character varying(51), |
| | tipo character varying(2), |
| | descrizio character varying(101) |
| | ); |
| | ALTER TABLE public.operacom OWNER TO postgres; |
| | COMMENT ON TABLE public.operacom IS 'Tabella che contiene l''entry point per ogni messaggio utente (testo o markdown). Messaggi che poi possono essere utilizzati per invio email o altro.'; |
| | COMMENT ON COLUMN public.operacom.key IS 'chiave aggiuntiva di testo per utilizzo delle chiamate agente'; |
| | COMMENT ON COLUMN public.operacom.tipo IS 'T=testo, M=markdown'; |
| | COMMENT ON COLUMN public.operacom.descrizio IS 'Descrizione della key (opzionale)'; |
| | INSERT INTO public.operacom (codice, key, tipo, descrizio) VALUES (1, 'assign', 'T', 'Assegnazione Safety'); |
| | INSERT INTO public.operacom (codice, key, tipo, descrizio) VALUES (2, 'unassign', 'T', 'Disassegnazione operatore'); |
| | INSERT INTO public.operacom (codice, key, tipo, descrizio) VALUES (3, 'reminder', 'T', 'Reminder di un''azione in carico'); |
| | |
| | ALTER TABLE ONLY public.operacom ADD CONSTRAINT ix_operacom_codice PRIMARY KEY (codice); |
| | ALTER TABLE ONLY public.operacom ADD CONSTRAINT ix_operacom_key UNIQUE (key); |
| | |
| | |
| | CREATE TABLE public.operalang ( |
| | codice character varying(51) NOT NULL, |
| | descrizio character varying(256) |
| | ); |
| | ALTER TABLE public.operalang OWNER TO postgres; |
| | COMMENT ON TABLE public.operalang IS 'Definizione delle lingue supportate dal sistema di comunicazione con utenti (operacom)'; |
| | INSERT INTO public.operalang (codice, descrizio) VALUES ('en', 'English'); |
| | INSERT INTO public.operalang (codice, descrizio) VALUES ('cs', 'Slovacco'); |
| | INSERT INTO public.operalang (codice, descrizio) VALUES ('cz', 'Slovacco'); |
| | INSERT INTO public.operalang (codice, descrizio) VALUES ('de', 'Tedesco'); |
| | INSERT INTO public.operalang (codice, descrizio) VALUES ('es', 'Spagnolo'); |
| | INSERT INTO public.operalang (codice, descrizio) VALUES ('fr', 'Francese'); |
| | INSERT INTO public.operalang (codice, descrizio) VALUES ('it', 'Italia'); |
| | INSERT INTO public.operalang (codice, descrizio) VALUES ('pl', 'Portogallo'); |
| | INSERT INTO public.operalang (codice, descrizio) VALUES ('ro', 'Romania'); |
| | INSERT INTO public.operalang (codice, descrizio) VALUES ('ru', 'Russia'); |
| | INSERT INTO public.operalang (codice, descrizio) VALUES ('tr', 'Turchia'); |
| | INSERT INTO public.operalang (codice, descrizio) VALUES ('zh-cn', 'Cina'); |
| | ALTER TABLE ONLY public.operalang ADD CONSTRAINT ix_operalang_codice PRIMARY KEY (codice); |
| | |
| | CREATE TABLE public.operamsg ( |
| | codcom integer NOT NULL, |
| | codlang character varying(51) NOT NULL, |
| | subject character varying(512), |
| | msg text, |
| | attachments text |
| | ); |
| | ALTER TABLE public.operamsg OWNER TO postgres; |
| | COMMENT ON TABLE public.operamsg IS 'La tabella contiene la lista dei messaggi definiti nella comunicazione con utenti (operacom) e associati alla relativa lingua. Il tipo di messaggio e'' specificato in operacom.tipo (T=text, M=markdown)'; |
| | COMMENT ON COLUMN public.operamsg.codcom IS 'Codice comunicazione (operacom)'; |
| | COMMENT ON COLUMN public.operamsg.codlang IS 'Codice lingua (operalang)'; |
| | COMMENT ON COLUMN public.operamsg.subject IS 'Oggetto del messaggio (per messaggi di posta elettronica)'; |
| | COMMENT ON COLUMN public.operamsg.msg IS 'Messaggio nel formato previsto (testo o markdown)'; |
| | COMMENT ON COLUMN public.operamsg.attachments IS 'Percorso dei file da allegare divisi da virgola (in caso di posta elettronica)'; |
| | INSERT INTO public.operamsg VALUES (1, 'en', 'New Safety Action', '<div>Hello <b>$nominati</b>, <br /> |
| | a new Safety Action (id: $codice) has been assign to you! <br /> |
| | You can view it by accessing this link:<br /> |
| | <a href="https://dsfm.franke.world/isw/webapp/franke/digcic/main/index?msal=1&mslogin=1#navigateto/codprj:$codprj">https://dsfm.franke.world/isw/webapp/franke/digcic/main/index?msal=1&mslogin=1#navigateto/codprj:$codprj</a> |
| | <br /><br /> |
| | <u>Please don''t reply to this email!</u> <br /> |
| | Best Regards |
| | </div>', NULL); |
| | INSERT INTO public.operamsg VALUES (2, 'en', 'Unassign Safety Action', '<div>Hello <b>$nominati</b>, <br /> |
| | you are no longer in charge of the Safety Action (ID: $codice). It has been reassigned. |
| | <br /><br /> |
| | <u>Please don''t reply to this email!</u> <br /> |
| | Best Regards |
| | </div>', NULL); |
| | INSERT INTO public.operamsg VALUES (3, 'en', 'Reminder Safety Action', '<div>Hello <b>$nominati</b>, <br /> |
| | the safety action (id:$codice) is still open. Please, check it again!<br /> |
| | <a href="https://dsfm.franke.world/isw/webapp/franke/digcic/main/index?msal=1&mslogin=1#navigateto/codprj:$codprj">https://dsfm.franke.world/isw/webapp/franke/digcic/main/index?msal=1&mslogin=1#navigateto/codprj:$codprj</a> |
| | <br /><br /> |
| | <u>Please don''t reply to this email!</u> <br /> |
| | Best Regards |
| | </div>', NULL); |
| | INSERT INTO public.operamsg VALUES (1, 'cs', 'Nová bezpečnostní akce', '<div>Ahoj <b>$nominati</b>,<br />byla ti přidělena nová bezpečnostní akce (ID: $codice)!<br />Můžeš ji zobrazit kliknutím na tento odkaz:<br /><a href="https://dsfm.franke.world/isw/webapp/franke/digcic/main/index?msal=1&mslogin=1#navigateto/codprj:$codprj">Otevřít bezpečnostní akci</a><br /><br /><u>Na tento e-mail neodpovídej!</u><br />S pozdravem</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (1, 'de', 'Neue Sicherheitsmaßnahme', '<div>Hallo <b>$nominati</b>,<br />dir wurde eine neue Sicherheitsmaßnahme (ID: $codice) zugewiesen!<br />Du kannst sie über diesen Link einsehen:<br /><a href="https://dsfm.franke.world/isw/webapp/franke/digcic/main/index?msal=1&mslogin=1#navigateto/codprj:$codprj">Sicherheitsmaßnahme anzeigen</a><br /><br /><u>Bitte antworte nicht auf diese E-Mail!</u><br />Mit freundlichen Grüßen</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (1, 'es', 'Nueva Acción de Seguridad', '<div>Hola <b>$nominati</b>,<br />se te ha asignado una nueva Acción de Seguridad (ID: $codice)!<br />Puedes verla accediendo a este enlace:<br /><a href="https://dsfm.franke.world/isw/webapp/franke/digcic/main/index?msal=1&mslogin=1#navigateto/codprj:$codprj">Ver Acción de Seguridad</a><br /><br /><u>¡Por favor, no respondas a este correo electrónico!</u><br />Saludos cordiales</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (1, 'fr', 'Nouvelle Action de Sécurité', '<div>Bonjour <b>$nominati</b>,<br />une nouvelle Action de Sécurité (ID: $codice) vous a été assignée!<br />Vous pouvez la consulter en accédant à ce lien:<br /><a href="https://dsfm.franke.world/isw/webapp/franke/digcic/main/index?msal=1&mslogin=1#navigateto/codprj:$codprj">Voir l''Action de Sécurité</a><br /><br /><u>Veuillez ne pas répondre à cet e-mail!</u><br />Cordialement</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (1, 'it', 'Nuova Azione di Sicurezza', '<div>Ciao <b>$nominati</b>,<br />ti è stata assegnata una nuova Azione di Sicurezza (ID: $codice)!<br />Puoi visualizzarla accedendo a questo link:<br /><a href="https://dsfm.franke.world/isw/webapp/franke/digcic/main/index?msal=1&mslogin=1#navigateto/codprj:$codprj">Visualizza Azione di Sicurezza</a><br /><br /><u>Per favore, non rispondere a questa email!</u><br />Cordiali saluti</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (1, 'pl', 'Nowe Działanie Bezpieczeństwa', '<div>Cześć <b>$nominati</b>,<br />przypisano Ci nowe Działanie Bezpieczeństwa (ID: $codice)!<br />Możesz je zobaczyć, klikając ten link:<br /><a href="https://dsfm.franke.world/isw/webapp/franke/digcic/main/index?msal=1&mslogin=1#navigateto/codprj:$codprj">Zobacz Działanie Bezpieczeństwa</a><br /><br /><u>Proszę, nie odpowiadaj na tego e-maila!</u><br />Pozdrawiam</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (1, 'ro', 'Acțiune de Securitate Nouă', '<div>Bună <b>$nominati</b>,<br />ți-a fost atribuită o nouă Acțiune de Securitate (ID: $codice)!<br />O poți vizualiza accesând acest link:<br /><a href="https://dsfm.franke.world/isw/webapp/franke/digcic/main/index?msal=1&mslogin=1#navigateto/codprj:$codprj">Vizualizează Acțiunea de Securitate</a><br /><br /><u>Te rugăm să nu răspunzi la acest e-mail!</u><br />Cu stimă</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (1, 'ru', 'Новое Мероприятие по Безопасности', '<div>Здравствуйте <b>$nominati</b>,<br />вам назначено новое Мероприятие по Безопасности (ID: $codice)!<br />Вы можете просмотреть его по этой ссылке:<br /><a href="https://dsfm.franke.world/isw/webapp/franke/digcic/main/index?msal=1&mslogin=1#navigateto/codprj:$codprj">Просмотреть Мероприятие по Безопасности</a><br /><br /><u>Пожалуйста, не отвечайте на это письмо!</u><br />С уважением</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (1, 'tr', 'Yeni Güvenlik Eylemi', '<div>Merhaba <b>$nominati</b>,<br />size yeni bir Güvenlik Eylemi (ID: $codice) atandı!<br />Bu bağlantıya tıklayarak görüntüleyebilirsiniz:<br /><a href="https://dsfm.franke.world/isw/webapp/franke/digcic/main/index?msal=1&mslogin=1#navigateto/codprj:$codprj">Güvenlik Eylemini Görüntüle</a><br /><br /><u>Lütfen bu e-postaya cevap vermeyin!</u><br />Saygılarımızla</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (1, 'zh-cn', '新的安全行动', '<div>你好 <b>$nominati</b>,<br />你被分配了一个新的安全行动(ID: $codice)!<br />你可以通过以下链接查看:<br /><a href="https://dsfm.franke.world/isw/webapp/franke/digcic/main/index?msal=1&mslogin=1#navigateto/codprj:$codprj">查看安全行动</a><br /><br /><u>请不要回复此电子邮件!</u><br />此致敬礼</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (2, 'cs', 'Odebrání bezpečnostní akce', '<div>Ahoj <b>$nominati</b>,<br />již nejsi odpovědný za bezpečnostní akci (ID: $codice). Byla přidělena někomu jinému.<br /><br /><u>Na tento e-mail neodpovídej!</u><br />S pozdravem</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (2, 'de', 'Sicherheitsmaßnahme Entzogen', '<div>Hallo <b>$nominati</b>,<br />du bist nicht mehr für die Sicherheitsmaßnahme (ID: $codice) verantwortlich. Sie wurde neu zugewiesen.<br /><br /><u>Bitte antworte nicht auf diese E-Mail!</u><br />Mit freundlichen Grüßen</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (2, 'es', 'Acción de Seguridad Desasignada', '<div>Hola <b>$nominati</b>,<br />ya no estás a cargo de la Acción de Seguridad (ID: $codice). Ha sido reasignada.<br /><br /><u>¡Por favor, no respondas a este correo electrónico!</u><br />Saludos cordiales</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (2, 'fr', 'Action de Sécurité Révoquée', '<div>Bonjour <b>$nominati</b>,<br />vous n''êtes plus en charge de l''Action de Sécurité (ID: $codice). Elle a été réassignée.<br /><br /><u>Veuillez ne pas répondre à cet e-mail!</u><br />Cordialement</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (2, 'it', 'Azione di Sicurezza Revocata', '<div>Ciao <b>$nominati</b>,<br />non sei più responsabile dell''Azione di Sicurezza (ID: $codice). È stata riassegnata.<br /><br /><u>Per favore, non rispondere a questa email!</u><br />Cordiali saluti</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (2, 'pl', 'Usunięcie Działania Bezpieczeństwa', '<div>Cześć <b>$nominati</b>,<br />nie jesteś już odpowiedzialny za Działanie Bezpieczeństwa (ID: $codice). Zostało ono przypisane komuś innemu.<br /><br /><u>Proszę, nie odpowiadaj na tego e-maila!</u><br />Pozdrawiam</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (2, 'ro', 'Revocare Acțiune de Securitate', '<div>Bună <b>$nominati</b>,<br />nu mai ești responsabil pentru Acțiunea de Securitate (ID: $codice). A fost reasignată.<br /><br /><u>Te rugăm să nu răspunzi la acest e-mail!</u><br />Cu stimă</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (2, 'ru', 'Отмена Назначения Меры Безопасности', '<div>Здравствуйте <b>$nominati</b>,<br />вы больше не отвечаете за Меру Безопасности (ID: $codice). Она была переназначена.<br /><br /><u>Пожалуйста, не отвечайте на это письмо!</u><br />С уважением</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (2, 'tr', 'Güvenlik Eylemi Ataması Kaldırıldı', '<div>Merhaba <b>$nominati</b>,<br />Güvenlik Eylemi (ID: $codice) artık sizin sorumluluğunuzda değil. Başka birine atandı.<br /><br /><u>Lütfen bu e-postaya cevap vermeyin!</u><br />Saygılarımızla</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (2, 'zh-cn', '安全行动取消分配', '<div>你好 <b>$nominati</b>,<br />你不再负责安全行动(ID: $codice)。它已被重新分配。<br /><br /><u>请不要回复此电子邮件!</u><br />此致敬礼</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (3, 'cs', 'Připomenutí bezpečnostní akce', '<div>Ahoj <b>$nominati</b>,<br />bezpečnostní akce (ID: $codice) je stále otevřená. Zkontroluj ji prosím znovu!<br /><a href="https://dsfm.franke.world/isw/webapp/franke/digcic/main/index?msal=1&mslogin=1#navigateto/codprj:$codprj">Otevřít odkaz</a><br /><br /><u>Na tento e-mail neodpovídej!</u><br />S pozdravem</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (3, 'de', 'Erinnerung Sicherheitsmaßnahme', '<div>Hallo <b>$nominati</b>,<br />die Sicherheitsmaßnahme (ID: $codice) ist noch offen. Bitte überprüfe sie erneut!<br /><a href="https://dsfm.franke.world/isw/webapp/franke/digcic/main/index?msal=1&mslogin=1#navigateto/codprj:$codprj">Link öffnen</a><br /><br /><u>Bitte antworte nicht auf diese E-Mail!</u><br />Mit freundlichen Grüßen</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (3, 'es', 'Recordatorio Acción de Seguridad', '<div>Hola <b>$nominati</b>,<br />la acción de seguridad (ID: $codice) sigue abierta. ¡Por favor, revísala de nuevo!<br /><a href="https://dsfm.franke.world/isw/webapp/franke/digcic/main/index?msal=1&mslogin=1#navigateto/codprj:$codprj">Abrir enlace</a><br /><br /><u>¡Por favor, no respondas a este correo electrónico!</u><br />Saludos</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (3, 'fr', 'Rappel Action de Sécurité', '<div>Bonjour <b>$nominati</b>,<br />l''action de sécurité (ID: $codice) est toujours ouverte. Merci de la vérifier à nouveau !<br /><a href="https://dsfm.franke.world/isw/webapp/franke/digcic/main/index?msal=1&mslogin=1#navigateto/codprj:$codprj">Ouvrir le lien</a><br /><br /><u>Veuillez ne pas répondre à cet e-mail !</u><br />Cordialement</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (3, 'it', 'Promemoria Azione di Sicurezza', '<div>Ciao <b>$nominati</b>,<br />l''azione di sicurezza (ID: $codice) è ancora aperta. Per favore, ricontrollala!<br /><a href="https://dsfm.franke.world/isw/webapp/franke/digcic/main/index?msal=1&mslogin=1#navigateto/codprj:$codprj">Apri il link</a><br /><br /><u>Per favore, non rispondere a questa email!</u><br />Cordiali saluti</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (3, 'pl', 'Przypomnienie o Działaniu Bezpieczeństwa', '<div>Cześć <b>$nominati</b>,<br />działanie bezpieczeństwa (ID: $codice) jest nadal otwarte. Proszę, sprawdź je ponownie!<br /><a href="https://dsfm.franke.world/isw/webapp/franke/digcic/main/index?msal=1&mslogin=1#navigateto/codprj:$codprj">Otwórz link</a><br /><br /><u>Proszę, nie odpowiadaj na tego maila!</u><br />Pozdrawiam</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (3, 'ro', 'Memento Acțiune de Securitate', '<div>Bună <b>$nominati</b>,<br />acțiunea de securitate (ID: $codice) este încă deschisă. Te rugăm să o verifici din nou!<br /><a href="https://dsfm.franke.world/isw/webapp/franke/digcic/main/index?msal=1&mslogin=1#navigateto/codprj:$codprj">Deschide linkul</a><br /><br /><u>Te rugăm să nu răspunzi la acest e-mail!</u><br />Cu stimă</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (3, 'ru', 'Напоминание о Мере Безопасности', '<div>Здравствуйте <b>$nominati</b>,<br />мера безопасности (ID: $codice) всё ещё открыта. Пожалуйста, проверьте её снова!<br /><a href="https://dsfm.franke.world/isw/webapp/franke/digcic/main/index?msal=1&mslogin=1#navigateto/codprj:$codprj">Открыть ссылку</a><br /><br /><u>Пожалуйста, не отвечайте на это письмо!</u><br />С уважением</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (3, 'tr', 'Güvenlik Eylemi Hatırlatması', '<div>Merhaba <b>$nominati</b>,<br />güvenlik eylemi (ID: $codice) hâlâ açık. Lütfen tekrar kontrol et!<br /><a href="https://dsfm.franke.world/isw/webapp/franke/digcic/main/index?msal=1&mslogin=1#navigateto/codprj:$codprj">Bağlantıyı aç</a><br /><br /><u>Lütfen bu e-postaya cevap vermeyin!</u><br />Saygılarımızla</div>', NULL); |
| | INSERT INTO public.operamsg VALUES (3, 'zh-cn', '安全行动提醒', '<div>你好 <b>$nominati</b>,<br />安全行动(ID: $codice)仍然未完成。请再次检查!<br /><a href="https://dsfm.franke.world/isw/webapp/franke/digcic/main/index?msal=1&mslogin=1#navigateto/codprj:$codprj">打开链接</a><br /><br /><u>请不要回复此电子邮件!</u><br />此致敬礼</div>', NULL); |
| | |
| | ALTER TABLE ONLY public.operamsg ADD CONSTRAINT ix_operamsg_key PRIMARY KEY (codcom, codlang); |
| | ALTER TABLE ONLY public.operamsg ADD CONSTRAINT ix_operamsg_codcom FOREIGN KEY (codcom) REFERENCES public.operacom(codice) ON UPDATE CASCADE ON DELETE CASCADE; |
| | ALTER TABLE ONLY public.operamsg ADD CONSTRAINT ix_operamsg_codlang FOREIGN KEY (codlang) REFERENCES public.operalang(codice) ON UPDATE CASCADE ON DELETE RESTRICT; |
| | |
| | |
| | |
| | </code> |
| | \\ |
| | ===== Parametri XML ===== |
| | <code sql> |
| | <agent lib="/usr/lib/libiadata.so.0.0.0" create="agentData" live="1" name="prepdig"> |
| | <param name="agdb" value="tpevodb" /> |
| | <param name="path" value="/code/cpp/sql/digcic" /> |
| | </agent> |
| | <agent lib="/usr/lib/libcomhand.so.0.0.0" create="agentOperaCom" live="1" name="operacom"> |
| | <param name="agdb" value="tpevodb"/> |
| | <param name="agch" value="smtp"/> |
| | <param name="prefix" value="$" /> |
| | <param name="suffix" value="$" /> |
| | </agent> |
| | <agent lib="/usr/lib/libcomhand.so.0.0.0" create="agentSmtp" live="1" name="smtp"> |
| | <param name="server" value="smtp://smtp-eu.franke.world:587"/> |
| | <param name="usr" value="Franke-DSFM.CH@franke.com"/> |
| | <param name="pw" value="gWvx?GRaqsEutjDaxGcC"/> |
| | <param name="insecure" value="1"/> |
| | <!-- <param name="cacert" value="/nextdata/code/cfg/certs/franke/dsfm/dsfm.franke.world.ca-bundle"/> --> |
| | <param name="sendmail" value="Franke-DSFM.CH@franke.com"/> |
| | <param name="sendname" value="DSFM"/> |
| | <param name="timeoutconn" value="10"/> |
| | <param name="timeoutsend" value="60"/> |
| | </agent> |
| | <agent lib="/usr/lib/libdigcic.so.0.0.0" create="agentActionNotify" live="1" name="actmail"> |
| | <param name="agdb" value="tpevodb" /> |
| | <param name="agcom" value="operacom" /> |
| | <param name="keynew" value="assign" /> |
| | <param name="keydel" value="unassign" /> |
| | <param name="keyrem" value="reminder" /> |
| | <!-- Ogni tipologia ha un suo messaggio configurato che si identifica con "$TIPO"|"$TIPO_chiamata" ($TIPO_chiamata è la chiave di operacom.key) --> |
| | <param name="confkeynew" value="S|S_assign,Q|Q_assign" /> |
| | <param name="confkeydel" value="S|S_unassign" /> |
| | <param name="confkeyrem" value="S|S_reminder" /> |
| | <param name="tm" value="300000" /> |
| | <param name="agps" value="prepdig" /> |
| | </agent> |
| | </code> |
| | |
| | ====== Richiesta invio email all'owner dell'oggetto ====== |
| | Ci è stato richiesto di poter ricevere un'email anche da parte dell'owner di un oggetto. Per fare questo è necessario apporre le seguenti modifiche alla tabella emailsetting, per gestire gli utenti che devono ricevere l'email, che ora possono essere due (owner e responsabile): |
| | |
| | <code sql> |
| | alter table emailsetting add column codoperfield varchar(51); |
| | alter table emailsetting add column msgkey varchar(4); |
| | update emailsetting set codoperfield = 'codoperres', msgkey = type; |
| | alter table emailsetting drop constraint ix_emailsetting_pk; |
| | -- alter table emailsetting add constraint ix_emailsetting_pk PRIMARY KEY (codubi,type,codoperfield); |
| | alter table emailsetting add constraint ix_emailsetting_pk PRIMARY KEY (codubi,msgkey); |
| | </code> |
| | |
| | Aggiunta una tabella per gestire le richieste ed i messaggi. Sono state tolte le chiavi dei messaggi dall'xml e sono state gestite nella tabella actionkeys \\ |
| | <code sql> |
| | CREATE TABLE public.actionkeys ( |
| | type character varying(4) NOT NULL, |
| | operation character varying(250) NOT NULL, |
| | comkey character varying(51) |
| | ); |
| | ALTER TABLE public.actionkeys OWNER TO postgres; |
| | COMMENT ON TABLE public.actionkeys IS 'Tabella per la gestione delle azioni di mail'; |
| | COMMENT ON COLUMN public.actionkeys.type IS 'Tipologia di action'; |
| | COMMENT ON COLUMN public.actionkeys.operation IS 'Operazione della mail (unassign, assign, reminder)'; |
| | COMMENT ON COLUMN public.actionkeys.comkey IS 'Campo operacom.key per selezione del messaggio da inviare'; |
| | |
| | INSERT INTO public.actionkeys VALUES ('Q', 'assign', 'Q_assign'); |
| | INSERT INTO public.actionkeys VALUES ('V', 'assign', 'V_assign'); |
| | INSERT INTO public.actionkeys VALUES ('H', 'assign', 'H_assign'); |
| | INSERT INTO public.actionkeys VALUES ('M', 'assign', 'M_assign'); |
| | INSERT INTO public.actionkeys VALUES ('S', 'assign', 'S_assign'); |
| | INSERT INTO public.actionkeys VALUES ('W', 'assign', 'W_assign'); |
| | INSERT INTO public.actionkeys VALUES ('O', 'assign', 'O_assign'); |
| | INSERT INTO public.actionkeys VALUES ('I', 'assign', 'I_assign'); |
| | INSERT INTO public.actionkeys VALUES ('Z', 'assign', 'Z_assign'); |
| | INSERT INTO public.actionkeys VALUES ('J', 'assign', 'J_assign'); |
| | INSERT INTO public.actionkeys VALUES ('Q', 'unassign', 'Q_unassign'); |
| | INSERT INTO public.actionkeys VALUES ('V', 'unassign', 'V_unassign'); |
| | INSERT INTO public.actionkeys VALUES ('H', 'unassign', 'H_unassign'); |
| | INSERT INTO public.actionkeys VALUES ('M', 'unassign', 'M_unassign'); |
| | INSERT INTO public.actionkeys VALUES ('S', 'unassign', 'S_unassign'); |
| | INSERT INTO public.actionkeys VALUES ('W', 'unassign', 'W_unassign'); |
| | INSERT INTO public.actionkeys VALUES ('O', 'unassign', 'O_unassign'); |
| | INSERT INTO public.actionkeys VALUES ('I', 'unassign', 'I_unassign'); |
| | INSERT INTO public.actionkeys VALUES ('Z', 'unassign', 'Z_unassign'); |
| | INSERT INTO public.actionkeys VALUES ('J', 'unassign', 'J_unassign'); |
| | INSERT INTO public.actionkeys VALUES ('Q', 'reminder', 'Q_reminder'); |
| | INSERT INTO public.actionkeys VALUES ('V', 'reminder', 'V_reminder'); |
| | INSERT INTO public.actionkeys VALUES ('H', 'reminder', 'H_reminder'); |
| | INSERT INTO public.actionkeys VALUES ('M', 'reminder', 'M_reminder'); |
| | INSERT INTO public.actionkeys VALUES ('S', 'reminder', 'S_reminder'); |
| | INSERT INTO public.actionkeys VALUES ('W', 'reminder', 'W_reminder'); |
| | INSERT INTO public.actionkeys VALUES ('O', 'reminder', 'O_reminder'); |
| | INSERT INTO public.actionkeys VALUES ('I', 'reminder', 'I_reminder'); |
| | INSERT INTO public.actionkeys VALUES ('Z', 'reminder', 'Z_reminder'); |
| | INSERT INTO public.actionkeys VALUES ('J', 'reminder', 'J_reminder'); |
| | INSERT INTO public.actionkeys VALUES ('JO', 'assign', 'JO_assign'); |
| | INSERT INTO public.actionkeys VALUES ('JO', 'reminder', 'JO_reminder'); |
| | INSERT INTO public.actionkeys VALUES ('JO', 'unassign', 'JO_unassign'); |
| | INSERT INTO public.actionkeys VALUES ('SO', 'assign', 'SO_assign'); |
| | INSERT INTO public.actionkeys VALUES ('SO', 'reminder', 'SO_reminder'); |
| | INSERT INTO public.actionkeys VALUES ('SO', 'unassign', 'SO_unassign'); |
| | INSERT INTO public.actionkeys VALUES ('ZB', 'assign', 'ZB_assign'); |
| | INSERT INTO public.actionkeys VALUES ('ZB', 'reminder', 'ZB_reminder'); |
| | INSERT INTO public.actionkeys VALUES ('ZB', 'unassign', 'ZB_unassign'); |
| | |
| | ALTER TABLE ONLY public.actionkeys ADD CONSTRAINT actionkeys_pkey PRIMARY KEY (type, operation); |
| |
| </code> | </code> |