Re: [Arsperl-users] question regarding the query() method
Brought to you by:
jeffmurphy
|
From: Carey M. B. <bla...@gm...> - 2005-04-27 15:03:59
|
Sean, Ok.. So ars_GetListEntry does not use field Labels, but the OO ARS::form()->query() does, because the form() object is view aware. An interesting bit of info to keep in mind. But in my local version of the ARSPerl docs I see some statements like: The online docs say this about the openForm() method " The vui parameter currently does nothing, but it will eventually alter the field labels that you can pass into form->get() form->set(), etc. The form parameter is the name of the form you wish to open (e.g. "User"). Upon successful completion this call returns a new ARS::form object. " So this feature may depend on the version of the OO layer your using. (or maybe the docs are just stale.) But just as a side note on when you choose what name to use in your programming, think about stability of your code too. Field Labels are the most likely name to change over time. Field DB names are the next most likely name to change. Field ID's almost NEVER change. (only lately possible via a "unsupported utility", and it has it's limitations.) So if you can read the "ugly" field ID's in your code, then you are much less likely to have your scripts break "randomly" at some point down the road. I guess you could also create a special view (maybe call it "ARSPerl") and just as a development rule never change the labels on that view, and always reference that view in your code. But that seems like a waste full overhead instead of just using a field ID. (You could even build a local hash to translate the local "field name" to the fields' id too.) --=20 Carey Matthew Black Remedy Skilled Professional (RSP) ARS =3D Action Request System(Remedy) Solution =3D People + Process + Tools Fast, Accurate, Cheap.... Pick two. Never ascribe to malice, that which can be explained by incompetence. http://www.fellowshipchurch.com On 4/27/05, Sean Garrison <msg...@co...> wrote: > It is because your query is bad -- it should be 'Login Name' =3D "Some Us= er" >=20 > If you are creating it in perl it should be "'Login Name' =3D \"Some User= \"" >=20 > Fields are always surrounded in single quotes while character data is in > double quotes. >=20 > Please note -- you must use the label of the field and not the database n= ame > when creating your query. This has got me several times because everythi= ng > else seems to use the database name. >=20 > Thanks, >=20 > Sean >=20 > -----Original Message----- > From: ars...@ar... > [mailto:ars...@ar...] On Behalf Of the sign will be th= at > life is awesome > Sent: Wednesday, April 27, 2005 6:16 AM > To: 'ars...@ar...' > Subject: [Arsperl-users] question regarding the query() method >=20 > I'm trying to figure out how to properly use qualifiers via the OO query(= ) > method on the SHR:People form. my code is below : >=20 > my @entries =3D $remedy_form->query( > -query =3D> '("Login Name" =3D "some_user")' > ); >=20 > this returns an array of field headers but no entries. >=20 > i've verified that the 'Login Name' field exists under that name in the f= orm >=20 > 'Login Name' =3D> 240000005 >=20 > I suspect that I'm not understanding how to properly phrase a remedy quer= y > and apologize if that is the case here. invoking query() with no argumen= ts > properly returns all entry IDs for the form and i can properly perform a > get() on the form handle to retrieve the entry - i just can't seem to > properly > format a filter on the query itself. >=20 > does anyone see anything boneheaded i'm doing here? i've tried various > quoting > styles for the query, such as "(\"Login Name\" =3D \"some_user\")", 'Logi= n > name' > and 'Login' instead of 'Login Name' and omitting the spaces between the > field > name and the '=3D' in the query as well as removing the parentheses aroun= d the > query but none of those seem to work for me. directly using > ars_GetListEntry > acts identically. >=20 > one thing i've noted ( not sure if this is something the C API deals with= or > not ) is that you can specify any field name in the qualifier, whether it > exists or not, and no error is thrown. >=20 > the deconstructed qualifier as returned by ars_perl_qualifier() looks lik= e >=20 > $VAR1 =3D { > 'oper' =3D> 'rel_op', > 'rel_op' =3D> { > 'left' =3D> { > 'value' =3D> 'Login Name' > }, > 'right' =3D> { > 'value' =3D> 'some_user' > }, > 'oper' =3D> '=3D=3D' > } > }; >=20 > using the standard $all qualifier of "1=3D1" returns >=20 > $VAR1 =3D { > 'oper' =3D> 'rel_op', > 'rel_op' =3D> { > 'left' =3D> { > 'value' =3D> 1 > }, > 'right' =3D> { > 'value' =3D> 1 > }, > 'oper' =3D> '=3D=3D' > } > }; >=20 > ( using "1=3D1" returns all entries properly, as does "1<2" and other que= ries > of that nature, so i think i've at least got the basic syntax down. what > i'm > probably not understanding are what types of arguments i'm supposed to fe= ed > to the qualifier constructor, tho the examples i've seen in the mailing l= ist > seem to match up with what i'm trying to do ) >=20 > a little stumped :) - thanks much for any help! >=20 > - tom >=20 > ------------------------------------------------------- > SF.Net email is sponsored by: Tell us your software development plans! > Take this survey and enter to win a one-year sub to SourceForge.net > Plus IDC's 2005 look-ahead and a copy of this survey > Click here to start! http://www.idcswdc.com/cgi-bin/survey?id=3D105hix > _______________________________________________ > Arsperl-users mailing list > Ars...@ar... > https://lists.sourceforge.net/lists/listinfo/arsperl-users >=20 > ------------------------------------------------------- > SF.Net email is sponsored by: Tell us your software development plans! > Take this survey and enter to win a one-year sub to SourceForge.net > Plus IDC's 2005 look-ahead and a copy of this survey > Click here to start! http://www.idcswdc.com/cgi-bin/survey?id=105hix > _______________________________________________ > Arsperl-users mailing list > Ars...@ar... > https://lists.sourceforge.net/lists/listinfo/arsperl-users > |