Dynamische Felder einen Service zuordnen?

Hilfe zu Znuny Problemen aller Art
Locked
blackdragon
Znuny newbie
Posts: 2
Joined: 18 Jun 2012, 07:21
Znuny Version: 3.1.6

Dynamische Felder einen Service zuordnen?

Post by blackdragon »

Hallo liebe OTRS gemeinde, ich hab noch nicht viel erfahrung mit ORTRs, ich habe im grunde ein einfaches anliegen.
Ich Entschuldige mich auch falls ich nicht im Richtigen Forum gelandet sein sollte.

Ich habe 2 Services erstellt und 7 Dynamische felder angelegt.

Service
Drucken

Dynamische Felder
  • -DruckWer
    -DruckWas
    -DruckWieOft
    -DruckWann
|

Service
Ausleihe

Dynamische Felder
  • -AusleiheWas
    -Abholung
    -Rueckgabe

Nun möchte ich wenn ich den Service auswähle das die Dynamischen Felder die nicht zum Service gehören ausgebeldet werden.

Soweit ich rausgefunden habe muss ich wohl die CustomerTicketMessage.dtl bearbeiten und eine
Switchanweisung einbauen nur leider, weis ich ab dem punkt nicht so richtig weiter.
oder gibt es auch andere Möglichkeiten einen Service bestimmte Dynamische Felder zuzuordnen.

Danke im voraus.

OTRS 3.1.6.
ITSM.3.1.4.
sokatec
Znuny newbie
Posts: 50
Joined: 09 Sep 2009, 10:00
Znuny Version: 3.1.x

Re: Dynamische Felder einen Service zuordnen?

Post by sokatec »

Hallo zusammen, ich stehe genau vor der gleichen Herausforderung....
Gibt es dazu schon irgendwelche Kommentare und Anmerkungen - oder sogar Lösungsvorschläge?

Vielen Dank und Grüße
"Produktiv": OTRS: 3.1.x, ITSM
OS: Windows
Apache2/MySQL 5
DavidLambauer
Znuny expert
Posts: 257
Joined: 25 Apr 2012, 07:28
Znuny Version: 3.1.6
Real Name: David Lambauer
Contact:

Re: Dynamische Felder einen Service zuordnen?

Post by DavidLambauer »

Hallo ihr beiden,
also vom System ist dieses Feature noch nicht möglich. Ihr könnt natürlich eine entsprechende Anweisung in die .pm Dateien schreiben. Ihr könnt aber auch einen Workarround machen und alle Felder grundsätzlich eingeblendet lassen und sie bei bedarf ausblenden (Javascript). Ich glaube mit ACL's ist es ebenfalls möglich, allerdings kenn ich mich da nicht wirklich aus.

Vielleicht helfen euch die Artikel auf meinem Blog einen Einstieg in die Module zu finden.

http://www.davidlambauer.de/category/al ... vice-desk/

Gruß
Bitte keine PM's schreiben. Bitte kontaktiert mich über mail@davidlambauer.de

In meinem Blog: http://www.davidlambauer.de findet ihr Artikel über OTRS. In der How To Area des Forums findet ihr auch oft Hilfe...!
sokatec
Znuny newbie
Posts: 50
Joined: 09 Sep 2009, 10:00
Znuny Version: 3.1.x

Re: Dynamische Felder einen Service zuordnen?

Post by sokatec »

Hallo David,
danke für deine Rückmeldung...
Hast du eine Lösung hierfür? " Ihr könnt natürlich eine entsprechende Anweisung in die .pm Dateien schreiben"
Dieser lösungsansatz hört sich irgendwie nach "am wenigstenn Aufwand" an.

Grüße
"Produktiv": OTRS: 3.1.x, ITSM
OS: Windows
Apache2/MySQL 5
DavidLambauer
Znuny expert
Posts: 257
Joined: 25 Apr 2012, 07:28
Znuny Version: 3.1.6
Real Name: David Lambauer
Contact:

Re: Dynamische Felder einen Service zuordnen?

Post by DavidLambauer »

Nein! ;) Aber ich schau mal kurz 10 minuten, vielleicht finde ich ja ne schnelle Lösung.
Bitte keine PM's schreiben. Bitte kontaktiert mich über mail@davidlambauer.de

In meinem Blog: http://www.davidlambauer.de findet ihr Artikel über OTRS. In der How To Area des Forums findet ihr auch oft Hilfe...!
DavidLambauer
Znuny expert
Posts: 257
Joined: 25 Apr 2012, 07:28
Znuny Version: 3.1.6
Real Name: David Lambauer
Contact:

Re: Dynamische Felder einen Service zuordnen?

Post by DavidLambauer »

Hm, vielleicht hab ich was. Unter /Kernel/Modules/AgentTicketZoom.pm in Zeile 850 ca. findest du folgenden Code:

