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.xml
File. 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.xml
File 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__config
mit einem serialisierten Array befüllen in dem deridentitier
auf die zuvor erstellteisys_report__id
zeigt, 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.xml
zu definieren, erstelle ich nun den Report und die Kategorie mit einer Methode in derisys_module_privacy_install
Klasse. 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
install
Logik, da dieupdate_data.xml
keinerlei Logik ausführen kann - lediglich SQL Queries.Vielleicht konnte ich hiermit noch ein wenig weiterhelfen?
Viele Grüße
Leo