project server - Using PSI Filter objects from Python -
i'm working sharepoint , projectserver 2007 via psi python.
i can't find documentation on how filter class (microsoft.office.project.server.library) objects work internally emulate behaviour in python.
any ideas?
take @ colby africa's blog post. also, msdn docs here.
edit
the generated filter xml. here filter returns data "lookuptables" table (list of lookup tables):
<?xml version="1.0" encoding="utf-16"?> <filter xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" filtertablename="lookuptables" xmlns="http://microsoft.com/projectserver/filterschema.xsd"> <fields> <field tablename="" fieldname="lt_uid" /> <field tablename="" fieldname="lt_name" /> <field tablename="" fieldname="lt_sort_order_enum" /> <field tablename="" fieldname="lt_primary_lcid" /> <field tablename="" fieldname="lt_fill_all_levels" /> <field tablename="" fieldname="lt_checkoutby" /> <field tablename="" fieldname="lt_checkoutdate" /> <field tablename="" fieldname="mod_date" /> </fields> <criteria /> </filter>
here example of filters required getting data 1 table...
step 1: row lookuptable (general table info)
<?xml version="1.0" encoding="utf-16"?> <filter xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" filtertablename="lookuptables" xmlns="http://microsoft.com/projectserver/filterschema.xsd"> <fields> <field tablename="" fieldname="lt_uid" /> <field tablename="" fieldname="lt_name" /> <field tablename="" fieldname="lt_sort_order_enum" /> <field tablename="" fieldname="lt_primary_lcid" /> <field tablename="" fieldname="lt_fill_all_levels" /> <field tablename="" fieldname="lt_checkoutby" /> <field tablename="" fieldname="lt_checkoutdate" /> <field tablename="" fieldname="mod_date" /> </fields> <criteria> <fieldoperator fieldoperationtype="equal"> <field fieldname="lt_uid" /> <operand xmlns:q1="http://microsoft.com/wsdl/types/" xsi:type="q1:guid">20870732-12b6-48e2-acf4-94d934dfc27a</operand> </fieldoperator> </criteria> </filter>
step 2: data lookuptablestructures table (hierarchy info)
<?xml version="1.0" encoding="utf-16"?> <filter xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" filtertablename="lookuptablestructures" xmlns="http://microsoft.com/projectserver/filterschema.xsd"> <fields> <field tablename="" fieldname="lt_struct_uid" /> <field tablename="" fieldname="lt_uid" /> <field tablename="" fieldname="lt_parent_struct_uid" /> <field tablename="" fieldname="lt_struct_cookie" /> </fields> <criteria> <fieldoperator fieldoperationtype="equal"> <field fieldname="lt_uid" /> <operand xmlns:q1="http://microsoft.com/wsdl/types/" xsi:type="q1:guid">20870732-12b6-48e2-acf4-94d934dfc27a</operand> </fieldoperator> </criteria> </filter>
step 3: of values in lookup table
<?xml version="1.0" encoding="utf-16"?> <filter xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema" filtertablename="lookuptablevalues" xmlns="http://microsoft.com/projectserver/filterschema.xsd"> <fields> <field tablename="" fieldname="lt_struct_uid" /> <field tablename="" fieldname="lcid" /> <field tablename="" fieldname="lt_uid" /> <field tablename="" fieldname="lt_value_dur" /> <field tablename="" fieldname="lt_value_num" /> <field tablename="" fieldname="lt_value_dur_fmt" /> <field tablename="" fieldname="lt_value_date" /> <field tablename="" fieldname="lt_value_text" /> <field tablename="" fieldname="lt_value_phonetic" /> <field tablename="" fieldname="lt_value_full" /> <field tablename="" fieldname="lt_value_desc" /> <field tablename="" fieldname="lt_value_sort_index" /> <field tablename="" fieldname="lt_value_localized_cookie" /> </fields> <criteria> <fieldoperator fieldoperationtype="equal"> <field fieldname="lt_uid" /> <operand xmlns:q1="http://microsoft.com/wsdl/types/" xsi:type="q1:guid">20870732-12b6-48e2-acf4-94d934dfc27a</operand> </fieldoperator> </criteria> </filter>
it requires 3 separate filters data because split across 3 separate tables. in c#, calling readlookuptablesmultilang
function each of these filters , merging returned datatables.
Comments
Post a Comment