Code: Select all

  # cycle trough the activated Dynamic Fields for ticket object
    DYNAMICFIELD:
    for my $DynamicFieldConfig ( @{$DynamicField} ) {
        next DYNAMICFIELD if !IsHashRefWithData($DynamicFieldConfig);
        next DYNAMICFIELD if !defined $Ticket{ 'DynamicField_' . $DynamicFieldConfig->{Name} };
        next DYNAMICFIELD if $Ticket{ 'DynamicField_' . $DynamicFieldConfig->{Name} } eq '';

        # get print string for this dynamic field
        my $ValueStrg = $Self->{BackendObject}->DisplayValueRender(
            DynamicFieldConfig => $DynamicFieldConfig,
            Value              => $Ticket{ 'DynamicField_' . $DynamicFieldConfig->{Name} },
            ValueMaxChars      => 25,
            LayoutObject       => $Self->{LayoutObject},
        );

        my $Label = $DynamicFieldConfig->{Label};

        $Self->{LayoutObject}->Block(
            Name => 'TicketDynamicField',
            Data => {
                Label => $Label,
            },
        );

Hier könntest du eine switsch oder if Anweisung einbauen. Also so ungefähr:

Code: Select all

# cycle trough the activated Dynamic Fields for ticket object
    DYNAMICFIELD:
    for my $DynamicFieldConfig ( @{$DynamicField} ) {
        next DYNAMICFIELD if !IsHashRefWithData($DynamicFieldConfig);
        next DYNAMICFIELD if !defined $Ticket{ 'DynamicField_' . $DynamicFieldConfig->{Name} };
        next DYNAMICFIELD if $Ticket{ 'DynamicField_' . $DynamicFieldConfig->{Name} } eq '';

        # get print string for this dynamic field
        my $ValueStrg = $Self->{BackendObject}->DisplayValueRender(
            DynamicFieldConfig => $DynamicFieldConfig,
            Value              => $Ticket{ 'DynamicField_' . $DynamicFieldConfig->{Name} },
            ValueMaxChars      => 25,
            LayoutObject       => $Self->{LayoutObject},
        );
    





 if($DynamicFieldConfig->{Label} == "DruckWas"){
                  my $Label = $DynamicFieldConfig->{Label}; 
        }











        $Self->{LayoutObject}->Block(
            Name => 'TicketDynamicField',
            Data => {
                Label => $Label,
            },
        );
Bitte keine PM's schreiben. Bitte kontaktiert mich über mail@davidlambauer.de

In meinem Blog: http://www.davidlambauer.de findet ihr Artikel über OTRS. In der How To Area des Forums findet ihr auch oft Hilfe...!
blackdragon
Znuny newbie
Posts: 2
Joined: 18 Jun 2012, 07:21
Znuny Version: 3.1.6

Re: Dynamische Felder einen Service zuordnen?

Post by blackdragon »

Vielen dank für die Antworten, hab die Sache auch auf ähnliche weise mit einer swichtanweisung , gelöst so das ich die Dynamischen Felder einfach ausblende die nicht zum Service gehören der ausgewählt ist.

Nun stehe ich vor einen weiteren Problem, unter der Ausleihe befindet sich ein Dropdown feld wo der Kunde wenn er unter Customer.pl ein neues Ticket erstellt die Geräte die man ausleihen kann angezeigt bekommt, allerdings sollen dem Kunden nur die Geräte angezeigt werden, die zu seinen ausgewählten datum auch verfügbar sind.

Den Status und die Geräte werden ja in der CMBD AgentITSMConfigItem angezeigt und das wollte ich dem Kunden auch anzeigen lassen.

Ich bedanke mich schon jetzt für eure Hilfe.
sokatec
Znuny newbie
Posts: 50
Joined: 09 Sep 2009, 10:00
Znuny Version: 3.1.x

Re: Dynamische Felder einen Service zuordnen?

Post by sokatec »

Hallo zusammen,
ich habe mit der folgenden Switch Anweisung dynamische Felder in das Ticket-erstellen Formular Ein- und Ausblenden können...
Kann mir jemand sagen, wie man dabei mit Pflicht-Feldern (*) umgeht?
Wenn das dynamische Feld ein Pflicht-Feld ist, aber ausgeblendet mittels Switch Anweisung, dann lässt sich das nicht "übermitteln" - da es im Hintergrund (ausgeblendet) scheinbar auf die Eingabe in das Pflichfeld wartet...

Danke und Grüße

Code: Select all

   switch ($('#TypeID').val() ) {
   case "12":
            document.getElementById('DynamicField_TEST').style.display = 'block';
         document.getElementById('LabelDynamicField_TEST').style.display = 'block';
        break;
        default:
      document.getElementById('DynamicField_TEST').style.display = 'none';
        document.getElementById('LabelDynamicField_TEST').style.display = 'none';
    }
"Produktiv": OTRS: 3.1.x, ITSM
OS: Windows
Apache2/MySQL 5
Locked