Yes it is possible i even have specification for this sadly it is part of project documentation and it is in Lithuanian.
Anyway here are the general steps that we have used
1. get scoreboard for selected role:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://www.ca.com/UnicenterServicePlus/ServiceDesk">
<soapenv:Header/>
<soapenv:Body>
<ser:doQuery>
<sid>1306509759</sid>
<objectType>usq</objectType>
<whereClause>role_persid = 'role:10005'</whereClause>
</ser:doQuery>
</soapenv:Body>
</soapenv:Envelope>
This will return scoreboard record count for the role and list handle for the next query
2. Get query information:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://www.ca.com/UnicenterServicePlus/ServiceDesk">
<soapenv:Header/>
<soapenv:Body>
<ser:getListValues>
<sid>545350839</sid>
<listHandle>-1269864422</listHandle>
<startIndex>0</startIndex>
<endIndex>3</endIndex>
<attributeNames>
<!--1 or more repetitions:-->
<string>parent</string>
<string>sequence</string>
<string>query.label</string>
<string>query.where_clause</string>
<string>query.obj_type</string>
</attributeNames>
</ser:getListValues>
</soapenv:Body>
</soapenv:Envelope>
Parent will be equal to 0 if it is top node, so this attribute will allow you to build hierarchy
for each node you will get something like this:
<UDSObject>
<Handle>usq:14008</Handle>
<Attributes>
<Attribute DataType="2005">
<AttrName>parent</AttrName>
<AttrValue>0</AttrValue>
</Attribute>
<Attribute DataType="2001">
<AttrName>sequence</AttrName>
<AttrValue>260</AttrValue>
</Attribute>
<Attribute DataType="2002">
<AttrName>query.label</AttrName>
<AttrValue>My Closed Incidents</AttrValue>
</Attribute>
<Attribute DataType="2002">
<AttrName>query.where_clause</AttrName>
<AttrValue>customer = @cnt.id AND (active = 0 OR status=\'CLREQ\') AND type = \'I\'</AttrValue>
</Attribute>
<Attribute DataType="2005">
<AttrName>query.obj_type</AttrName>
<AttrValue>cr</AttrValue>
</Attribute>
</Attributes>
</UDSObject>
Now you will need to do some manipulation for where_clause
1. You need to substitute @cnt.atribute_name with every possible cnt attribute value (e.g @cnt.id should be substituted to logged in user id @cnt.last_name with logged in user last name) if you wan't to avoid hardcoding you will need few more webservices queries to get all possible cnt attributes and their values (I will not cover this part). It is even more complex if you will need to handle expressions like @cnt.location.name (but I think even this is possible)
2. You should remove escape characters \ (e.g. status=\'CLREQ\' transform to status='CLREQ'
Now you are ready create scoreboard tree and get values for the nodes. To get ticket list for selected node you will need to use the following query
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://www.ca.com/UnicenterServicePlus/ServiceDesk">
<soapenv:Header/>
<soapenv:Body>
<ser:doQuery>
<sid>1306509759</sid>
<objectType>cr</objectType>
<whereClause>customer = U'6B23356F23E9BD4EA5A1046BA194503E' AND active = 1 AND status != 'CLREQ' AND type = 'I'</whereClause>
</ser:doQuery>
</soapenv:Body>
</soapenv:Envelope>
Have Fun