IDoit <-> RT: bekomme es nicht hin. :-(



  • Hallo liebe Forengemeinde,

    ich war ja sehr begeistert, als ich das Modul für die Verbindung dieser beiden schönen Anwendungen fand. Es sah alles so einfach aus! Doch stelle ich mich wohl zu dusselig an. 😞

    Dazu kommt eine möglicherweise ungewöhnliche Konfiguration… Schaut:

    Setting
    I-Doit: 1.8.2 (Bereitgestellt durch: apache auf Port 80)
    RT: 4.4.1 (Bereitgestellt durch: request-tracker auf Port 81)
    Die i-doit api lauscht über: "i-doit_api_proxy.php"

    Set(@Plugins,qw(RT::Extension::ReferenceIDoitObjects));
    
    Set($IDoitURL, 'http://172.16.x.x/');
    Set($IDoitAPI, 'http://172.16.x.x/i-doit_api_proxy.php');
    
    Set(%IDoitTenantKeys, (
    	1 => 'mein_sicherer_api_key'
    ));
    
    Set($IDoitDefaultTenant, 1);
    Set($IDoitDefaultView, 'objects'); # 'objects', 'workplaces', 'devices', or 'item'
    Set($IDoitInstalledSoftware, 'relations'); # 'objects', or 'relations'
    Set($IDoitShowCustomFields, 1); # 1 ('yes') or 0 ('no')
    

    Über die RT GUI habe ich versucht, bei "i-doit tenant" einen solchen anzulegen. Bin mir aber ehrlich gesagt über die Felder "Sortierung" und "Name" nicht genau klar. Hatte aber verschiedene Möglichkeiten ausprobiert.

    In diesem Zusammenhang sei noch erwähnt, dass der Mensch, der damals das i-doit aufgesetzt hatte. Als Tenant den default Wert hatte stehen lassen. Hier ist also bei Mandant: "Your Companyname" drin. Da es sich nicht um die Multi-Tenant-Version von i-doit handelt, kann man das wohl nicht nachträglich korrigieren? 😕

    Ich hatte gesehen, dass dieser auch via URL an RT übergeben wird. Eine mögliche Bedeutung ist mir aber nicht klar.

    Die Phänomene:
    Steuere ich den Ort der i-doit-API via Browser an, kommt die gewünschte Fehlermeldung + Access-Log-File der API.
    Egal, was ich in RT mache: Nie gibt es einen Log File der API.

    Möchte ich in in I-doit ein Ticket anlegen, kann ich nur die Rubrik "General" sehen. Die Weiterleitung zu RT funktioniert aber und es wird (wohl über die URL) eine I-Doit-Objekt ID an RT übertragen, die auch im Feld I-Doit-Objekte landet.

    Speichere ich das Ticket, taucht es nicht bei i-doit auf. Außerdem hab ich nur die Objekt-ID im RT dargestellt.
    Also eine Nummer in plain Text und nicht (wie auf den Screenshots der Doku) einen i-doit-"Ausschnitt".

    Hinzufügen von Objekten von RT Seite aus klappt auch nicht. Hier ist einfach nur im besten Fall eine weiße Box, in die ich Nummern einfügen kann.

    Fehlermeldungen
    Eine bereits in einem anderen Thread angesprochene von vor einem Jahr:

    Steuert man im RT ein Ticket an und php soll diese Seite bauen, erscheint im Zusammenhang mit dem Modul:

    [31743] [Fri Feb  3 11:08:19 2017] [warning]: Odd number of elements in hash assignment at /opt/rt4/local/plugins/RT-Extension-ReferenceIDoitObjects/html/Elements/ShowIDoitObjects line 264\. (/opt/rt4/local/plugins/RT-Extension-ReferenceIDoitObjects/html/Elements/ShowIDoitObjects:264)
    [31743] [Fri Feb  3 11:08:19 2017] [warning]: Use of uninitialized value in list assignment at /opt/rt4/local/plugins/RT-Extension-ReferenceIDoitObjects/html/Elements/ShowIDoitObjects line 264\. (/opt/rt4/local/plugins/RT-Extension-ReferenceIDoitObjects/html/Elements/ShowIDoitObjects:264)
    

    Konkret betrifft das diese Zeile:

    264: %IDoitTenantKeys => undef
    

    Ich habe mir lange darüber den Kopf zerbrochen, aber es ist vielleicht Quatsch, meine Vermutungen hier mitzuteilen, dazu bin ich zu sehr DAU 🙂

    Eine weitere Fehlermeldung gibt es in der Fehlerkonsole des Browsers (getestet mit Firefox und Safari):

    TypeError: a is not an Object. (evaluating '"length"in a')
    

    In vielen (allen?) Scripten der Seite, in denen 'a' vorkommt, ist diese Variable scheinbar unbekannt(?).

    Bin für alle Tipps dankbar! 🙂

    Liebe Grüße
    Christian


  • i-doIT Team

    Hi Christian,

    willkommen im i-doit Forum 🙂

    Es gibt bei deinem Setup gleich mehrere Dinge, die eventuell noch nicht oder fehlerhaft konfiguriert sind. Gehen wir mal durch:

    1. Die bestehenden Mandanten trägst du in das CustomField IDoitTenant ein. Dabei kannst du die Sortierung und Beschreibung ignorieren. Wichtig ist, dass pro Wert (Value) unter Name eine Mandanten-ID steht. Da die meisten eh nur einen Mandanten verwenden, trägst du hier eine 1 ein. Es muss die ID und nicht der Name des Mandanten eingetragen sein, ansonsten wird der Objekt-Browser bei der Ticketerstellung nicht geladen.

    2. Soll i-doit die bestehenden Tickets in der Kategorie "Alle Tickets" anzeigen, dann schickt der i-doit-Server einen HTTP Request an die API von RT. Dort sollte im Request der Parameter IDoitTenant=1 (o. ä.) gesetzt sein. Das kannst du aber nicht beeinflussen, sondern das macht i-doit ab Version 1.8.2 automatisch. Davor wurde IDoitMandator=Your Company Name übertragen, was in der Extension seit Version 1.00 unter RT 4.4.x nicht mehr funktioniert.

    3. Die in RT konfigurierten Queues kann man leider nicht über die API von RT auslesen. Damit die Kategorie "Alle Tickets" alle Queues anzeigt, musst du diese in der Verwaltung eintragen.

    4. Die Fehlermeldungen lassen sich wahrscheinlich vermeiden, wenn Punkt 1) beachtet wird.

    Ich hoffe, ich konnte dir weiterhelfen.

    Viele Grüße
    Benjamin

    PS: Wer nicht weiß, worum es geht: Request Tracker (RT) in der i-doit Knowledge Base 😉



  • Hallo Benjamin,

    verflixt, es ist schon wieder fast ein Monat her…

    Zunächst: Vielen Dank, dass Du Dich so schnell gemeldet hast!
    Dann: Es war eine Menge Input von Dir, ich habe es auch gleich am nächsten Tag versucht umzusetzen, doch... es hat nicht funktioniert.
    Gucken wir mal genauer:

    @bheisig:

    Es gibt bei deinem Setup gleich mehrere Dinge, die eventuell noch nicht oder fehlerhaft konfiguriert sind. Gehen wir mal durch:

    1. Die bestehenden Mandanten trägst du in das CustomField IDoitTenant ein. Dabei kannst du die Sortierung und Beschreibung ignorieren. Wichtig ist, dass pro Wert (Value) unter Name eine Mandanten-ID steht. Da die meisten eh nur einen Mandanten verwenden, trägst du hier eine 1 ein. Es muss die ID und nicht der Name des Mandanten eingetragen sein, ansonsten wird der Objekt-Browser bei der Ticketerstellung nicht geladen.

    Nach meinem Empfinden habe ich es so gemacht. Und: Aha! Da gibt es also so etwas, dass "Objekt-Browser" heißt und geladen werden müsste. Das passiert leider nicht.

    @bheisig:

    1. Soll i-doit die bestehenden Tickets in der Kategorie "Alle Tickets" anzeigen, dann schickt der i-doit-Server einen HTTP Request an die API von RT. Dort sollte im Request der Parameter IDoitTenant=1 (o. ä.) gesetzt sein. Das kannst du aber nicht beeinflussen, sondern das macht i-doit ab Version 1.8.2 automatisch. Davor wurde IDoitMandator=Your Company Name übertragen, was in der Extension seit Version 1.00 unter RT 4.4.x nicht mehr funktioniert.

    Hier bin ich verloren. Ich habe auch versucht, mal den Verkehr mit zu lauschen, aber wenn ich auf "Alle Tickets" klicke, passiert scheinbar gar nichts, also ich konnte spontan keine HTTP Requests auffangen.

    @bheisig:

    1. Die in RT konfigurierten Queues kann man leider nicht über die API von RT auslesen. Damit die Kategorie "Alle Tickets" alle Queues anzeigt, musst du diese in der Verwaltung eintragen.

    Das hat funktioniert! Jucheee! 🙂

    @bheisig:

    1. Die Fehlermeldungen lassen sich wahrscheinlich vermeiden, wenn Punkt 1) beachtet wird.

    Ich glaube, ich habe mich bei Punkt 1) noch zu dusselig angestellt. Die Fehlermeldungen sind nicht verschwunden.

    Im Moment fehlen mir die weiteren Ansatzpunkte, da ich auch die Hintergrundprozesse nicht genau verstehe. "Objekt-Browser" und "HTTP-Requests" von i-doit an die "RT API" waren da wertvolle Infos, aber ich finde auf den ersten und zweiten Blick gerade keine Spuren, von beiden Prozessen… Auch verunsichern mich noch die vielen anderen Möglichkeiten Variablen im CustomField IDoitTenant ändern zu können. Da muss (darf?) ich doch nichts ändern außer den Mandanten?

    So ein bisschen spekuliere ich auf das Problem in meinem Setup:
    i-doit:localhost:Apache:80 <-> 81:RT-Standalone:localhost:RT.
    ...aber das ist eher ein Gefühl als eine begründete Vermutung.

    Aktuell kann ich noch nicht mit neuen Informationen aufwarten. Ich werde noch einmal alles durchgehen und vielleicht sogar das ganze noch einmal getrennt in zwei Maschinen testweise laufen lassen. Es sei denn, Du hast gerade noch einen spontanen Tipp für mich?

    Noch einmal Danke! Danke! Danke! bis hierher. 🙂

    Liebe Grüße
    Christian

    p.s. Gibt es eigentlich Pakete für "Temporären-Einzelproblem-Support"?


  • i-doIT Team

    Hallo Christian,

    wir haben mittlerweile heraus gefunden, dass es einen Bug in jQuery gibt, der die Anzeige des Browsers innerhalb von RT verhindert. Unter /opt/rt4/share/static/js/ musst du jquery-1.11.3.min.js gegen eine neuere Version austauschen. Derzeit ist jquery-1.12.4.min.js aktuell. Im einfachsten Fall überschreibst du die alte Version mit der neuen, bleibst also beim Dateinamen jquery-1.11.3.min.js. Andernfalls müsstest du noch eine weitere Datei in RT bearbeiten, die jQuery inkludiert. Anschließend muss der Mason-Cache geleert und Apache neu gestartet werden. Damit sollte die Anzeige klappen.

    Die Kommunikation, wenn i-doit nach Tickets fragt, kannst du im Apache mitloggen. Unter Debian & Co. sollten die Requests in /var/log/apache2/access.log auftauchen.

    "Temporären Einzelproblem-Support" haben wir leider derzeit nicht in petto. Für zahlende Kunden bieten wir Remote Support für 1 Jahr an. Hier gibt es weitere Infos: https://www.i-doit.com/produkte/preise/#support

    Viele Grüße
    Benjamin



  • Hallo Benjamin,

    wow, es tut sich etwas!
    Der Austausch der Bibliothek führte dazu, dass jetzt im Fronend von RT "Ladevorgang läuft…" oder auch "Es wurden noch keine Objekte ausgewählt." zu sehen ist. 🙂

    Die Fehlermeldungen von einst (der folgende Zeitstempel ist irrelevant, da aus Bequemlichkeit von oben kopiert)

    
    [31743] [Fri Feb  3 11:08:19 2017] [warning]: Odd number of elements in hash assignment at /opt/rt4/local/plugins/RT-Extension-ReferenceIDoitObjects/html/Elements/ShowIDoitObjects line 264\. (/opt/rt4/local/plugins/RT-Extension-ReferenceIDoitObjects/html/Elements/ShowIDoitObjects:264)
    [31743] [Fri Feb  3 11:08:19 2017] [warning]: Use of uninitialized value in list assignment at /opt/rt4/local/plugins/RT-Extension-ReferenceIDoitObjects/html/Elements/ShowIDoitObjects line 264\. (/opt/rt4/local/plugins/RT-Extension-ReferenceIDoitObjects/html/Elements/ShowIDoitObjects:264)
    
    

    sind noch da.

    Nur zur Sicherheit:
    Gehst Du davon aus, dass i-doit UND RT beide von apache ausgeliefert werden?

    Ich schaue jetzt aber noch einmal tiefer, was die neue Bibliothek geändert hat. Diese Nachricht ist also eher ein schnelles Feedback von meiner Seite.

    Liebe Grüße und DANKE!
    Christian

    Edit: in /var/www/i-doit/log gibt es aktuell noch keine api_JJJJ-MM-TT_HH_MM_SS.log wenn eine Ticketseite aufgerufen wird.


  • i-doIT Team

    Hallo Christian,

    anscheinend läuft bei dir im Browser etwas schief, wenn du eine Ticketseite in RT aufrufst. Die Entwickler-Tools (F12) im Browser helfen hier meist weiter. Wenn keine API-Logs erstellt wurden, obwohl sie in der Verwaltung aktiviert sind, kommt erst gar kein Request an i-doit an. Du kannst gerne einen Screenshot der Browser Console und der Netzwerkkommunkation posten. Ich vermute, dass bei den Hops Browser -> API-Proxy -> i-doit etwas nicht richtig funktioniert, eher bereits zwischen Browser und API-Proxy. Das kann allerdings alles mögliche sein: Typo, JS-Fehler, Zertifikats-Fehler, fehlgeschlagende Domain Policy, etc.

    Viele Grüße
    Benjamin



  • Hey Benjamin,

    ich muss zwischendrin irgendwas an der Konfiguration verändert haben, was nun Schwierigkeiten mit der API von i-doit macht.

    Steuere ich die API via Browser an:

    {"id":0,"jsonrpc":"2.0","error":{"code":-1,"message":"Api Module is not available.","data":null}}
    

    Werde erstmal hier schauen und dann berichten.

    Liebe Grüße
    Christian



  • @ChristianW:

    {"id":0,"jsonrpc":"2.0","error":{"code":-1,"message":"Api Module is not available.","data":null}}
    

    Werde erstmal hier schauen und dann berichten.

    API geht wohl wieder. Jetzt mal einen Screenshot im Anhang:

    Liebe Grüße
    Christian

    Edit: Noch als Ergänzung, im Stdout des rt-servers sieht man tatsächlich den erfolgreichen Benutzer-Login an RT, wenn man in i-doit auf "Alle Tickets" geht. Vorhandene Tickets werden aber nicht in i-doit dargestellt.

    Edit2: Ein Kollege meinte heute zu mir, dass das Problem eher daran läge, dass wir nicht die 1.8.2 haben, die von dem Plugin gefordert ist, sondern 1.8 rev 21800. Ich hätte darauf spekuliert, dass 1.8 rev 21800 = 1.8.2 ist. Hm…

    Bildschirmfoto 2017-03-09 um 19.10.33.png


  • i-doIT Team

    Hallo Christian,

    wie falsche Version wird wahrscheinlich die Wurzel allen Übels sein 😉 Übrigens: Mittlerweile ist die 1.8.3 draußen. Diese sollte ebenfalls mit RT 4.4 und der Extension >= 1.00 kompatibel sein.

    Viele Grüße
    Benjamin



  • Hallo Benjamin,

    wir benutzen ja aktuell die "open" Variante und da ist die neuste halt 1.8, die wir auch haben. Okay… dann also RT Downgrade oder i-doit upgrade...

    Ich evaluiere und teste! 🙂

    Danke!

    Liebe Grüße
    Christian



  • Hallo Benjamin,

    es geht jetzt fast alles!
    Ich habe nicht viel geändert, aber den i-doit_api_proxy.php noch einmal deaktiviert und (wie in dem ähnlichen, neuen Beitrag hier im Forum) Cross-Site-Verweise erlaubt. Dann geht es jetzt.

    Ich hatte ja auch schon spekuliert, dass mein Problem daran liegen könnte, dass der rt-webserver das proxy-script nicht richtig interpretiert. (Sicherheitseinstellungen?)

    Mit diesem Workaround ist es natürlich bisschen Gefrickel und der laufende Proxy wäre mir lieber, aber aktuell sieht es schon sehr schick aus! 🙂

    Liebe Grüße
    Christian
    p.s. Es ist noch immer die Variante "i-doit 1.8 open" mit "RT 4.4"


  • i-doIT Team

    Hallo Christian,

    das freut mich, dass es nun zu deiner Zufriedenheit funktioniert. Alles wird allerdings mit i-doit 1.8 nicht gehen: Die Kategorie "Alle Tickets" wird keine Ergebnisse ausgeben. Abhilfe schafft hier das Update auf Version 1.8.3. Die ist kürzlich erschienen: https://www.i-doit.org/release-i-doit-1-8-3/

    Viel Erfolg weiterhin!

    Viele Grüße
    Benjamin



  • Hey Benjamin,

    danke für die viele Unterstützung! Das "Alle Tickets" nicht angezeigt werden, ist ein guter Hinweis. 🙂
    Ich hatte früher schon mal gesehen, wie i-doit beim Druck auf die Sprechblasen einen Request an RT schickte, aber nichts zurück kam. Dann muss ich hier ja nicht weitersuchen, sondern eher in Richtung 1.8.3 denken.

    Liebe Grüße
    Christian



  • Hallo Benjamin,

    gerade auf die Pro Variante aktualisiert und nun werden auch alle Tickets angezeigt. Sehr schön.

    Danke noch einmal für Deine Hilfe!

    Liebe Grüße
    Christian


Log in to reply
 


Datenschutz / Privacy Policy