[rt-devel] create tickets per script
Tina Schade
tina.schade at gmx.de
Wed Jan 28 07:52:28 EST 2004
Hello,
I have to put a lot of datasets from the Keystone-Help-Desk System to RT.
Therefor I want to write Perl-Scripts. Now I´am testing how to write data
with scripts into rt using the rt-modules.
The content of tickets I makes problems to me.
The ticket-content is stored at attachments and is linked over the
transactions. First I tried it this way:
# Modules which used
use RT::Tickets;
use MIME::Entity;
# initialise Ticket-Object
my $ticket = RT::Ticket->new($RT::SystemUser);
my $ticketId = $ticket->Create( Queue => 6,
Requestor => 33,
Cc => 24,
AdminCC => 26,
Owner => 29,
Subject => 'Test 4 mit perl',
Starts => localtime(),
Priority => 20
MIMEObj => $mimeObj);
But I get always this error:
syntax error at /home/borsti/Documents/perl/RT_test/Ticket.pl line 34, near
"MIMEObj"
Execution of /home/borsti/Documents/perl/RT_test/Ticket.pl aborted due to
compilation errors.
Then I tried it this way. It works, but I think it is circumstantially.
# Modules which used
use RT::Tickets;
use MIME::Entity;
# initialise Ticket-Object
my $ticket = RT::Ticket->new($RT::SystemUser);
# now I want to put the content in table Attachments
# the only way: load the ticket and fetch its transactionId, a new ticket has
only the
# transactionid to the transactiontype Create
# load ticket, method return the id, also when put an id to the load-function
my $ticketId = $ticket->Load(39);
my $subject = $ticket->Subject();
# get transactionId from ticket which transactiontype is Create
my $tTypeId = GetCreateTransactionId($ticketId);
# create a new attachment to the transactionID
my $attachment = RT::Attachment->new($RT::SystemUser);
# content are in a MIME::Entity
my $mimeObj = MIME::Entity->new();
$mimeObj->build(
Type => 'text/plain',
Data => 'hoffentlich klappts',
Subject => $subject);
my $attId = $attachment->Create(Attachment => $mimeObj, Parent => 0,
TransactionId => 115);
# SUB
#########################################################################################
# get Create-TransactionId from a Ticket, Takes a TicketId
sub GetCreateTransactionId {
my $tId = shift( @_ ); # uebergebende Id auslesen
my $transactions = RT::Transactions->new($RT::SystemUser); # new instance
of transactions
$transactions = $ticket->Transactions(); # fetch transactions to this
ticket
print( "Transactions zu Ticket ID = $ticketId sind: $transactions.\n" );
# now seperate the transactions, here I know that there is only one
transaction, which type # is 'Create'! Actually I have to control the
type of the transaction
my $transaction = $transactions->NewItem(); # new instance of transaction
$transaction = $transactions->Next();
while ($transaction != ()) {
my $taType = $transaction->Type();
if ($taType eq 'Create') {
my $id = $transaction->id();
return $id;
}
else {
return undef;
}
$transaction = $transactions->Next();
}
}
Can someone help me please? What is the simpliest way?
Greetings Tina
More information about the Rt-devel
mailing list