"Freekey" über SOAP-Aufruf füllen

Hilfe zu Znuny Problemen aller Art
Locked
bnice
Znuny newbie
Posts: 11
Joined: 04 Mar 2009, 11:17
Znuny Version: 2.x

"Freekey" über SOAP-Aufruf füllen

Post by bnice »

Ich arbeite gerade an einem kleinen PHP-Skript, über welches ich Daten aus einer csv-Datei einlesen kann, so dass jeweils neue Tickets und Article angelegt werden.
Ich müsste dabei allerdings auch Werte für das Feld "freekey1" übergeben, leider klappt das noch nicht (wird nichts eingetragen).
Ist dieses Feld evtl. über SOAP nicht ohne weiteres zu nutzen?

Der SOAP-Call sieht bisher so aus:

Code: Select all

$TicketID = $client->__soapCall("Dispatch", array($username, $password,
"TicketObject", "TicketCreate", 
"Title",        $title, 
"Queue",        "Postmaster", 
"Lock",         "Unlock", 
"PriorityID",   2, 
"State",        "new",
"CustomerUser", $from, 
"OwnerID",      1, 
"UserID",       1,
"freekey1",	$line_of_text[1],
));
Alle anderen Felder werden wie gewünscht ausgefüllt...

[UPDATE]

Okay, das ganze muss
"TicketFreeKey1" heißen, wird aber trotzdem nicht gefüllt...
jojo
Znuny guru
Posts: 15020
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Re: "Freekey" über SOAP-Aufruf füllen

Post by jojo »

Du musst Key (Überschrift) und Value (Inhalt) füllen
"Production": OTRS™ 8, OTRS™ 7, STORM powered by OTRS
"Testing": ((OTRS Community Edition)) and git Master

Never change Defaults.pm! :: Blog
Professional Services:: http://www.otrs.com :: enjoy@otrs.com
bnice
Znuny newbie
Posts: 11
Joined: 04 Mar 2009, 11:17
Znuny Version: 2.x

Re: "Freekey" über SOAP-Aufruf füllen

Post by bnice »

Hm, ja, das habe ich in der API auch schon gelesen, allerdings nur für FreeText:
TicketFreeTextSet()
Set ticket free text.

Code: Select all

        my $Success = $TicketObject->TicketFreeTextSet(
            Counter  => 1,
            Key      => 'Planet', # optional
            Value    => 'Sun',  # optional
            TicketID => 123,
            UserID   => 23,
        );
Wirklich weitergekommen bin ich damit allerdings noch nicht...
Vielleicht ist der Ansatz ja auch noch falsch.

Die Aufgabenstellung ist wie folgt:

Zwei csv-Dateien liegen vor:
tickets.csv: Enthält Tickets aus einem alten TicketTool (entspräche der Tabelle Ticket in OTRS)
tickettext.csv: Enthält die Texte zu den Tickets, also quasi mit den Articles in OTRS

Beide Dateien sollen nun per PHP mit der Funktion fgetcsv eingelesen und in ein Array gepackt werden, um dann über die SOAP-Schnittstelle neue Tickets und Articles anzulegen.
Mit den Tickets (und einem "Blanko"-Article) klappt das auch soweit, allerdings soll die tickettext auch mit einbezogen werden.
Eindeutige Bezüge zwischen den Datensätzen beider Dateien wären herzustellen - meine erste Idee war, dies damit zu erreichen, dass beim Import der Tickets die alte Ticketnummer als Freetext/Key übernommen wird, und im Anschluss die Articles entsprechend der alten Ticketnummer importiert werden...
Vielleicht gibt es ja auch eine elegantere Lösung, wie sich das in einem Rutsch erledigen ließe...
jojo
Znuny guru
Posts: 15020
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Re: "Freekey" über SOAP-Aufruf füllen

Post by jojo »

Ein Freetext besteht immer aus 2 Feldern.

Dem Key, der Überschrift und dem Value also dem Inhalt. Deswegen müssen beide gefüllt werden
"Production": OTRS™ 8, OTRS™ 7, STORM powered by OTRS
"Testing": ((OTRS Community Edition)) and git Master

Never change Defaults.pm! :: Blog
Professional Services:: http://www.otrs.com :: enjoy@otrs.com
bnice
Znuny newbie
Posts: 11
Joined: 04 Mar 2009, 11:17
Znuny Version: 2.x

Re: "Freekey" über SOAP-Aufruf füllen

Post by bnice »

Ah, ich glaube, jetzt komme ich dahinter... Freekey1 und Freetext1 gehören zusammen... Okay...
Evtl. komme ich damit weiter, momentan überlege ich grad, ob es auch einen anderen Weg gibt.
bnice
Znuny newbie
Posts: 11
Joined: 04 Mar 2009, 11:17
Znuny Version: 2.x

Re: "Freekey" über SOAP-Aufruf füllen

Post by bnice »

So, ich habe jetzt ein Skript geschrieben, welches mir in einem Rutsch neue Tickets anlegt und pro Ticket 1 oder mehrere zugehörige Articles erstellt, so wie es die CSV hergibt.
Ist zwar nicht schick und performant, aber ja auch nur für einmaligen Gebrauch bestimmt :)

Jetzt würde ich nur gerne die original Datumsangaben bei der Erstellung der Tickets und Articles übernehmen - können die auch direkt über den SOAP-Aufruf gesetzt werden, oder müssten die manuell geändert werden?
Locked