[rt-users] External Custom Field query based an other Custom Field value

Ruslan Zakirov ruslan.zakirov at gmail.com
Mon Aug 27 11:55:07 EDT 2012


Hi,

At this moment it's impossible to do like you want it to do. External
custom fields should return all possible values.

You should configure one CF to be based on other in the UI and in your code
for that CF return Category. Category should be a value of first CF.

Hope you don't have thousands of machines.

Ruslan from phone.
27.08.2012 16:31 пользователь "DupondEt Dupont" <jean.mich.c at gmail.com>
написал:

> Hi,
>
> Anyone have an idea?
>
> JMC
>
> 2012/8/24 DupondEt Dupont <jean.mich.c at gmail.com>
>
>> Hi all,
>>
>> i recently install lastest RT 4 release and start setting up external
>> custom fields from an Oracle query. (as describe in
>> docs/extending/external_custom_fields.pod)
>>
>> Everything work really fine, until i decided to use previously filled
>> custom fied as argument in an other external custom field search.
>>
>> In this study case ;) , both custom fields are assigned to ticket.
>> The first external CF (name Client) retrieve customer list and CF store
>> the value I have select.
>> The second external CF (name Machine) should retrieve hostname for the
>> customer select in CF Client...
>>
>> Here is the piece of PERL code for CF Machine
>> (/opt/rt4/lib/RT/CustomFieldValues/Test2.pm)
>>
>> -----------------------------------------------------------------------------
>> package RT::CustomFieldValues::Test2;
>>
>> use strict;
>> use warnings;
>> use DBI;
>> use DBD::Oracle;
>> use base qw(RT::CustomFieldValues::External);
>>
>> sub SourceDescription {
>>     return 'test2';
>> }
>>
>> sub ExternalValues {
>>         my $self = shift;
>> # the previsous custom field name
>>         my $CFName = 'Client';
>> # should store the name of my customer...
>>         my $CFClient = $self->TicketObj->FirstCustomFieldValue($CFName);
>>         my $i = 0;
>>         my @res;
>>         my $Hostname
>>         my $dbh =
>> DBI->connect("dbi:Oracle:host=XXX.XXX.XXX.XXX;sid=XX;port=XXXX","XXXX","XXXX",
>> {ora_session_mode => 0, PrintError =>0});
>>         my $req = "SELECT distinct HOSTNAME FROM my_table where
>> CLIENT='$CFClient'";
>>         my $hreq = $dbh->prepare($req);
>>         $hreq->execute();;
>>         $hreq->bind_columns(\$Hostname);
>>         while ($hreq->fetch()){
>>                 push @res, {
>>                     name        => $Hostname,
>>                     description => $Hostname,
>>                     sortorder   => $i++,
>>                 };
>>         }
>>         return \@res;
>> }
>>
>> -----------------------------------------------------------------------------
>>
>> I used $self->TicketObj->FirstCustomFieldValue($CFName) but it's not know
>> in this context apparently as Data::Dumper shows me...(but
>> $self->CurrentUser is)
>>
>> I hope you'll have a solution to deal with this, cause i got no more
>> ideas.
>>
>> Thank you in advance for your time.
>>
>> JMC
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bestpractical.com/pipermail/rt-users/attachments/20120827/18f7d06c/attachment.htm>


More information about the rt-users mailing list