kens wrote:
> On Jul 1, 5:40 am, [EMAIL PROTECTED] (Mathew Snyder) wrote:
>> I have a script which places data 4 levels deep in a HoHoHoH.  It grabs 
>> tickets
>> in our ticket system using the systems API and places attributes about each
>> piece of activity into the hash. The has is called %tickets.  It looks like
>>
>> $tickets{action_creator}{ticket_customer}{ticket_number}{ticket_subject}.
>>
>> Each is self explanatory with the value under ticket_subject being the total
>> time the action creator spent on the whole ticket.  The actual code
>>
>> # gather up all of the tickets, transactions, and time for each user and
>> successively place
>> # all data into a HoHoH working down from user to environment to ticket
>> # we go through each date in the range individually so we can make sure we 
>> only
>> get the transactions that
>> # have been added during the date range
>> foreach my $date (@searchDate) {
>>         while (my $ticket = $tix->Next) {
>>                 $tikSubj{$ticket->id} = $ticket->Subject;
>>                 my $env = $ticket->FirstCustomFieldValue('Environment');
>>                 my $transactions = $ticket->Transactions;
>>                 while (my $transaction  = $transactions->Next) {
>>                         my $creator     = $transaction->CreatorObj;
>>
>>                         # we need to make sure the transaction is in the date
>> range requested
>>                         # it's set up like this so we can chop the timestamp 
>> off
>> of the Created string
>>                         (my $checkDate  = $transaction->Created) =~ 
>> s/\s.*$//;
>>
>>                         # we only want transactions that are within the date
>> range, have TimeWorked
>>                         # set, and the creator of which is one of the actual
>> users and not someone
>>                         # that was created upon ticket submission or Cc 
>> addition
>>                         next unless (($checkDate eq $date) &&
>> ($creator->Privileged) && ($transaction->TimeTaken));
>>
>>                         # if all of the above stipulations are met add the 
>> time
>> worked to the hash
>>
>> $tickets{$creator->Name}{$env}{$ticket->id}{$ticket->Subject} +=
>> $transaction->TimeTaken;
>>                 }
>>         }
>>
>> }
>>
>> And the formatting
>>
>> foreach my $user (keys %tickets) {
>>         open TIMESHEET,
>> ">/work_reports/ticketlists/ticketlists_$endDate/ticketlist_$user" . "_" .
>> "$endDate.txt" or die "Can't open file: $!";
>>         print TIMESHEET "List of tickets worked on by $user during week 
>> ending
>> $endDate", "\n\n";
>>
>>         foreach my $env (sort keys %{ $tickets{$user} }){
>>
>> format TIMESHEET_TOP =
>> @<<<<<<<<<<<<<<<<<<<<
>> $env
>>  Ticket ID                      Subject                      hh:mm
>> ------------------------------------------------------------------
>> .
>>
>>                 write TIMESHEET_TOP;
>>
>>                 foreach my $id (sort keys %{ $tickets{$user}{$env} }) {
>>                         foreach my $subject (keys %{ 
>> $tickets{$user}{$env}{$id} }) {
>> format TIMESHEET =
>> @#########  ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  @>>>>
>>            $id, $tickets{$user}{$env}{$id},
>> $tickets{$user}{$env}{$id}{$subject}
> 
> I know little about the 'format' function (never use it) but what is
> it you are trying to print in the above statement? It looks to me like
> you are trying to print the $id variable and then some hash
> references.
> 
> Ken
> 

The value under $ticket{$user}{$env}{$id}{$subject} is the total time
the user spent on the ticket.

>> ~~          ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
>>             $tickets{$user}{$env}{$id}
>> .
>>
>>                                 write TIMESHEET;
>>                         }
>>                         print TIMESHEET "\n";
>>                 }
>>         }
>>
>> }
>>
>> The problem didn't surface until I went from using the %tikSubj hash seen 
>> near
>> the top of the code snippet to a multi-level hash.  But then, using %tikSubj
>> presents its own bug for some reason.
>>
>> Knowing that you don't know the intricacies of the system I'm working with, I
>> won't be sad if no one has any input ;).
>>
>> Thanks
>> Mathew
>> --
>> Keep up with me and what I'm up to:http://theillien.blogspot.com
> 
> 
> 

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to