[Rt-devel] Subclause Aggregation with SearchBuilder
Jon Wood
jonathan.wood at uk.clara.net
Wed Feb 18 05:30:38 EST 2009
Using subclauses I've already got thing grouped correctly (the
Open/CloseParen calls aren't neccesary), the problem is getting them
matched using OR instead of AND.
Thanks,
Jon
On Tue, 2009-02-17 at 21:11 +0300, Ruslan Zakirov wrote:
> Subclause is the way to group multiple conditions with different
> aggregators, something like:
>
> my $txs =$tkt->Transactions;
> $txs->Limit(FIELD => "Type",
> VALUE => "Status",
> SUBCLAUSE => "XXX");
>
> $txs->_OpenParen("XXX");
>
> $txs->Limit(FIELD => "Type",
> VALUE => "CustomField",
> ENTRYAGGREGATOR => "OR",
> SUBCLAUSE => "XXX");
>
> $txs->Limit(FIELD => "ReferenceType",
> VALUE => "RT::ObjectCustomFieldValue",
> SUBCLAUSE => "XXX");
>
> $txs->Limit(FIELD => "CustomField",
> VALUE => "4",
> SUBCLAUSE => "XXX");
>
> $txs->_CloseParen("XXX");
>
> I think it should work, but I have not tested.
>
> 2009/2/17 Jon Wood <jonathan.wood at uk.clara.net>:
> > Hi,
> >
> > This may be the wrong list for this, but it does seem to be relevant to
> > RT.
> >
> > I'm trying to extract a list of Transactions on a ticket which are
> > either a status update, or a change to a specific customfield. Currently
> > I'm using this:
> >
> >
> > my $txs =$tkt->Transactions;
> > $txs->Limit(FIELD => "Type",
> > VALUE => "Status",
> > SUBCLAUSE => "status");
> >
> > $txs->Limit(FIELD => "Type",
> > VALUE => "CustomField",
> > SUBCLAUSE => "cf");
> >
> > $txs->Limit(FIELD => "ReferenceType",
> > VALUE => "RT::ObjectCustomFieldValue",
> > ENTRYAGGREGATOR => "AND",
> > SUBCLAUSE => "cf");
> >
> > $txs->Limit(FIELD => "CustomField",
> > VALUE => "4",
> > ENTRYAGGREGATOR => "AND",
> > SUBCLAUSE => "cf");
> >
> > Which gives me the following SQL:
> >
> > SELECT DISTINCT main.*
> > FROM Transactions main
> > JOIN Tickets Tickets_1 ON ( Tickets_1.id = main.ObjectId )
> > WHERE (main.Type = 'Status')
> > AND (main.Type = 'CustomField'
> > AND main.ReferenceType = 'RT::ObjectCustomFieldValue'
> > AND main.CustomField = '4')
> > AND (main.ObjectType = 'RT::Ticket')
> > AND (Tickets_1.EffectiveId = '6')
> > ORDER BY main.Created ASC, main.id ASC
> >
> > Which is not going to work at all, since there will never be a
> > transaction which matches both types. I've hit a brick wall on getting
> > to be:
> >
> > SELECT DISTINCT main.*
> > FROM Transactions main
> > JOIN Tickets Tickets_1 ON ( Tickets_1.id = main.ObjectId )
> > WHERE (main.Type = 'Status')
> > OR (main.Type = 'CustomField'
> > AND main.ReferenceType = 'RT::ObjectCustomFieldValue'
> > AND main.CustomField = '4')
> > AND (main.ObjectType = 'RT::Ticket')
> > AND (Tickets_1.EffectiveId = '6')
> > ORDER BY main.Created ASC, main.id ASC
> >
> > I'm sure there must be a way to do it, but no combination of
> > ENTRYAGGREGATOR parameters seems to be giving me the desired result.
> >
> > Could somebody point me in the right direction please?
> >
> > Thanks,
> > --
> > Jon Wood
> > SYSTEMS DEVELOPER
> >
> > Claranet Limited
> > 21 Southampton Row
> > London - WC1B 5HA
> > United Kingdom
> >
> > +44 (0)20 7685 8643
> > jonathan.wood at uk.clara.net
> > www.uk.clara.net
> >
> > Company registration no: 3152737
> > Place of registration: England
> >
> > All the information contained within this this electronic message from
> > Claranet Ltd is covered by the disclaimer at
> > http://www.uk.clara.net/disclaimer
> >
> > _______________________________________________
> > List info: http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-devel
> >
> >
>
>
>
--
Jon Wood
SYSTEMS DEVELOPER
Claranet Limited
21 Southampton Row
London - WC1B 5HA
United Kingdom
+44 (0)20 7685 8643
jonathan.wood at uk.clara.net
www.uk.clara.net
Company registration no: 3152737
Place of registration: England
All the information contained within this this electronic message from
Claranet Ltd is covered by the disclaimer at
http://www.uk.clara.net/disclaimer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
Url : http://lists.bestpractical.com/pipermail/rt-devel/attachments/20090218/05c5b348/attachment.pgp
More information about the Rt-devel
mailing list