Erstellen eines variablen Reports + zugehöriger Kategorie
-
Guten Morgen!
Ich möchte für das Data Privacy Add-on eine benutzerdefinierte Kategorie erstellen, die über einen variablen Report eine Retouransicht auf zugewiesene Objekte realisiert.
Derzeit erstelle ich die Datenbankeinträge über das
update_data.xmlFile. Habe nun aber Probleme beim Referenzieren in der Kategorie auf den Report.Wie ist der korrekte Weg den Report und die benutzerdefinierte Kategorie zu erstellen?
Wenn der Weg über das
update_data.xmlFile der falsche ist könnt ihr hier aufhören zu lesen. Ich bescheibe nur noch wie ich derzeit den Report und die Kategorie erstelle.Den Report erstelle ich mit
INSERT INTO `isys_report` (`isys_report__title`, `isys_report__description`, `isys_report__query`, `isys_report__query_row`, `isys_report__mandator`, `isys_report__user`, `isys_report__datetime`, `isys_report__last_edited`, `isys_report__type`, `isys_report__user_specific`, `isys_report__querybuilder_data`, `isys_report__isys_report_category__id`, `isys_report__empty_values`, `isys_report__display_relations`, `isys_report__category_report`, `isys_report__const`, `isys_report__compressed_multivalue_results`, `isys_report__show_html`, `isys_report__keep_description_format`) VALUES ('LC__MODULE__PRIVACY__PROCESSINGS__OF_ORGANISATION','Variable Report from the Data Prvacy Add-on to use in same named category of organisations. Shows all processings of the selected organisation','SELECT \r\nobj_main.isys_obj__id AS \'__id__\', \r\nobj_main.isys_obj__title AS \'LC__UNIVERSAL__TITLE###0_1\' \r\n\r\n FROM isys_obj AS obj_main \r\nINNER JOIN isys_cmdb_status AS obj_main_status ON obj_main_status.isys_cmdb_status__id = obj_main.isys_obj__isys_cmdb_status__id \r\nLEFT JOIN isys_obj_type AS j2 ON j2.isys_obj_type__id = obj_main.isys_obj__isys_obj_type__id \r\nLEFT JOIN isys_catg_contact_list AS j5 ON j5.isys_catg_contact_list__isys_obj__id = obj_main.isys_obj__id \r\nLEFT JOIN isys_connection AS j4 ON j4.isys_connection__id = j5.isys_catg_contact_list__isys_connection__id \r\nLEFT JOIN isys_obj AS job4 ON j4.isys_connection__isys_obj__id = job4.isys_obj__id \r\nLEFT JOIN isys_contact_tag AS j8 ON j8.isys_contact_tag__id = j5.isys_catg_contact_list__isys_contact_tag__id \r\n\r\nWHERE TRUE \r\n AND ( (j2.isys_obj_type__id != \'60\' ) AND (j2.isys_obj_type__id != \'63\' ) ) AND ( (j2.isys_obj_type__id = \'93\' ) ) AND ( (job4.isys_obj__id PLACEHOLDER.4 \'object-id\' ) AND (j8.isys_contact_tag__id in (select isys_contact_tag__id from isys_contact_tag where isys_contact_tag__const=\"C__MODULE__PRIVACY__ROLE__CONTROLLER\" OR isys_contact_tag__const=\"C__MODULE__PRIVACY__ROLE__JOINT_CONTROLLER\") ))\r\n ORDER BY obj_main.isys_obj__title DESC',NULL,1,27,'2021-06-04 09:19:13','2021-07-20 19:09:46','0',0,NULL,NULL,1,0,1,'C__VERARBEITUNGSTATIGKEITEN_VON',0,0,0);Wenn ich nun die benutzerdefinierte Kategorie erstellen will, muss ich die Spalte
isysgui_catg_custom__configmit einem serialisierten Array befüllen in dem deridentitierauf die zuvor erstellteisys_report__idzeigt, aber wie?Bitte schubst mich in die richtige Richtung.
ciao
chris -
Nach etwas Nachdenken kann ich mir die Antwort selber geben. Statt die Queries in der
update_data.xmlzu definieren, erstelle ich nun den Report und die Kategorie mit einer Methode in derisys_module_privacy_installKlasse. Beim Erstellen der Kategorie verwende ich entwederget_last_insert_id()oder ich frage dieisys_report__idüber einen select ab.ciao
chris -
Hey @cwrm,
entschuldige die späte Antwort - aber gut zu sehen das du eine Lösung gefunden hast. Der Add-on Packager übernimmt genau diese Aufgabe indem die Konstante (
isys_report__const) zum identifizieren genutzt wird.Über diese Konstante kann die ID gefunden und referenziert werden
Das geschieht ebenfalls mittels der installLogik, da dieupdate_data.xmlkeinerlei Logik ausführen kann - lediglich SQL Queries.Vielleicht konnte ich hiermit noch ein wenig weiterhelfen?
Viele Grüße
Leo