You can use the find operation to find objects of any type that match a particular search criterion, that you set in the query parameter.

Before you begin

You must have created a connection to the Orchestrator Web services endpoint in your Web service client application class.

About this task

The vso.xml file of the plug-in through which you access the object defines the syntax of the query parameter.

Procedure

  1. Create a QueryResult object by calling the find operation on an object.

    The following code example shows how an application can call the find operation to find out how many virtual machines are accessible by a particular user through the vCenter Server plug-in.

    QueryResult queryResult = vsoWebControl.find("VC:VirtualMachine", null, 
                        <username>, <password>);
                if (queryResult != null) {
                    System.out.println("Found " + queryResult.getTotalCount() + 
                        " objs.");
                    FinderResult[] elts = queryResult.getElements();
                    finderResult = elts[0];
                    displayFinderResult(finderResult);
                }
                else {
                    System.out.println("Found nothing");
                }
    

    According to the query syntax defined by the vCenter Server plug-in, setting the query parameter to null returns the list of all of the objects of the type specified by the first parameter. The preceding code example performs the following tasks.

    • Gets the list of any VC:VirtualMachine objects in the library.

    • Calls the QueryResult object's getTotalCount operation to obtain the total number of VC:VirtualMachine objects found and print the value.

    • Calls the QueryResult object's getElements operation to obtain the details of the objects found as an array of FinderResult objects.

    • Passes the array of FinderResult objects to the internal method displayFinderResult, which extracts the information.

  2. Extract the results from a FinderResult object.

    To show, interpret, or process the results in the FinderResult objects that the find operation returns, you must convey these results to the Web service application.

    The following example shows how to extract the results returned in a FinderResult object.

    public static void displayFinderResult(FinderResult finderResult) {
      if (finderResult != null) {
        System.out.println("Finder result is of type '" 
          + finderResult.getType() 
          + "', id '" + finderResult.getId() 
          + "' and uri '" 
          + finderResult.getDunesUri() + "'");
        System.out.println("And has properties :");
        Property[] props = finderResult.getProperties();
        if (props != null) {
          for (int ii = 0; ii < props.length; ii++) {
              System.out.println("\t" + props[ii].getName() + "=" 
                + props[ii].getValue());
          }
        }
      }
    

    The example defines an internal method, displayFinderResult, which takes a FinderResult object and obtains and shows its type, ID, the URI at which it is located, and its properties. You can use the URI to set arguments when starting or answering workflows. The getType, getId, getProperties and getDunesUri methods are defined by the FinderResult object.

Results

You found objects in the Orchestrator server that the Web service client can access and run workflows upon.

What to do next

Implement Web service operations in the client application to find workflows in the Orchestrator server.