Priorität anhand von dynamischen Feldern berechnen

Hilfe zu OTRS Problemen aller Art
Post Reply
beckma
Znuny newbie
Posts: 2
Joined: 30 Mar 2012, 11:28
Znuny Version: 3.1.11
Real Name: Matthias Beckmann
Company: 20-20 Technologies GmbH

Priorität anhand von dynamischen Feldern berechnen

Post by beckma »

Hallo,
ich habe mehrere dynamische Felder angelegt, die bei der Erfassung eines Telefontickets oder im Dialog "Priorität" eingegeben werden sollen und aus deren Werten dann nach einer eigenen (zu programmierenden) Logik ein Vorschlagswert für die Priorität bestimmt werden soll.
Das Anlegen der dynamischen Felder ist kein Problem.
Diese Felder habe ich im Dialog "Priorität" mittels des Parameters Ticket::Frontend::AgentTicketPriority###DynamicField sichtbar gemacht. Allerdings werden die dynamischen Felder unterhalb des Feldes "Priorität" angezeigt, ich möchte sie aber oberhalb anzeigen, weil deren Inhalt ja das Feld Priorität vorbestimmen soll.
Ich habe versucht, die Feldreihenfolge zu beinflussen, indem ich in "AgentTicketActionCommon.dtl" folgenden Block (beispielhaft für ein dynamisches Feld namens "NumAffectedUsers") vor dem Block "dtl:block:Priority" eingefügt habe:

Code: Select all

<!-- dtl:block:DynamicField_NumAffectedUsers -->
                <div class="Row Row_DynamicField_$QData{"Name"}">
                    $Data{"Label"}
                    <div class="Field">
                        $Data{"Field"}
                    </div>
                    <div class="Clear"></div>
                </div>
<!-- dtl:block:DynamicField_NumAffectedUsers -->
Dann wird dieses Feld doppelt angezeigt, über und unter dem Feld "Priorität". Wenn ich das dynamische Feld aus dem Parameter Ticket::Frontend::AgentTicketPriority###DynamicField wieder herausnehme, wird es gar nicht mehr angezeigt. Wie kriege ich es hin, das es nur oberhalb von Priorität angezeigt wird?

Die nächste Aufgabe ist dann, nach der Eingabe von Werten in die dynamischen Felder die Priorität neu zu bestimmen (ähnlich wie im ITSM-Modul aus Kritikalität und Impact). Kann mir da jemand ein paar Hinweise geben, an welchen Stellen man da in den Code eingreifen müsste?
OTRS 3.1.11 - ITSM 3.1.6 - MySQL - Windows 2008 R2
beckma
Znuny newbie
Posts: 2
Joined: 30 Mar 2012, 11:28
Znuny Version: 3.1.11
Real Name: Matthias Beckmann
Company: 20-20 Technologies GmbH

Re: Priorität anhand von dynamischen Feldern berechnen

Post by beckma »

Für den ersten Teil meines Problems (Anzeige der dynamischen Felder oberhalb des Feldes "Priorität") habe ich jetzt eine Lösung gefunden:

Ich habe den von mir eingefügten Block aus der dtl-Datei wieder herausgenommen und stattdessen den vorhandenen Block, der sich auf alle dynamischen Felder bezieht, vor den Block für das Feld Priorität verschoben:

Code: Select all

# ===
# Dynamische Felder VOR Priorität!
# ===
<!-- dtl:block:DynamicField -->
                <div class="Row Row_DynamicField_$QData{"Name"}">
                    $Data{"Label"}
                    <div class="Field">
                        $Data{"Field"}
                    </div>
                    <div class="Clear"></div>
                </div>
<!-- dtl:block:DynamicField -->
# ===
<!-- dtl:block:Priority -->
                <label for="NewPriorityID">$Text{"Priority"}:</label>
                <div class="Field">
                    $Data{"PriorityStrg"}
<!--dtl:js_on_document_complete-->
<script type="text/javascript">//<![CDATA[
    $('#NewPriorityID').bind('change', function (Event) {
        Core.AJAX.FormUpdate($('#Compose'), 'AJAXUpdate', 'NewPriorityID', ['TypeID', 'ServiceID', 'SLAID', 'NewOwnerID', 'OldOwnerID', 'NewResponsibleID', 'NewStateID', $Data{"DynamicFieldNamesStrg"} ]);
    });
//]]></script>
<!--dtl:js_on_document_complete-->
                </div>
                <div class="Clear"></div>
<!-- dtl:block:Priority -->

# ===
# Dynamische Felder VOR Priorität, deshalb hier auskommentiert!
# ===
#<!-- dtl:block:DynamicField -->
#                <div class="Row Row_DynamicField_$QData{"Name"}">
#                    $Data{"Label"}
#                    <div class="Field">
#                        $Data{"Field"}
#                    </div>
#                    <div class="Clear"></div>
#               </div>
#<!-- dtl:block:DynamicField -->
# ===
Jetzt werden alle dynamischen Felder über dem Feld Priorität angezeigt. Das ist für mich in Ordnung.

Nun bräuchte ich nur noch einen Tipp, wo ich eine individuelle Logik einbauen muss, um aus den Eingaben in den dynamischen Feldern einen Wert für die Priorität zu berechnen!
OTRS 3.1.11 - ITSM 3.1.6 - MySQL - Windows 2008 R2
Alexander Halle
Znuny expert
Posts: 296
Joined: 04 Jul 2010, 17:49
Znuny Version: 3.1.x
Real Name: Alexander Halle
Company: radprax MVZ GmbH
Location: Wuppertal
Contact:

Re: Priorität anhand von dynamischen Feldern berechnen

Post by Alexander Halle »

Da hast du dir ja was Leichtes ausgesucht für den Anfang ;)

Du brauchst natürlich erst Mal das richtige Perl-Modul (zu finden über den Namen der aufgerufenen Ticket-Action) für jeden Screen, auf dem du die Priorität berechnen lassen willst. Wo du dann aber ansetzen musst, kann ich dir leider nicht beantworten, das übersteigt mein Wissen noch und kommt natürlich auch auf die jeweilige Quelldatei an.

Um weiterzukommen, kannst du dir ein paar OTRS-Enwickler-Grundlagen anlesen. Und du solltest deine Frage dann in unserem Developers-Subforum stellen. Die User mit Entwickler-Fragen sind relativ wenige, erst recht aber die Untergruppen nach Nationalität, daher haben wir extra das gemeinsame, englischsprachige Developers-Forum eingerichtet. Unterlagen findest du hier:

http://otrs.perl-services.de/workshop.html
viewtopic.php?f=36&t=8965&p=35112#p35112
http://doc.otrs.org/developer/3.1/en/html/

http://dev.otrs.org/

http://opar.perl-services.de/
http://www.opmzone.org/
Alexander Halle System: OTRS 3.1.x, Ubuntu 10.04.x LTS, MySQL 5.1.x, Apache 2.2.x
OTRS Community Links: User Meetings, Projects
Post Reply