Hey all,

Been happily using RTx::Shredder with the 3.5.5 stuff no problems,
slowly crunching through old tickets I need to purge (my attachments DB
is 3.1G and growing!!!).

I’ve gotten through about 2000 of the 100,000 odd tickets in the
system, and well, its just broken. The DB seems ok, as I can browse
tickets ok, but now whenever I run shredder from the commandline, I get
the errors below. As I said, its just started occuring after a previous
shredder instance died with error stat 255.

What can I do to A: give you some more info (im happy for you to
even jump onto the machine) or B: fix the problem :slight_smile:

Thanks for any assitance Ruslan!

   RT::Ticket-102905 object
   RT::Ticket-102911 object
   RT::Ticket-102915 object

Do you want to proceed? [y/N] y
[Wed Dec 28 12:42:50 2005] [crit]: Message: 'Dependecies list have reach
its limit.
See $RT::DependenciesLimit in RTx::Shredder docs.

Trace begun at /opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 87
RTx::Shredder::Dependencies::_PushDependency(‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’,
‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’, ‘Flags’, 1, ‘BaseObj’,
‘RT::Group=HASH(0x9922d4c)’, ‘TargetObj’,
‘RT::CachedGroupMember=HASH(0x9b058dc)’) called at
/opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 53
RTx::Shredder::Dependencies::_PushDependencies(‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’,
‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’, ‘Flags’, 1, ‘BaseObj’,
‘RT::Group=HASH(0x9922d4c)’, ‘TargetObjs’,
‘RT::CachedGroupMembers=HASH(0x9958888)’) called at
/opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 59
RTx::Shredder::Dependencies::_PushDependencies(‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’,
‘BaseObj’, ‘RT::Group=HASH(0x9922d4c)’, ‘Flags’, 1, ‘TargetObjs’,
‘ARRAY(0x924af24)’, ‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’) called
at /opt/rt3/local/lib/RTx/Shredder/Group.pm line 86
RT::Group::__DependsOn(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’, ‘Flags’, 1, ‘Dependencies’,
‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 66
RT::Record::Dependencies(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 207
RT::Record::_Wipeout(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Group.pm line 20
RT::Group::_Wipeout(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 197
RT::Record::Wipeout(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 144
RTx::Shredder::Dependencies::Wipeout(‘RTx::Shredder::Dependencies=HASH(0x97709b0)’,
‘WithoutFlags’, 4112, ‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’)
called at /opt/rt3/local/lib/RTx/Shredder/Record.pm line 214
RT::Record::_Wipeout(‘RT::Ticket=HASH(0x980d0e0)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 197
RT::Record::Wipeout(‘RT::Ticket=HASH(0x980d0e0)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder.pm line 348
RTx::Shredder::Wipeout(‘RTx::Shredder=HASH(0x8f5122c)’) called at
./rtx-shredder line 100
(/opt/rt3/lib/RT.pm:295)
\

Adrian Carter
Technical Manager
Leading Edge Internet

Web http://www.lei.net.au http://support.lei.net.au
Direct +61 2 6163 6162 Support 1 300 662 415
E-mail cartera@lei.net.au

Adrian Carter
Technical Manager
Leading Edge Internet

Web http://www.lei.net.au http://support.lei.net.au
Direct +61 2 6163 6162 Support 1 300 662 415
E-mail cartera@lei.net.au

Hey all,

Been happily using RTx::Shredder with the 3.5.5 stuff no problems,
slowly crunching through old tickets I need to purge (my attachments DB
is 3.1G and growing!!!).

I’ve gotten through about 2000 of the 100,000 odd tickets in the
system, and well, its just broken. The DB seems ok, as I can browse
tickets ok, but now whenever I run shredder from the commandline, I get
the errors below. As I said, its just started occuring after a previous
shredder instance died with error stat 255.

What can I do to A: give you some more info (im happy for you to
even jump onto the machine) or B: fix the problem :slight_smile:

Thanks for any assitance Ruslan!

   RT::Ticket-102905 object
   RT::Ticket-102911 object
   RT::Ticket-102915 object

Do you want to proceed? [y/N] y
[Wed Dec 28 12:42:50 2005] [crit]: Message: 'Dependecies list have reach
its limit.
See $RT::DependenciesLimit in RTx::Shredder docs.

Didn’t you understand what’s writen in documentation? Shredder before
deleting objects find all dependencies which also must be deleted with
objects, I’ve limited list of dependencies by 1000. For example you
can have ticket with more than 1000 transactions (email loop). If you
see such error you need to check that ticket really has many
transactions, attachments… if it’s true then you reconfigure limit
in RT_SiteConfig and delete object, but if ticket has not so many
dependencies then you file bugreport and we cooperate to debug
problem.

Trace begun at /opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 87
RTx::Shredder::Dependencies::_PushDependency(‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’,
‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’, ‘Flags’, 1, ‘BaseObj’,
‘RT::Group=HASH(0x9922d4c)’, ‘TargetObj’,
‘RT::CachedGroupMember=HASH(0x9b058dc)’) called at
/opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 53
RTx::Shredder::Dependencies::_PushDependencies(‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’,
‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’, ‘Flags’, 1, ‘BaseObj’,
‘RT::Group=HASH(0x9922d4c)’, ‘TargetObjs’,
‘RT::CachedGroupMembers=HASH(0x9958888)’) called at
/opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 59
RTx::Shredder::Dependencies::_PushDependencies(‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’,
‘BaseObj’, ‘RT::Group=HASH(0x9922d4c)’, ‘Flags’, 1, ‘TargetObjs’,
‘ARRAY(0x924af24)’, ‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’) called
at /opt/rt3/local/lib/RTx/Shredder/Group.pm line 86
RT::Group::__DependsOn(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’, ‘Flags’, 1, ‘Dependencies’,
‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 66
RT::Record::Dependencies(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 207
RT::Record::_Wipeout(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Group.pm line 20
RT::Group::_Wipeout(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 197
RT::Record::Wipeout(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 144
RTx::Shredder::Dependencies::Wipeout(‘RTx::Shredder::Dependencies=HASH(0x97709b0)’,
‘WithoutFlags’, 4112, ‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’)
called at /opt/rt3/local/lib/RTx/Shredder/Record.pm line 214
RT::Record::_Wipeout(‘RT::Ticket=HASH(0x980d0e0)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 197
RT::Record::Wipeout(‘RT::Ticket=HASH(0x980d0e0)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder.pm line 348
RTx::Shredder::Wipeout(‘RTx::Shredder=HASH(0x8f5122c)’) called at
./rtx-shredder line 100
(/opt/rt3/lib/RT.pm:295)
\


Adrian Carter
Technical Manager
Leading Edge Internet

Web http://www.lei.net.au http://support.lei.net.au
Direct +61 2 6163 6162 Support 1 300 662 415
E-mail cartera@lei.net.au


Adrian Carter
Technical Manager
Leading Edge Internet

Web http://www.lei.net.au http://support.lei.net.au
Direct +61 2 6163 6162 Support 1 300 662 415
E-mail cartera@lei.net.au


The rt-users Archives

Be sure to check out the RT Wiki at http://wiki.bestpractical.com

Download a free sample chapter of RT Essentials from O’Reilly Media at http://rtbook.bestpractical.com

WE’RE COMING TO YOUR TOWN SOON - RT Training in Amsterdam, Boston and
San Francisco - Find out more at http://bestpractical.com/services/training.html

Best regards, Ruslan.

Yeah sorry Ruslan, I completly missed that bit… I had been checking
the doco but I’d somehow been scrolling right past that.

I’ve added the change to RT_SiteConfig, and thats fixed it now it appears.

Out of curiosity is the MySQL bug mentioned re Foreign keys still valid?
and if so, whats the symptoms? I’ve been shredding lots of tickets, and
it seems to be going through them (each additional batch references
higher value tickets, so its ‘progressing’) but the Attachments table
still stays pretty massive…

Sorry for wasting your time on a documented problem… but if you’ve got
some more info on that mysql bug that would be good (im just concerned
its not cleaning up all of the 3.5.5 Attachments table properly, because
some 4000 tickets shredded of the 100,000 in the system and the
Attachments table hasn’t shrunk one bit…)

Thanks

Ruslan Zakirov wrote:>On 12/31/05, Adrian Carter cartera@lei.net.au wrote:

Hey all,

Been happily using RTx::Shredder with the 3.5.5 stuff no problems,
slowly crunching through old tickets I need to purge (my attachments DB
is 3.1G and growing!!!).

I’ve gotten through about 2000 of the 100,000 odd tickets in the
system, and well, its just broken. The DB seems ok, as I can browse
tickets ok, but now whenever I run shredder from the commandline, I get
the errors below. As I said, its just started occuring after a previous
shredder instance died with error stat 255.

What can I do to A: give you some more info (im happy for you to
even jump onto the machine) or B: fix the problem :slight_smile:

Thanks for any assitance Ruslan!

  RT::Ticket-102905 object
  RT::Ticket-102911 object
  RT::Ticket-102915 object

Do you want to proceed? [y/N] y
[Wed Dec 28 12:42:50 2005] [crit]: Message: 'Dependecies list have reach
its limit.
See $RT::DependenciesLimit in RTx::Shredder docs.

Didn’t you understand what’s writen in documentation? Shredder before
deleting objects find all dependencies which also must be deleted with
objects, I’ve limited list of dependencies by 1000. For example you
can have ticket with more than 1000 transactions (email loop). If you
see such error you need to check that ticket really has many
transactions, attachments… if it’s true then you reconfigure limit
in RT_SiteConfig and delete object, but if ticket has not so many
dependencies then you file bugreport and we cooperate to debug
problem.

Trace begun at /opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 87
RTx::Shredder::Dependencies::_PushDependency(‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’,
‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’, ‘Flags’, 1, ‘BaseObj’,
‘RT::Group=HASH(0x9922d4c)’, ‘TargetObj’,
‘RT::CachedGroupMember=HASH(0x9b058dc)’) called at
/opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 53
RTx::Shredder::Dependencies::_PushDependencies(‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’,
‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’, ‘Flags’, 1, ‘BaseObj’,
‘RT::Group=HASH(0x9922d4c)’, ‘TargetObjs’,
‘RT::CachedGroupMembers=HASH(0x9958888)’) called at
/opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 59
RTx::Shredder::Dependencies::_PushDependencies(‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’,
‘BaseObj’, ‘RT::Group=HASH(0x9922d4c)’, ‘Flags’, 1, ‘TargetObjs’,
‘ARRAY(0x924af24)’, ‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’) called
at /opt/rt3/local/lib/RTx/Shredder/Group.pm line 86
RT::Group::__DependsOn(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’, ‘Flags’, 1, ‘Dependencies’,
‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 66
RT::Record::Dependencies(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 207
RT::Record::_Wipeout(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Group.pm line 20
RT::Group::_Wipeout(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 197
RT::Record::Wipeout(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 144
RTx::Shredder::Dependencies::Wipeout(‘RTx::Shredder::Dependencies=HASH(0x97709b0)’,
‘WithoutFlags’, 4112, ‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’)
called at /opt/rt3/local/lib/RTx/Shredder/Record.pm line 214
RT::Record::_Wipeout(‘RT::Ticket=HASH(0x980d0e0)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 197
RT::Record::Wipeout(‘RT::Ticket=HASH(0x980d0e0)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder.pm line 348
RTx::Shredder::Wipeout(‘RTx::Shredder=HASH(0x8f5122c)’) called at
./rtx-shredder line 100
(/opt/rt3/lib/RT.pm:295)
\


Adrian Carter
Technical Manager
Leading Edge Internet

Web http://www.lei.net.au http://support.lei.net.au
Direct +61 2 6163 6162 Support 1 300 662 415
E-mail cartera@lei.net.au


Adrian Carter
Technical Manager
Leading Edge Internet

Web http://www.lei.net.au http://support.lei.net.au
Direct +61 2 6163 6162 Support 1 300 662 415
E-mail cartera@lei.net.au


The rt-users Archives

Be sure to check out the RT Wiki at http://wiki.bestpractical.com

Download a free sample chapter of RT Essentials from O’Reilly Media at http://rtbook.bestpractical.com

WE’RE COMING TO YOUR TOWN SOON - RT Training in Amsterdam, Boston and
San Francisco - Find out more at http://bestpractical.com/services/training.html


Best regards, Ruslan.

Adrian Carter
Technical Manager
Leading Edge Internet

Web http://www.lei.net.au http://support.lei.net.au
Direct +61 2 6163 6162 Support 1 300 662 415
E-mail cartera@lei.net.au

Yeah sorry Ruslan, I completly missed that bit… I had been checking
the doco but I’d somehow been scrolling right past that.

I’ve added the change to RT_SiteConfig, and thats fixed it now it appears.

Out of curiosity is the MySQL bug mentioned re Foreign keys still valid?
and if so, whats the symptoms? I’ve been shredding lots of tickets, and
Symtom: script dies. Mainstream RT doesn’t use FKs, but when I was
writing first version I wrote script that adds all possible FK to DB
and hit documented bug. So it’s note for people who use FKs in thiere
RT DB.

it seems to be going through them (each additional batch references
higher value tickets, so its ‘progressing’) but the Attachments table
still stays pretty massive…

Sorry for wasting your time on a documented problem… but if you’ve got
some more info on that mysql bug that would be good (im just concerned
its not cleaning up all of the 3.5.5 Attachments table properly, because
some 4000 tickets shredded of the 100,000 in the system and the
Attachments table hasn’t shrunk one bit…)
Yeah, it’s correct mysql behaviour because it’s too expensive to cut
DB file in the middle while delete operation, I really don’t remeber
if mysql reuse freed space, but I do know that mysql documentation
describe how to maintain this situation. For example PostgreSQL has
pg_vacuum script for this purposes, search in mysql docs and google.

Thanks

Ruslan Zakirov wrote:

Hey all,

Been happily using RTx::Shredder with the 3.5.5 stuff no problems,
slowly crunching through old tickets I need to purge (my attachments DB
is 3.1G and growing!!!).

I’ve gotten through about 2000 of the 100,000 odd tickets in the
system, and well, its just broken. The DB seems ok, as I can browse
tickets ok, but now whenever I run shredder from the commandline, I get
the errors below. As I said, its just started occuring after a previous
shredder instance died with error stat 255.

What can I do to A: give you some more info (im happy for you to
even jump onto the machine) or B: fix the problem :slight_smile:

Thanks for any assitance Ruslan!

  RT::Ticket-102905 object
  RT::Ticket-102911 object
  RT::Ticket-102915 object

Do you want to proceed? [y/N] y
[Wed Dec 28 12:42:50 2005] [crit]: Message: 'Dependecies list have reach
its limit.
See $RT::DependenciesLimit in RTx::Shredder docs.

Didn’t you understand what’s writen in documentation? Shredder before
deleting objects find all dependencies which also must be deleted with
objects, I’ve limited list of dependencies by 1000. For example you
can have ticket with more than 1000 transactions (email loop). If you
see such error you need to check that ticket really has many
transactions, attachments… if it’s true then you reconfigure limit
in RT_SiteConfig and delete object, but if ticket has not so many
dependencies then you file bugreport and we cooperate to debug
problem.

Trace begun at /opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 87
RTx::Shredder::Dependencies::_PushDependency(‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’,
‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’, ‘Flags’, 1, ‘BaseObj’,
‘RT::Group=HASH(0x9922d4c)’, ‘TargetObj’,
‘RT::CachedGroupMember=HASH(0x9b058dc)’) called at
/opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 53
RTx::Shredder::Dependencies::_PushDependencies(‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’,
‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’, ‘Flags’, 1, ‘BaseObj’,
‘RT::Group=HASH(0x9922d4c)’, ‘TargetObjs’,
‘RT::CachedGroupMembers=HASH(0x9958888)’) called at
/opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 59
RTx::Shredder::Dependencies::_PushDependencies(‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’,
‘BaseObj’, ‘RT::Group=HASH(0x9922d4c)’, ‘Flags’, 1, ‘TargetObjs’,
‘ARRAY(0x924af24)’, ‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’) called
at /opt/rt3/local/lib/RTx/Shredder/Group.pm line 86
RT::Group::__DependsOn(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’, ‘Flags’, 1, ‘Dependencies’,
‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 66
RT::Record::Dependencies(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 207
RT::Record::_Wipeout(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Group.pm line 20
RT::Group::_Wipeout(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 197
RT::Record::Wipeout(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 144
RTx::Shredder::Dependencies::Wipeout(‘RTx::Shredder::Dependencies=HASH(0x97709b0)’,
‘WithoutFlags’, 4112, ‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’)
called at /opt/rt3/local/lib/RTx/Shredder/Record.pm line 214
RT::Record::_Wipeout(‘RT::Ticket=HASH(0x980d0e0)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 197
RT::Record::Wipeout(‘RT::Ticket=HASH(0x980d0e0)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder.pm line 348
RTx::Shredder::Wipeout(‘RTx::Shredder=HASH(0x8f5122c)’) called at
./rtx-shredder line 100
(/opt/rt3/lib/RT.pm:295)
\


Adrian Carter
Technical Manager
Leading Edge Internet

Web http://www.lei.net.au http://support.lei.net.au
Direct +61 2 6163 6162 Support 1 300 662 415
E-mail cartera@lei.net.au


Adrian Carter
Technical Manager
Leading Edge Internet

Web http://www.lei.net.au http://support.lei.net.au
Direct +61 2 6163 6162 Support 1 300 662 415
E-mail cartera@lei.net.au


The rt-users Archives

Be sure to check out the RT Wiki at http://wiki.bestpractical.com

Download a free sample chapter of RT Essentials from O’Reilly Media at http://rtbook.bestpractical.com

WE’RE COMING TO YOUR TOWN SOON - RT Training in Amsterdam, Boston and
San Francisco - Find out more at http://bestpractical.com/services/training.html


Best regards, Ruslan.


Adrian Carter
Technical Manager
Leading Edge Internet

Web http://www.lei.net.au http://support.lei.net.au
Direct +61 2 6163 6162 Support 1 300 662 415
E-mail cartera@lei.net.au

Best regards, Ruslan.

Yeah sorry Ruslan, I completly missed that bit… I had been checking
the doco but I’d somehow been scrolling right past that.

I’ve added the change to RT_SiteConfig, and thats fixed it now it appears.

Out of curiosity is the MySQL bug mentioned re Foreign keys still valid?
and if so, whats the symptoms? I’ve been shredding lots of tickets, and
Symtom: script dies. Mainstream RT doesn’t use FKs, but when I was
writing first version I wrote script that adds all possible FK to DB
and hit documented bug. So it’s note for people who use FKs in thiere
RT DB.

it seems to be going through them (each additional batch references
higher value tickets, so its ‘progressing’) but the Attachments table
still stays pretty massive…

Sorry for wasting your time on a documented problem… but if you’ve got
some more info on that mysql bug that would be good (im just concerned
its not cleaning up all of the 3.5.5 Attachments table properly, because
some 4000 tickets shredded of the 100,000 in the system and the
Attachments table hasn’t shrunk one bit…)
Yeah, it’s correct mysql behaviour because it’s too expensive to cut
DB file in the middle while delete operation, I really don’t remeber
if mysql reuse freed space, but I do know that mysql documentation
describe how to maintain this situation. For example PostgreSQL has
pg_vacuum script for this purposes, search in mysql docs and google.
Read this discussion
http://www.issociate.de/board/index.php?t=msg&goto=338208&rid=0

Thanks

Ruslan Zakirov wrote:

Hey all,

Been happily using RTx::Shredder with the 3.5.5 stuff no problems,
slowly crunching through old tickets I need to purge (my attachments DB
is 3.1G and growing!!!).

I’ve gotten through about 2000 of the 100,000 odd tickets in the
system, and well, its just broken. The DB seems ok, as I can browse
tickets ok, but now whenever I run shredder from the commandline, I get
the errors below. As I said, its just started occuring after a previous
shredder instance died with error stat 255.

What can I do to A: give you some more info (im happy for you to
even jump onto the machine) or B: fix the problem :slight_smile:

Thanks for any assitance Ruslan!

  RT::Ticket-102905 object
  RT::Ticket-102911 object
  RT::Ticket-102915 object

Do you want to proceed? [y/N] y
[Wed Dec 28 12:42:50 2005] [crit]: Message: 'Dependecies list have reach
its limit.
See $RT::DependenciesLimit in RTx::Shredder docs.

Didn’t you understand what’s writen in documentation? Shredder before
deleting objects find all dependencies which also must be deleted with
objects, I’ve limited list of dependencies by 1000. For example you
can have ticket with more than 1000 transactions (email loop). If you
see such error you need to check that ticket really has many
transactions, attachments… if it’s true then you reconfigure limit
in RT_SiteConfig and delete object, but if ticket has not so many
dependencies then you file bugreport and we cooperate to debug
problem.

Trace begun at /opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 87
RTx::Shredder::Dependencies::_PushDependency(‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’,
‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’, ‘Flags’, 1, ‘BaseObj’,
‘RT::Group=HASH(0x9922d4c)’, ‘TargetObj’,
‘RT::CachedGroupMember=HASH(0x9b058dc)’) called at
/opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 53
RTx::Shredder::Dependencies::_PushDependencies(‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’,
‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’, ‘Flags’, 1, ‘BaseObj’,
‘RT::Group=HASH(0x9922d4c)’, ‘TargetObjs’,
‘RT::CachedGroupMembers=HASH(0x9958888)’) called at
/opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 59
RTx::Shredder::Dependencies::_PushDependencies(‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’,
‘BaseObj’, ‘RT::Group=HASH(0x9922d4c)’, ‘Flags’, 1, ‘TargetObjs’,
‘ARRAY(0x924af24)’, ‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’) called
at /opt/rt3/local/lib/RTx/Shredder/Group.pm line 86
RT::Group::__DependsOn(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’, ‘Flags’, 1, ‘Dependencies’,
‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 66
RT::Record::Dependencies(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 207
RT::Record::_Wipeout(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Group.pm line 20
RT::Group::_Wipeout(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 197
RT::Record::Wipeout(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 144
RTx::Shredder::Dependencies::Wipeout(‘RTx::Shredder::Dependencies=HASH(0x97709b0)’,
‘WithoutFlags’, 4112, ‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’)
called at /opt/rt3/local/lib/RTx/Shredder/Record.pm line 214
RT::Record::_Wipeout(‘RT::Ticket=HASH(0x980d0e0)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 197
RT::Record::Wipeout(‘RT::Ticket=HASH(0x980d0e0)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder.pm line 348
RTx::Shredder::Wipeout(‘RTx::Shredder=HASH(0x8f5122c)’) called at
./rtx-shredder line 100
(/opt/rt3/lib/RT.pm:295)
\


Adrian Carter
Technical Manager
Leading Edge Internet

Web http://www.lei.net.au http://support.lei.net.au
Direct +61 2 6163 6162 Support 1 300 662 415
E-mail cartera@lei.net.au


Adrian Carter
Technical Manager
Leading Edge Internet

Web http://www.lei.net.au http://support.lei.net.au
Direct +61 2 6163 6162 Support 1 300 662 415
E-mail cartera@lei.net.au


The rt-users Archives

Be sure to check out the RT Wiki at http://wiki.bestpractical.com

Download a free sample chapter of RT Essentials from O’Reilly Media at http://rtbook.bestpractical.com

WE’RE COMING TO YOUR TOWN SOON - RT Training in Amsterdam, Boston and
San Francisco - Find out more at http://bestpractical.com/services/training.html


Best regards, Ruslan.


Adrian Carter
Technical Manager
Leading Edge Internet

Web http://www.lei.net.au http://support.lei.net.au
Direct +61 2 6163 6162 Support 1 300 662 415
E-mail cartera@lei.net.au


Best regards, Ruslan.

Best regards, Ruslan.

Cheers Ruslan,
I’ve done an “ALTER TABLE Attachments TYPE=InnoDB” and that seems
to have shrunk a few hundred Mb’s off of it… I got that via
http://bugs.mysql.com/bug.php?id=1341 . It seems this has turned into a
‘feature request’ to get “fixed” so it should be resolved in the next
few months.

I'm continuing to shred happily with that Dependencies thing fixed. 

I dont know how I missed such a blatant comment in the Documentation.
Sorry for wasting your time on that.

You might want to make mention of this "problem" with MySQL in the 

Doco though, incase someone else is being concerned like myself with
disk utilisation. Saves potential concern in regard to Shredder not
doing its job properly.

Thanks for your help mate

Adrian

Ruslan Zakirov wrote:>On 12/31/05, Ruslan Zakirov ruslan.zakirov@gmail.com wrote:

On 12/31/05, Adrian Carter cartera@lei.net.au wrote:

Yeah sorry Ruslan, I completly missed that bit… I had been checking
the doco but I’d somehow been scrolling right past that.

I’ve added the change to RT_SiteConfig, and thats fixed it now it appears.

Out of curiosity is the MySQL bug mentioned re Foreign keys still valid?
and if so, whats the symptoms? I’ve been shredding lots of tickets, and

Symtom: script dies. Mainstream RT doesn’t use FKs, but when I was
writing first version I wrote script that adds all possible FK to DB
and hit documented bug. So it’s note for people who use FKs in thiere
RT DB.

it seems to be going through them (each additional batch references
higher value tickets, so its ‘progressing’) but the Attachments table
still stays pretty massive…

Sorry for wasting your time on a documented problem… but if you’ve got
some more info on that mysql bug that would be good (im just concerned
its not cleaning up all of the 3.5.5 Attachments table properly, because
some 4000 tickets shredded of the 100,000 in the system and the
Attachments table hasn’t shrunk one bit…)

Yeah, it’s correct mysql behaviour because it’s too expensive to cut
DB file in the middle while delete operation, I really don’t remeber
if mysql reuse freed space, but I do know that mysql documentation
describe how to maintain this situation. For example PostgreSQL has
pg_vacuum script for this purposes, search in mysql docs and google.

Read this discussion
http://www.issociate.de/board/index.php?t=msg&goto=338208&rid=0

Thanks

Ruslan Zakirov wrote:

On 12/31/05, Adrian Carter cartera@lei.net.au wrote:

Hey all,

Been happily using RTx::Shredder with the 3.5.5 stuff no problems,
slowly crunching through old tickets I need to purge (my attachments DB
is 3.1G and growing!!!).

I’ve gotten through about 2000 of the 100,000 odd tickets in the
system, and well, its just broken. The DB seems ok, as I can browse
tickets ok, but now whenever I run shredder from the commandline, I get
the errors below. As I said, its just started occuring after a previous
shredder instance died with error stat 255.

What can I do to A: give you some more info (im happy for you to
even jump onto the machine) or B: fix the problem :slight_smile:

Thanks for any assitance Ruslan!

 RT::Ticket-102905 object
 RT::Ticket-102911 object
 RT::Ticket-102915 object

Do you want to proceed? [y/N] y
[Wed Dec 28 12:42:50 2005] [crit]: Message: 'Dependecies list have reach
its limit.
See $RT::DependenciesLimit in RTx::Shredder docs.

Didn’t you understand what’s writen in documentation? Shredder before
deleting objects find all dependencies which also must be deleted with
objects, I’ve limited list of dependencies by 1000. For example you
can have ticket with more than 1000 transactions (email loop). If you
see such error you need to check that ticket really has many
transactions, attachments… if it’s true then you reconfigure limit
in RT_SiteConfig and delete object, but if ticket has not so many
dependencies then you file bugreport and we cooperate to debug
problem.

Trace begun at /opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 87
RTx::Shredder::Dependencies::_PushDependency(‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’,
‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’, ‘Flags’, 1, ‘BaseObj’,
‘RT::Group=HASH(0x9922d4c)’, ‘TargetObj’,
‘RT::CachedGroupMember=HASH(0x9b058dc)’) called at
/opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 53
RTx::Shredder::Dependencies::_PushDependencies(‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’,
‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’, ‘Flags’, 1, ‘BaseObj’,
‘RT::Group=HASH(0x9922d4c)’, ‘TargetObjs’,
‘RT::CachedGroupMembers=HASH(0x9958888)’) called at
/opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 59
RTx::Shredder::Dependencies::_PushDependencies(‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’,
‘BaseObj’, ‘RT::Group=HASH(0x9922d4c)’, ‘Flags’, 1, ‘TargetObjs’,
‘ARRAY(0x924af24)’, ‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’) called
at /opt/rt3/local/lib/RTx/Shredder/Group.pm line 86
RT::Group::__DependsOn(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’, ‘Flags’, 1, ‘Dependencies’,
‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 66
RT::Record::Dependencies(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 207
RT::Record::_Wipeout(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Group.pm line 20
RT::Group::_Wipeout(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 197
RT::Record::Wipeout(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 144
RTx::Shredder::Dependencies::Wipeout(‘RTx::Shredder::Dependencies=HASH(0x97709b0)’,
‘WithoutFlags’, 4112, ‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’)
called at /opt/rt3/local/lib/RTx/Shredder/Record.pm line 214
RT::Record::_Wipeout(‘RT::Ticket=HASH(0x980d0e0)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 197
RT::Record::Wipeout(‘RT::Ticket=HASH(0x980d0e0)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder.pm line 348
RTx::Shredder::Wipeout(‘RTx::Shredder=HASH(0x8f5122c)’) called at
./rtx-shredder line 100
(/opt/rt3/lib/RT.pm:295)
\


Adrian Carter
Technical Manager
Leading Edge Internet

Web http://www.lei.net.au http://support.lei.net.au
Direct +61 2 6163 6162 Support 1 300 662 415
E-mail cartera@lei.net.au


Adrian Carter
Technical Manager
Leading Edge Internet

Web http://www.lei.net.au http://support.lei.net.au
Direct +61 2 6163 6162 Support 1 300 662 415
E-mail cartera@lei.net.au


The rt-users Archives

Be sure to check out the RT Wiki at http://wiki.bestpractical.com

Download a free sample chapter of RT Essentials from O’Reilly Media at http://rtbook.bestpractical.com

WE’RE COMING TO YOUR TOWN SOON - RT Training in Amsterdam, Boston and
San Francisco - Find out more at http://bestpractical.com/services/training.html


Best regards, Ruslan.


Adrian Carter
Technical Manager
Leading Edge Internet

Web http://www.lei.net.au http://support.lei.net.au
Direct +61 2 6163 6162 Support 1 300 662 415
E-mail cartera@lei.net.au


Best regards, Ruslan.


Best regards, Ruslan.

Adrian Carter
Technical Manager
Leading Edge Internet

Web http://www.lei.net.au http://support.lei.net.au
Direct +61 2 6163 6162 Support 1 300 662 415
E-mail cartera@lei.net.au

Cheers Ruslan,
I’ve done an “ALTER TABLE Attachments TYPE=InnoDB” and that seems to
have shrunk a few hundred Mb’s off of it… I got that via
http://bugs.mysql.com/bug.php?id=1341 . It seems this has
turned into a ‘feature request’ to get “fixed” so it should be resolved in
the next few months.
As I understand this only recreates indexes, but real shrinking you
get from dump+drop+restore.

 I'm continuing to shred happily with that Dependencies thing fixed. I

dont know how I missed such a blatant comment in the Documentation. Sorry
for wasting your time on that.

 You might want to make mention of this "problem" with MySQL in the Doco

though, incase someone else is being concerned like myself with disk
utilisation. Saves potential concern in regard to Shredder not doing its job
properly.
You’re right, will add that.

Thanks for your help mate

Adrian

Ruslan Zakirov wrote:

Yeah sorry Ruslan, I completly missed that bit… I had been checking
the doco but I’d somehow been scrolling right past that.

I’ve added the change to RT_SiteConfig, and thats fixed it now it appears.

Out of curiosity is the MySQL bug mentioned re Foreign keys still valid?
and if so, whats the symptoms? I’ve been shredding lots of tickets, and

Symtom: script dies. Mainstream RT doesn’t use FKs, but when I was
writing first version I wrote script that adds all possible FK to DB
and hit documented bug. So it’s note for people who use FKs in thiere
RT DB.

it seems to be going through them (each additional batch references
higher value tickets, so its ‘progressing’) but the Attachments table
still stays pretty massive…

Sorry for wasting your time on a documented problem… but if you’ve got
some more info on that mysql bug that would be good (im just concerned
its not cleaning up all of the 3.5.5 Attachments table properly, because
some 4000 tickets shredded of the 100,000 in the system and the
Attachments table hasn’t shrunk one bit…)

Yeah, it’s correct mysql behaviour because it’s too expensive to cut
DB file in the middle while delete operation, I really don’t remeber
if mysql reuse freed space, but I do know that mysql documentation
describe how to maintain this situation. For example PostgreSQL has
pg_vacuum script for this purposes, search in mysql docs and google.

Read this discussion
http://www.issociate.de/board/index.php?t=msg&goto=338208&rid=0

Thanks

Ruslan Zakirov wrote:

Hey all,

Been happily using RTx::Shredder with the 3.5.5 stuff no problems,
slowly crunching through old tickets I need to purge (my attachments DB
is 3.1G and growing!!!).

I’ve gotten through about 2000 of the 100,000 odd tickets in the
system, and well, its just broken. The DB seems ok, as I can browse
tickets ok, but now whenever I run shredder from the commandline, I get
the errors below. As I said, its just started occuring after a previous
shredder instance died with error stat 255.

What can I do to A: give you some more info (im happy for you to
even jump onto the machine) or B: fix the problem :slight_smile:

Thanks for any assitance Ruslan!

RT::Ticket-102905 object
RT::Ticket-102911 object
RT::Ticket-102915 object
Do you want to proceed? [y/N] y
[Wed Dec 28 12:42:50 2005] [crit]: Message: 'Dependecies list have reach
its limit.
See $RT::DependenciesLimit in RTx::Shredder docs.

Didn’t you understand what’s writen in documentation? Shredder before
deleting objects find all dependencies which also must be deleted with
objects, I’ve limited list of dependencies by 1000. For example you
can have ticket with more than 1000 transactions (email loop). If you
see such error you need to check that ticket really has many
transactions, attachments… if it’s true then you reconfigure limit
in RT_SiteConfig and delete object, but if ticket has not so many
dependencies then you file bugreport and we cooperate to debug
problem.

Trace begun at
/opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 87
RTx::Shredder::Dependencies::_PushDependency(‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’,
‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’, ‘Flags’, 1,
‘BaseObj’,
‘RT::Group=HASH(0x9922d4c)’, ‘TargetObj’,
‘RT::CachedGroupMember=HASH(0x9b058dc)’) called at
/opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 53
RTx::Shredder::Dependencies::_PushDependencies(‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’,
‘Shredder’, ‘RTx::Shredder=HASH(0x8f5122c)’, ‘Flags’, 1,
‘BaseObj’,
‘RT::Group=HASH(0x9922d4c)’, ‘TargetObjs’,
‘RT::CachedGroupMembers=HASH(0x9958888)’) called at
/opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 59
RTx::Shredder::Dependencies::_PushDependencies(‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’,
‘BaseObj’, ‘RT::Group=HASH(0x9922d4c)’, ‘Flags’, 1, ‘TargetObjs’,
‘ARRAY(0x924af24)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called
at /opt/rt3/local/lib/RTx/Shredder/Group.pm line 86
RT::Group::__DependsOn(‘RT::Group=HASH(0x9922d4c)’,
‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’, ‘Flags’, 1,
‘Dependencies’,
‘RTx::Shredder::Dependencies=HASH(0x9770b9c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 66
RT::Record::Dependencies(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 207
RT::Record::_Wipeout(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Group.pm line 20
RT::Group::_Wipeout(‘RT::Group=HASH(0x9922d4c)’,
‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 197
RT::Record::Wipeout(‘RT::Group=HASH(0x9922d4c)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Dependencies.pm line 144
RTx::Shredder::Dependencies::Wipeout(‘RTx::Shredder::Dependencies=HASH(0x97709b0)’,
‘WithoutFlags’, 4112, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’)
called at /opt/rt3/local/lib/RTx/Shredder/Record.pm line
214
RT::Record::_Wipeout(‘RT::Ticket=HASH(0x980d0e0)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder/Record.pm line 197
RT::Record::Wipeout(‘RT::Ticket=HASH(0x980d0e0)’, ‘Shredder’,
‘RTx::Shredder=HASH(0x8f5122c)’) called at
/opt/rt3/local/lib/RTx/Shredder.pm line 348
RTx::Shredder::Wipeout(‘RTx::Shredder=HASH(0x8f5122c)’)
called at
./rtx-shredder line 100
(/opt/rt3/lib/RT.pm:295)
\


Adrian Carter
Technical Manager
Leading Edge Internet

Web http://www.lei.net.au http://support.lei.net.au
Direct +61 2 6163 6162 Support 1 300 662 415
E-mail cartera@lei.net.au


Adrian Carter
Technical Manager
Leading Edge Internet

Web http://www.lei.net.au http://support.lei.net.au
Direct +61 2 6163 6162 Support 1 300 662 415
E-mail cartera@lei.net.au


The rt-users Archives

Be sure to check out the RT Wiki at http://wiki.bestpractical.com

Download a free sample chapter of RT Essentials from O’Reilly Media at
http://rtbook.bestpractical.com

WE’RE COMING TO YOUR TOWN SOON - RT Training in Amsterdam, Boston and
San Francisco - Find out more at
http://bestpractical.com/services/training.html


Best regards, Ruslan.


Adrian Carter
Technical Manager
Leading Edge Internet

Web http://www.lei.net.au http://support.lei.net.au
Direct +61 2 6163 6162 Support 1 300 662 415
E-mail cartera@lei.net.au


Best regards, Ruslan.


Best regards, Ruslan.


Adrian Carter
Technical Manager
Leading Edge Internet

Web http://www.lei.net.au http://support.lei.net.au
Direct +61 2 6163 6162 Support 1 300 662 415
E-mail cartera@lei.net.au

Best regards, Ruslan.

ok I read about using procmail with my imap server in the wiki, I am
trying this…
I added in my postfix server 4 alias to rt@mydomain.com of course I
created an imap account for rt@mydomain.com
I test from the rt server fetchmail and works…
t@matrix ~/etc $ fetchmail
1 message for rt at mail.mydomain.com.
reading message rt@pisces.mycomain.com:1 of 1 (1459 header octets) .
(1036 body octets) . flushed

I know it works cause before I sent a test email it say no messages on
server and now I sent a test email to
and alias that is the same name of one of my created queues and I get
this email below saying in spanish that I dont have permissions for
queue General… but… I disable general and added 4 of my own and
those are the ones I put in the alias and the email I sent it was to one
of this alias…-------- Original Message --------
Subject: Ticket creation failed
Date: Mon, 3 Apr 2006 16:58:43 -0400 (EDT)
From: RT_CorrespondAddressNotSet@voicesignal.com
To: cfernandez@voicesignal.com

No tiene privilegios para crear tickets en la cola ‘General’

file:///tmp/nsmail-1.tmp (23 Bytes)

cfernandez.vcf (572 Bytes)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I wish someone would please help me with this relatively simple task. I
bought the RT Essentials book, and the only example it has is creating a
new ticket off of a straight Resolve with no conditions.

Can someone please help me with this!?!?!

I’m having the hardest time figuring out how to create a ticket based on
the status of a Custom Field.

I have two Custom Fields

1: Billable
It’s a select one field with values of:
Yes
No
Covered
Gratis

2: Followup
It’s a select one field with values of:
Yes
No

I have the two corresponding scrips written:

1: Invoice

Condition: User Defined
Action: Create Tickets
Template: Generate-Invoice

Custom Condition:
return 0 unless $trans->Type eq “Resolve”;

return undef unless
($self->TicketObj->FirstCustomFieldValue(‘Name_of_your_Custom_Field’) =~
/Yes/i);
return 1;
return undef unless
($self->TicketObj->FirstCustomFieldValue(‘Name_of_your_Custom_Field’) =~
/Gratis/i);
return 1;

return undef unless
($self->TicketObj->FirstCustomFieldValue(‘Name_of_your_Custom_Field’) =~
/Covered/i);
return 1;

2:

Condition: User Defined:
Action: Create Tickets:
Template: generate-followup

Custom Condition:

return 0 unless $trans->Type eq “Resolve”;

return undef unless ($self->TicketObj->FirstCustomFieldValue(‘Followup’)
=~ /Yes/i);
return 1;

I have two corresponding templates created:

1:
===Create-Ticket: generate-invoice
Queue: Accounting
Requestor: {$Tickets{‘TOP’}->OwnerObj->EmailAddress() }
RefersTo: {$Tickets{‘TOP’}->Id() }
Content: Please generate an invoice for this customer.
Billable was set to:
{$Tickets}{‘TOP’}->TicketObj->FirstCustomFieldValue(‘Billable’)}

Billable hours was set to:
{$Tickets}{‘TOP’}->TicketObj->FirstCustomFieldValue(‘Billable Hours’)}
Please refer to previous ticket for more information.
ENDOFCONTENT

2:
===Create-Ticket: generate-followup
Queue: Customer Service
Requestor: {$Tickets{‘TOP’}->OwnerObj->EmailAddress() }
RefersTo: {$Tickets{‘TOP’}->Id() }
Content: A follow up was requested on this ticket. Please refer to
previous ticket for more information.
ENDOFCONTENT

I then created a test ticket with Billable set to Yes and Followup to
Yes, and neither ticket spawned!!!

Help please!!!

Thanks in advance,
Matt Westfall
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)

iD8DBQFHL2Fsb/8X6V5MpAURAvChAJ9qYhZYLRtY1dHQoXqNq48EXELcvACg5Wr6
rcHlWbl+i866n4Q3bimJE20=
=ZK86
-----END PGP SIGNATURE-----

Matt,

I believe Todd already offered to help you with your code. I do not 

think you are going to get any better help.

Kenn
LBNLOn 11/5/2007 10:31 AM, Matt Westfall wrote:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I wish someone would please help me with this relatively simple task. I
bought the RT Essentials book, and the only example it has is creating a
new ticket off of a straight Resolve with no conditions.

Can someone please help me with this!?!?!

I’m having the hardest time figuring out how to create a ticket based on
the status of a Custom Field.

I have two Custom Fields

1: Billable
It’s a select one field with values of:
Yes
No
Covered
Gratis

2: Followup
It’s a select one field with values of:
Yes
No

I have the two corresponding scrips written:

1: Invoice

Condition: User Defined
Action: Create Tickets
Template: Generate-Invoice

Custom Condition:
return 0 unless $trans->Type eq “Resolve”;

return undef unless
($self->TicketObj->FirstCustomFieldValue(‘Name_of_your_Custom_Field’) =~
/Yes/i);
return 1;
return undef unless
($self->TicketObj->FirstCustomFieldValue(‘Name_of_your_Custom_Field’) =~
/Gratis/i);
return 1;

return undef unless
($self->TicketObj->FirstCustomFieldValue(‘Name_of_your_Custom_Field’) =~
/Covered/i);
return 1;

2:

Condition: User Defined:
Action: Create Tickets:
Template: generate-followup

Custom Condition:

return 0 unless $trans->Type eq “Resolve”;

return undef unless ($self->TicketObj->FirstCustomFieldValue(‘Followup’)
=~ /Yes/i);
return 1;

I have two corresponding templates created:

1:
===Create-Ticket: generate-invoice
Queue: Accounting
Subject: Invoice: { $Tickets{‘TOP’} → Subject() }
Requestor: {$Tickets{‘TOP’}->OwnerObj->EmailAddress() }
RefersTo: {$Tickets{‘TOP’}->Id() }
Content: Please generate an invoice for this customer.
Billable was set to:
{$Tickets}{‘TOP’}->TicketObj->FirstCustomFieldValue(‘Billable’)}

Billable hours was set to:
{$Tickets}{‘TOP’}->TicketObj->FirstCustomFieldValue(‘Billable Hours’)}
Please refer to previous ticket for more information.
ENDOFCONTENT

2:
===Create-Ticket: generate-followup
Queue: Customer Service
Subject: Invoice: { $Tickets{‘TOP’} → Subject() }
Requestor: {$Tickets{‘TOP’}->OwnerObj->EmailAddress() }
RefersTo: {$Tickets{‘TOP’}->Id() }
Content: A follow up was requested on this ticket. Please refer to
previous ticket for more information.
ENDOFCONTENT

I then created a test ticket with Billable set to Yes and Followup to
Yes, and neither ticket spawned!!!

Help please!!!

Thanks in advance,
Matt Westfall
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)

iD8DBQFHL2Fsb/8X6V5MpAURAvChAJ9qYhZYLRtY1dHQoXqNq48EXELcvACg5Wr6
rcHlWbl+i866n4Q3bimJE20=
=ZK86
-----END PGP SIGNATURE-----


The rt-users Archives

SAVE THOUSANDS OF DOLLARS ON RT SUPPORT:

If you sign up for a new RT support contract before December 31, we’ll take
up to 20 percent off the price. This sale won’t last long, so get in touch today.
Email us at sales@bestpractical.com or call us at +1 617 812 0745.

Community help: http://wiki.bestpractical.com
Commercial support: sales@bestpractical.com

Discover RT’s hidden secrets with RT Essentials from O’Reilly Media.
Buy a copy at http://rtbook.bestpractical.com

The code you posted makes no sense. It has a bunch of “return 1”
statements in it so most of it will never be executed. Clean it up and
post it and I’ll help.

Now playing: The Decemberists - California One/Youth and Beauty Brigade
Yahoo | Mail, Weather, Search, Politics, News, Finance, Sports & Videos 11/5/07, Matt Westfall mwestfall@factory7.com wrote:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I wish someone would please help me with this relatively simple task. I
bought the RT Essentials book, and the only example it has is creating a
new ticket off of a straight Resolve with no conditions.

Can someone please help me with this!?!?!

I’m having the hardest time figuring out how to create a ticket based on
the status of a Custom Field.

I have two Custom Fields

1: Billable
It’s a select one field with values of:
Yes
No
Covered
Gratis

2: Followup
It’s a select one field with values of:
Yes
No

I have the two corresponding scrips written:

1: Invoice

Condition: User Defined
Action: Create Tickets
Template: Generate-Invoice

Custom Condition:
return 0 unless $trans->Type eq “Resolve”;

return undef unless
($self->TicketObj->FirstCustomFieldValue(‘Name_of_your_Custom_Field’) =~
/Yes/i);
return 1;
return undef unless
($self->TicketObj->FirstCustomFieldValue(‘Name_of_your_Custom_Field’) =~
/Gratis/i);
return 1;

return undef unless
($self->TicketObj->FirstCustomFieldValue(‘Name_of_your_Custom_Field’) =~
/Covered/i);
return 1;

2:

Condition: User Defined:
Action: Create Tickets:
Template: generate-followup

Custom Condition:

return 0 unless $trans->Type eq “Resolve”;

return undef unless ($self->TicketObj->FirstCustomFieldValue(‘Followup’)
=~ /Yes/i);
return 1;

I have two corresponding templates created:

1:
===Create-Ticket: generate-invoice
Queue: Accounting
Subject: Invoice: { $Tickets{‘TOP’} → Subject() }
Requestor: {$Tickets{‘TOP’}->OwnerObj->EmailAddress() }
RefersTo: {$Tickets{‘TOP’}->Id() }
Content: Please generate an invoice for this customer.
Billable was set to:
{$Tickets}{‘TOP’}->TicketObj->FirstCustomFieldValue(‘Billable’)}

Billable hours was set to:
{$Tickets}{‘TOP’}->TicketObj->FirstCustomFieldValue(‘Billable Hours’)}
Please refer to previous ticket for more information.
ENDOFCONTENT

2:
===Create-Ticket: generate-followup
Queue: Customer Service
Subject: Invoice: { $Tickets{‘TOP’} → Subject() }
Requestor: {$Tickets{‘TOP’}->OwnerObj->EmailAddress() }
RefersTo: {$Tickets{‘TOP’}->Id() }
Content: A follow up was requested on this ticket. Please refer to
previous ticket for more information.
ENDOFCONTENT

I then created a test ticket with Billable set to Yes and Followup to
Yes, and neither ticket spawned!!!

Help please!!!

Thanks in advance,
Matt Westfall
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)

iD8DBQFHL2Fsb/8X6V5MpAURAvChAJ9qYhZYLRtY1dHQoXqNq48EXELcvACg5Wr6
rcHlWbl+i866n4Q3bimJE20=
=ZK86
-----END PGP SIGNATURE-----


The rt-users Archives

SAVE THOUSANDS OF DOLLARS ON RT SUPPORT:

If you sign up for a new RT support contract before December 31, we’ll take
up to 20 percent off the price. This sale won’t last long, so get in touch today.
Email us at sales@bestpractical.com or call us at +1 617 812 0745.

Community help: http://wiki.bestpractical.com
Commercial support: sales@bestpractical.com

Discover RT’s hidden secrets with RT Essentials from O’Reilly Media.
Buy a copy at http://rtbook.bestpractical.com

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

They are condition checks. Only 1 of them needs to be met. That’s why
they are return 1. If any of them are True, then the scrip should run
the template.

Todd Chapman wrote:

The code you posted makes no sense. It has a bunch of “return 1”
statements in it so most of it will never be executed. Clean it up and
post it and I’ll help.


Now playing: The Decemberists - California One/Youth and Beauty Brigade
Yahoo | Mail, Weather, Search, Politics, News, Finance, Sports & Videos

I wish someone would please help me with this relatively simple task. I
bought the RT Essentials book, and the only example it has is creating a
new ticket off of a straight Resolve with no conditions.

Can someone please help me with this!?!?!

I’m having the hardest time figuring out how to create a ticket based on
the status of a Custom Field.

I have two Custom Fields

1: Billable
It’s a select one field with values of:
Yes
No
Covered
Gratis

2: Followup
It’s a select one field with values of:
Yes
No

I have the two corresponding scrips written:

1: Invoice

Condition: User Defined
Action: Create Tickets
Template: Generate-Invoice

Custom Condition:
return 0 unless $trans->Type eq “Resolve”;

return undef unless
($self->TicketObj->FirstCustomFieldValue(‘Name_of_your_Custom_Field’) =~
/Yes/i);
return 1;
return undef unless
($self->TicketObj->FirstCustomFieldValue(‘Name_of_your_Custom_Field’) =~
/Gratis/i);
return 1;

return undef unless
($self->TicketObj->FirstCustomFieldValue(‘Name_of_your_Custom_Field’) =~
/Covered/i);
return 1;

2:

Condition: User Defined:
Action: Create Tickets:
Template: generate-followup

Custom Condition:

return 0 unless $trans->Type eq “Resolve”;

return undef unless ($self->TicketObj->FirstCustomFieldValue(‘Followup’)
=~ /Yes/i);
return 1;

I have two corresponding templates created:

1:
===Create-Ticket: generate-invoice
Queue: Accounting
Subject: Invoice: { $Tickets{‘TOP’} → Subject() }
Requestor: {$Tickets{‘TOP’}->OwnerObj->EmailAddress() }
RefersTo: {$Tickets{‘TOP’}->Id() }
Content: Please generate an invoice for this customer.
Billable was set to:
{$Tickets}{‘TOP’}->TicketObj->FirstCustomFieldValue(‘Billable’)}

Billable hours was set to:
{$Tickets}{‘TOP’}->TicketObj->FirstCustomFieldValue(‘Billable Hours’)}
Please refer to previous ticket for more information.
ENDOFCONTENT

2:
===Create-Ticket: generate-followup
Queue: Customer Service
Subject: Invoice: { $Tickets{‘TOP’} → Subject() }
Requestor: {$Tickets{‘TOP’}->OwnerObj->EmailAddress() }
RefersTo: {$Tickets{‘TOP’}->Id() }
Content: A follow up was requested on this ticket. Please refer to
previous ticket for more information.
ENDOFCONTENT

I then created a test ticket with Billable set to Yes and Followup to
Yes, and neither ticket spawned!!!

Help please!!!

Thanks in advance,
Matt Westfall
The rt-users Archives

SAVE THOUSANDS OF DOLLARS ON RT SUPPORT:

If you sign up for a new RT support contract before December 31, we’ll take
up to 20 percent off the price. This sale won’t last long, so get in
touch today.
Email us at sales@bestpractical.com or call us at +1 617 812 0745.

Community help: http://wiki.bestpractical.com
Commercial support: sales@bestpractical.com

Discover RT’s hidden secrets with RT Essentials from O’Reilly Media.
Buy a copy at http://rtbook.bestpractical.com

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)

iD8DBQFHL2brb/8X6V5MpAURAg2BAJ4x/vaIuczLH5DK4dM65qAdEGfbIQCcCmwV
sBQkEf2MJt5E6QGRT/nXNuE=
=BO0U
-----END PGP SIGNATURE-----

Your code will never make it past the first “return 1”. So why is the
rest of it there? The code makes no logical sense!

Now playing: The Decemberists - When The War Came
Yahoo | Mail, Weather, Search, Politics, News, Finance, Sports & Videos 11/5/07, Matt Westfall mwestfall@factory7.com wrote:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

They are condition checks. Only 1 of them needs to be met. That’s why
they are return 1. If any of them are True, then the scrip should run
the template.

Todd Chapman wrote:

The code you posted makes no sense. It has a bunch of “return 1”
statements in it so most of it will never be executed. Clean it up and
post it and I’ll help.


Now playing: The Decemberists - California One/Youth and Beauty Brigade
Yahoo | Mail, Weather, Search, Politics, News, Finance, Sports & Videos

On 11/5/07, Matt Westfall mwestfall@factory7.com wrote:
I wish someone would please help me with this relatively simple task. I
bought the RT Essentials book, and the only example it has is creating a
new ticket off of a straight Resolve with no conditions.

Can someone please help me with this!?!?!

I’m having the hardest time figuring out how to create a ticket based on
the status of a Custom Field.

I have two Custom Fields

1: Billable
It’s a select one field with values of:
Yes
No
Covered
Gratis

2: Followup
It’s a select one field with values of:
Yes
No

I have the two corresponding scrips written:

1: Invoice

Condition: User Defined
Action: Create Tickets
Template: Generate-Invoice

Custom Condition:
return 0 unless $trans->Type eq “Resolve”;

return undef unless
($self->TicketObj->FirstCustomFieldValue(‘Name_of_your_Custom_Field’) =~
/Yes/i);
return 1;
return undef unless
($self->TicketObj->FirstCustomFieldValue(‘Name_of_your_Custom_Field’) =~
/Gratis/i);
return 1;

return undef unless
($self->TicketObj->FirstCustomFieldValue(‘Name_of_your_Custom_Field’) =~
/Covered/i);
return 1;

2:

Condition: User Defined:
Action: Create Tickets:
Template: generate-followup

Custom Condition:

return 0 unless $trans->Type eq “Resolve”;

return undef unless ($self->TicketObj->FirstCustomFieldValue(‘Followup’)
=~ /Yes/i);
return 1;

I have two corresponding templates created:

1:
===Create-Ticket: generate-invoice
Queue: Accounting
Subject: Invoice: { $Tickets{‘TOP’} → Subject() }
Requestor: {$Tickets{‘TOP’}->OwnerObj->EmailAddress() }
RefersTo: {$Tickets{‘TOP’}->Id() }
Content: Please generate an invoice for this customer.
Billable was set to:
{$Tickets}{‘TOP’}->TicketObj->FirstCustomFieldValue(‘Billable’)}

Billable hours was set to:
{$Tickets}{‘TOP’}->TicketObj->FirstCustomFieldValue(‘Billable Hours’)}
Please refer to previous ticket for more information.
ENDOFCONTENT

2:
===Create-Ticket: generate-followup
Queue: Customer Service
Subject: Invoice: { $Tickets{‘TOP’} → Subject() }
Requestor: {$Tickets{‘TOP’}->OwnerObj->EmailAddress() }
RefersTo: {$Tickets{‘TOP’}->Id() }
Content: A follow up was requested on this ticket. Please refer to
previous ticket for more information.
ENDOFCONTENT

I then created a test ticket with Billable set to Yes and Followup to
Yes, and neither ticket spawned!!!

Help please!!!

Thanks in advance,
Matt Westfall


The rt-users Archives

SAVE THOUSANDS OF DOLLARS ON RT SUPPORT:

If you sign up for a new RT support contract before December 31, we’ll take
up to 20 percent off the price. This sale won’t last long, so get in
touch today.
Email us at sales@bestpractical.com or call us at +1 617 812 0745.

Community help: http://wiki.bestpractical.com
Commercial support: sales@bestpractical.com

Discover RT’s hidden secrets with RT Essentials from O’Reilly Media.
Buy a copy at http://rtbook.bestpractical.com

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)

iD8DBQFHL2brb/8X6V5MpAURAg2BAJ4x/vaIuczLH5DK4dM65qAdEGfbIQCcCmwV
sBQkEf2MJt5E6QGRT/nXNuE=
=BO0U
-----END PGP SIGNATURE-----

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

There are two TransactionObj there. So would

unless ( $self->TransactionObj->Type eq “Resolved” &&
$self->TransactionObj->Field == FIELD_ID )
{ return 0; }

return 0 unless $self->TicketObj->FirstCustomFieldValue(‘Followup’) =~
/Yes/i;

1;

The first check would 1) ensure that the ticket is being resolved &&
That the CustomField is Set.

Then if Followup is Yes, it would then return 1?

What is the purpose of self->transactionobj->Field == ####??

Should I just be checking for if it’s Resolved, and if so, checking value?

Thanks,
Matt
Tim Wilson wrote:>>>> On Mon, Nov 5, 2007 at 1:41 PM, in message 472F7200.8080507@factory7.com, Matt Westfall mwestfall@factory7.com wrote:

-----BEGIN PGP SIGNED MESSAGE-----

I did see that page on the Wiki. However, I am trying to take an action
when the ticket is resolved, and if a custom field is something.

On this part…

unless (
( $self->TransactionObj->Type eq “CustomField”
&& $self->TransactionObj->Field == FIELD_ID )
|| $self->TransactionObj->Type eq “Create”
) {
return 0;
}

return 0 unless $self->TicketObj->FirstCustomFieldValue(‘CUSTOM_FIELD_NAME’) =~ /CUSTOM_FIELD_VALUE/i;

1;

You could probaby change the TransactionObj type to “Resolved.”

-Tim

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)

iD8DBQFHL3mIb/8X6V5MpAURAjxoAKCmS78HjL9FyNLpp7HRn7pHTHpcVQCg2C0J
maKJYisFKVYAeZk9dIZJXmQ=
=I1eL
-----END PGP SIGNATURE-----

Now playing: The Decemberists - Summersong

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

There are two TransactionObj there. So would

unless ( $self->TransactionObj->Type eq “Resolved” &&
$self->TransactionObj->Field == FIELD_ID )
{ return 0; }

return 0 unless $self->TicketObj->FirstCustomFieldValue(‘Followup’) =~
/Yes/i;

1;

The first check would 1) ensure that the ticket is being resolved &&
That the CustomField is Set.

Then if Followup is Yes, it would then return 1?

What is the purpose of self->transactionobj->Field == ####??

That part doesn’t make sense. Get rid of it.

Should I just be checking for if it’s Resolved, and if so, checking value?

Yes.

-----BEGIN PGP SIGNED MESSAGE-----

There are two TransactionObj there. So would

unless ( $self->TransactionObj->Type eq “Resolved” &&
$self->TransactionObj->Field == FIELD_ID )
{ return 0; }

return 0 unless $self->TicketObj->FirstCustomFieldValue(‘Followup’) =~
/Yes/i;

1;

The first check would 1) ensure that the ticket is being resolved &&
That the CustomField is Set.

Then if Followup is Yes, it would then return 1?

What is the purpose of self->transactionobj->Field == ####??

Check the next paragraph on the wiki for the explanation:

–snip–
where FIELD_ID is the numeric ID of the particular custom field, CUSTOM_FIELD_NAME is the name of the custom field, and CUSTOM_FIELD_VALUE is the text you want to match. Get the FIELD_ID by browsing to the custom field’s configuration screen in RT and looking at the URL. The end of the URL will contain the numeric ID of the custom field.
–snip–

FIELD_ID is a numeric value that you need to find by inspecting the URL in the browser.

-Tim

Tim Wilson, Director of Technology
Buffalo-Hanover-Montrose Schools
214 1st Ave NE Buffalo, MN 55313
ph: 763.682.8740 fax: 763.682.8743 http://www.buffalo.k12.mn.us

-----BEGIN PGP SIGNED MESSAGE-----

There are two TransactionObj there. So would

unless ( $self->TransactionObj->Type eq “Resolved” &&
$self->TransactionObj->Field == FIELD_ID )
{ return 0; }

return 0 unless $self->TicketObj->FirstCustomFieldValue(‘Followup’) =~
/Yes/i;

1;

The first check would 1) ensure that the ticket is being resolved &&
That the CustomField is Set.

Then if Followup is Yes, it would then return 1?

What is the purpose of self->transactionobj->Field == ####??

Check the next paragraph on the wiki for the explanation:

–snip–
where FIELD_ID is the numeric ID of the particular custom field, CUSTOM_FIELD_NAME is the name of the custom field, and CUSTOM_FIELD_VALUE is the text you want to match. Get the FIELD_ID by browsing to the custom field’s configuration screen in RT and looking at the URL. The end of the URL will contain the numeric ID of the custom field.
–snip–

FIELD_ID is a numeric value that you need to find by inspecting the URL in the browser.

-Tim

Tim,

In this context FIELD_ID doesn’t make sense. It’s not set on a Resolve
transaction object.

-Todd

Matt,

Make sure the stage is set to "TransactionBatch". Then, if the Custom 

Field is supposed to have already been modified BEFORE the transaction
to resolve, you might try something like this:

condition execution on trans new status & ticket Custom Field value

my $ticket = $self->TicketObj;
my $trans = $self->TransactionObj;

return ($trans->Type eq “Status” &&
$trans->NewValue eq “resolved” &&
$ticket->FirstCustomFieldValue(‘Your CF Name’) eq “whatever”);

If both are to happen at the same time, then try this:

condition execution on trans new status & new trans Custom Field value

my $trans = $self->TransactionObj;
my $ticket = $self->TicketObj;

if ($trans->Type eq ‘CustomField’)
{my $cf = new RT::CustomField($RT::SystemUser);
$cf->LoadByName(Queue => $ticket->QueueObj->id,
Name => “Your CF Name”);
return 0 unless $cf->id;
if ($trans->Field == $cf->id &&
$trans->NewValue eq “whatever”)
{
return 0 unless ($trans->Type eq “Status” &&
$trans->NewValue eq “resolved”)
}
}

return 0;

Hope this helps.

Kenn
LBNLOn 11/5/2007 12:14 PM, Matt Westfall wrote:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

There are two TransactionObj there. So would

unless ( $self->TransactionObj->Type eq “Resolved” &&
$self->TransactionObj->Field == FIELD_ID )
{ return 0; }

return 0 unless $self->TicketObj->FirstCustomFieldValue(‘Followup’) =~
/Yes/i;

1;

The first check would 1) ensure that the ticket is being resolved &&
That the CustomField is Set.

Then if Followup is Yes, it would then return 1?

What is the purpose of self->transactionobj->Field == ####??

Should I just be checking for if it’s Resolved, and if so, checking value?

Thanks,
Matt
Tim Wilson wrote:

On Mon, Nov 5, 2007 at 1:41 PM, in message 472F7200.8080507@factory7.com, Matt Westfall mwestfall@factory7.com wrote:
-----BEGIN PGP SIGNED MESSAGE-----
I did see that page on the Wiki. However, I am trying to take an action
when the ticket is resolved, and if a custom field is something.
On this part…

unless (
( $self->TransactionObj->Type eq “CustomField”
&& $self->TransactionObj->Field == FIELD_ID )
|| $self->TransactionObj->Type eq “Create”
) {
return 0;
}

return 0 unless $self->TicketObj->FirstCustomFieldValue(‘CUSTOM_FIELD_NAME’) =~ /CUSTOM_FIELD_VALUE/i;

1;

You could probaby change the TransactionObj type to “Resolved.”

-Tim

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)

iD8DBQFHL3mIb/8X6V5MpAURAjxoAKCmS78HjL9FyNLpp7HRn7pHTHpcVQCg2C0J
maKJYisFKVYAeZk9dIZJXmQ=
=I1eL
-----END PGP SIGNATURE-----


The rt-users Archives

SAVE THOUSANDS OF DOLLARS ON RT SUPPORT:

If you sign up for a new RT support contract before December 31, we’ll take
up to 20 percent off the price. This sale won’t last long, so get in touch today.
Email us at sales@bestpractical.com or call us at +1 617 812 0745.

Community help: http://wiki.bestpractical.com
Commercial support: sales@bestpractical.com

Discover RT’s hidden secrets with RT Essentials from O’Reilly Media.
Buy a copy at http://rtbook.bestpractical.com

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

OK For my scrip I have:

Condition: User Defined
Action: Create Tickets
Template: Create-Followup
Stage: Transaction Create

User Condition is:

return 0 unless $self->TransactionObj->Type eq “Resolved”

return 0 unless $self->TicketObj->FirstCustomFieldValue(‘Followup’) =~
/Yes/i;

1;

My Template is:

===Create-Ticket: generate-followup
Queue: Customer Service
Requestor: {$Tickets{‘TOP’}->OwnerObj->EmailAddress() }
RefersTo: {$Tickets{‘TOP’}->Id() }
Content: A follow up was requested on this ticket. Please refer to
previous ticket for more information.
ENDOFCONTENT

And still no joy :frowning: :frowning:

Todd Chapman wrote:


Now playing: The Decemberists - Summersong
Yahoo | Mail, Weather, Search, Politics, News, Finance, Sports & Videos

There are two TransactionObj there. So would

unless ( $self->TransactionObj->Type eq “Resolved” &&
$self->TransactionObj->Field == FIELD_ID )
{ return 0; }

return 0 unless $self->TicketObj->FirstCustomFieldValue(‘Followup’) =~
/Yes/i;

1;

The first check would 1) ensure that the ticket is being resolved &&
That the CustomField is Set.

Then if Followup is Yes, it would then return 1?

What is the purpose of self->transactionobj->Field == ####??

That part doesn’t make sense. Get rid of it.

Should I just be checking for if it’s Resolved, and if so, checking value?

Yes.

Thanks,
Matt
Tim Wilson wrote:

-----BEGIN PGP SIGNED MESSAGE-----
I did see that page on the Wiki. However, I am trying to take an action
when the ticket is resolved, and if a custom field is something.
On this part…

unless (
( $self->TransactionObj->Type eq “CustomField”
&& $self->TransactionObj->Field == FIELD_ID )
|| $self->TransactionObj->Type eq “Create”
) {
return 0;
}

return 0 unless $self->TicketObj->FirstCustomFieldValue(‘CUSTOM_FIELD_NAME’) =~ /CUSTOM_FIELD_VALUE/i;

1;

You could probaby change the TransactionObj type to “Resolved.”

-Tim

http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

SAVE THOUSANDS OF DOLLARS ON RT SUPPORT:

If you sign up for a new RT support contract before December 31, we’ll take
up to 20 percent off the price. This sale won’t last long, so get in
touch today.
Email us at sales@bestpractical.com or call us at +1 617 812 0745.

Community help: http://wiki.bestpractical.com
Commercial support: sales@bestpractical.com

Discover RT’s hidden secrets with RT Essentials from O’Reilly Media.
Buy a copy at http://rtbook.bestpractical.com

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)

iD8DBQFHMN5Wb/8X6V5MpAURAp7cAJ4mzlzgIe/UVUvP7V88BIbElfSGowCeLc4X
RHArR81UgN9lNK0pajMszdY=
=TPtD
-----END PGP SIGNATURE-----

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

OK For my scrip I have:

Condition: User Defined
Action: Create Tickets
Template: Create-Followup
Stage: Transaction Create

User Condition is:

return 0 unless $self->TransactionObj->Type eq “Resolved”

return 0 unless $self->TicketObj->FirstCustomFieldValue(‘Followup’) =~
/Yes/i;

1;

My Template is:

===Create-Ticket: generate-followup
Queue: Customer Service
Requestor: {$Tickets{‘TOP’}->OwnerObj->EmailAddress() }
RefersTo: {$Tickets{‘TOP’}->Id() }
Content: A follow up was requested on this ticket. Please refer to
previous ticket for more information.
ENDOFCONTENT

And still no joy :frowning: :frowning:

Todd Chapman wrote:


Now playing: The Decemberists - Summersong
Yahoo | Mail, Weather, Search, Politics, News, Finance, Sports & Videos

There are two TransactionObj there. So would

unless ( $self->TransactionObj->Type eq “Resolved” &&
$self->TransactionObj->Field == FIELD_ID )
{ return 0; }

return 0 unless $self->TicketObj->FirstCustomFieldValue(‘Followup’) =~
/Yes/i;

1;

The first check would 1) ensure that the ticket is being resolved &&
That the CustomField is Set.

Then if Followup is Yes, it would then return 1?

What is the purpose of self->transactionobj->Field == ####??

That part doesn’t make sense. Get rid of it.

Should I just be checking for if it’s Resolved, and if so, checking value?

Yes.

Thanks,
Matt
Tim Wilson wrote:

-----BEGIN PGP SIGNED MESSAGE-----
I did see that page on the Wiki. However, I am trying to take an action
when the ticket is resolved, and if a custom field is something.
On this part…

unless (
( $self->TransactionObj->Type eq “CustomField”
&& $self->TransactionObj->Field == FIELD_ID )
|| $self->TransactionObj->Type eq “Create”
) {
return 0;
}

return 0 unless $self->TicketObj->FirstCustomFieldValue(‘CUSTOM_FIELD_NAME’) =~ /CUSTOM_FIELD_VALUE/i;

1;

You could probaby change the TransactionObj type to “Resolved.”

-Tim

http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

SAVE THOUSANDS OF DOLLARS ON RT SUPPORT:

If you sign up for a new RT support contract before December 31, we’ll take
up to 20 percent off the price. This sale won’t last long, so get in
touch today.
Email us at sales@bestpractical.com or call us at +1 617 812 0745.

Community help: http://wiki.bestpractical.com
Commercial support: sales@bestpractical.com

Discover RT’s hidden secrets with RT Essentials from O’Reilly Media.
Buy a copy at http://rtbook.bestpractical.com

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)

iD8DBQFHMiOtb/8X6V5MpAURAjHlAJ4h0EtG5gBhUr0aAEBDKZ0lwDQDGgCgl/Gw
A5tnyG598thLEFR4Ug/rKAk=
=IIzu
-----END PGP SIGNATURE-----