title: Need to create tql queries
body: <p>I need to create TQL queries to query out sets of data from the UCMDB.<br>
  I am having 2 problems:</p>
  
  <p>1) How can I find relationships which exists between CIs ( i do not have administrative privileges so need to do it in code somehow)
  I need this to get required data.</p>
  
  <p>2) I have created the following query: But I keep getting the IP property value as null.
  I checked that IP has an attribute called <code>ip_address</code>.<br>
  Code:</p>
  
  <pre><code>import com.hp.ucmdb.api.types.TopologyRelation;
  
  public class Main {
  
      public static void main(String[] args)throws Exception {
       final String HOST_NAME = "192.168.159.132";
       final int PORT = 8080; 
  
       UcmdbServiceProvider provider = UcmdbServiceFactory.getServiceProvider(HOST_NAME, PORT);
  
       final String USERNAME = "username";
  
       final String PASSWORD = "password";
  
       Credentials credentials = provider.createCredentials(USERNAME, PASSWORD);
  
       ClientContext clientContext = provider.createClientContext("Test");
       UcmdbService ucmdbService = provider.connect(credentials, clientContext);
  
       TopologyQueryService queryService = ucmdbService.getTopologyQueryService();
  
       Topology topology = queryService.executeNamedQuery("Host IP");
  
       Collection&lt;TopologyCI&gt; hosts = topology.getAllCIs(); 
  
       for (TopologyCI host : hosts) { 
  
  
        for (TopologyRelation relation : host.getOutgoingRelations()) { 
         System.out.print("Host " + host.getPropertyValue("display_label")); 
         System.out.println (" has IP " + relation.getEnd2CI().getPropertyValue("ip_address")); 
  
        } 
       }
  
  }
  </code></pre>
  
  <p>In the above query output: I get the host names with <code>IP = null</code></p>
  
  <p>I have a sample query in JYthon which I am unable to figure out: Its for the above code only.</p>
  
  <p>Attaching it for anyone who can understand it.</p>
  
  <pre><code>import sys
  
  UCMDB_API="c:/ucmdb/api/ucmdb-api.jar"
  
  sys.path.append(UCMDB_API)
  
  from com.hp.ucmdb.api import *
  
  # 0) Connection settings
  HOST_NAME="192.168.159.132"
  PORT=8080
  
  USERNAME="username"
  PASSWORD="password"
  
  # 1) Get a Service Provider from the UcmdbServiceFactory
  provider = UcmdbServiceFactory.getServiceProvider(HOST_NAME, PORT)
  
  # 2) Setup credentials to log in
  credentials = provider.createCredentials(USERNAME, PASSWORD)
  
  # 3) Create a client context
  clientContext = provider.createClientContext("TESTING")
  
  # 4) Connect and retrieve a UcmdbService object
  ucmdbService = provider.connect(credentials, clientContext)
  
  # 5) Get the TopologyQueryService from the UcmdbService
  queryService = ucmdbService.getTopologyQueryService()
  
  # ======= Everything After this is specific to the query =======
  
  # 6) Execute a Named Query and get the Topology
  topology = queryService.executeNamedQuery('Host IP')
  
  # 7) Get the hosts
  hosts = topology.getAllCIs()
  
  # 8) Print the hosts and IPs
  host_ip = {}
  
  for host in hosts:
      host_name = host.getPropertyValue("display_label")
      if host_name in host_ip.keys():
          ips = host_ip[host_name]
      else:
          ips = {} 
          host_ip[host_name] = ips
      for relation in host.getOutgoingRelations():
          ip_address = relation.getEnd2CI().getPropertyValue("display_label")
          if ip_address in ips.keys():
              pass
          else:
              ips[ip_address] = ''
              print "%s , %s" % (host_name, ip_address)
  </code></pre>
  
  <p>Please help.</p>
  
  <p>I am unable to understand how to go about this further.</p>
  
  <p>Thank you.</p>