Community

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Users
    • Search

    Report Datenveränderungen

    Betrieb
    3
    6
    893
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      Chris1980 last edited by

      Hallo zusammen,
      ich möchte gerne einen "Veränderungsreport" erstellen, der mir quasi aufzeigt, welche Geräte bereits Datensatzänderungen vollzogen haben.

      Beispiel

      PC 12233 wurde am 23.01.2016 von Gebäude Lager nach Gebäude Kunde Müller verschoben.

      Monitor 9999 wurde am 07.06. 2017 von Gebäude Kunde Müller nach Kunde Meier verschoben.

      Wie kann ich dieses am einfachsten realisieren?

      Vielen Dank

      LG

      Chris

      1 Reply Last reply Reply Quote 0
      • creiss
        creiss i-doit Kenner last edited by

        Hi Chris,

        das kannst du am besten im Report Manager machen. Allerdings werden dort aktuell die Aktionen nicht richtig ausgegeben. Einen anderen Weg, außer in das Logbuch selber zu schauen und dort zu filtern, wüsste ich gerade auch nicht.

        Lieben Gruß
        Christian

        NEU - i-doit und IT-Dokumentation bei YouTube: https://www.youtube.com/channel/UCK9fitbW5J1yhiDs5Dr3YQw
        Komplett-Strategie: https://i-doit-trainings.de/it-dokumentation-komplett-strategie/
        i-doit Mastery – https://i-doit-trainings.de/i-doit-mastery

        1 Reply Last reply Reply Quote 0
        • C
          Chris1980 last edited by

          Hallo Christian,
          genau das ist mein Problem.

          Ich habe aktuell 5000 Datensätze, wo ich Monat für Monat in der Lage sein möchte, die Veränderungen zu sehen.

          Im Moment fällt mir nur ein 2 Reports zu erstellen und diese über Excel zu filtern.

          Genau das möchte ich eigentlich nicht.

          LG

          Chris

          1 Reply Last reply Reply Quote 0
          • dkirsten
            dkirsten last edited by

            Hi,

            mit i-doit Bordmitteln ist das aktuell leider nicht wirklich möglich. Ich würde vorschlagen, ggf. per SQL direkt auf die Logbuch Tabellen zu gehen und dort die Änderungen rauszuholen und die Details dann per API abfragen. Beispiel Ausgabe mit Datum und Objekt-ID:

            SELECT isys_logbook.isys_logbook__date,isys_catg_logb_list.isys_catg_logb_list__isys_obj__id FROM isys_logbook LEFT JOIN isys_catg_logb_list ON isys_logbook.isys_logbook__id = isys_catg_logb_list.isys_catg_logb_list__isys_logbook__id;

            Viele Grüße,

            Daniel

            1 Reply Last reply Reply Quote 0
            • C
              Chris1980 last edited by

              Hallo Daniel,
              gibt es ein ERM Modell zu den Logbuch Tabellen?

              Wie kann ich über SQL die Änderungen im Logbuch herausfinden?

              Beispiel Bezeichner von Player01 auf Player88 geändert.

              Im Logbuch selber kann ich diese Veränderungen nicht einsehen (isys_logbook)

              LG

              Chris

              1 Reply Last reply Reply Quote 0
              • dkirsten
                dkirsten last edited by

                Hallo,

                grundsätzlich gibt es in der Knowledgebase einen Artikel zum Datenbankmodell: https://kb.i-doit.com/display/de/Datenbank-Modell

                Rein über das SQL zu gehen und hier alle Informationen zu parsen wird etwas schwierig. Objektname und Change lassen sich zwar mit

                SELECT isys_logbook.isys_logbook__date,isys_catg_logb_list.isys_catg_logb_list__isys_obj__id,isys_logbook.isys_logbook__obj_name_static,isys_logbook.isys_logbook__changes FROM isys_logbook LEFT JOIN isys_catg_logb_list ON isys_logbook.isys_logbook__id = isys_catg_logb_list.isys_catg_logb_list__isys_logbook__id;
                

                herausholen, allerdings ist der eigentliche "Change" ein serialisierter String, den man erst wieder parsen müsste.
                Um das auf der Kommandozeile zu machen müsste man den String isolieren udn dann durch eine PHP Funktion jagen. Ich habe das jetzt nicht durchexerziert, aber Ansätze wären:

                mysql -N -B -u[USERNAME] -p[PASSWORD] -e "SELECT isys_logbook.isys_logbook__date,isys_catg_logb_list.isys_catg_logb_list__isys_obj__id,isys_logbook.isys_logbook__obj_name_static,isys_logbook.isys_logbook__changes FROM isys_logbook LEFT JOIN isys_catg_logb_list ON isys_logbook.isys_logbook__id = isys_catg_logb_list.isys_catg_logb_list__isys_logbook__id;" [DATABASE_NAME] |awk -F $'\t' '{print $4}'
                

                um die Daten zu isolieren (geht auch einfacher, aber ich mag einfach awk 😃

                und dann die Daten in ein PHP Kommando bringen ($1 müsste dann anstatt dessen der String sein):

                php -r " echo var_dump(unserialize('"$1"')); echo \"\\n\";"
                

                Solltest Du also Lust zu basteln haben, ließe sich das als Bashscript oder eigenständiges PHP Script lösen.

                Eine einfache, schnelle Lösung gibt es so leider nicht.

                Viele Grüße,

                Daniel

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post