You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

114 lines
3.7 KiB

//==================================================
//
// @<COPYRIGHT>@
//
//==================================================
using System;
using Teamcenter.ClientX;
using Teamcenter.Schemas.Soa._2006_03.Exceptions;
using Teamcenter.Soa.Client.Model;
//Include the Saved Query Service Interface
using Teamcenter.Services.Strong.Query;
// Input and output structures for the service operations
// Note: the different namespace from the service interface
using Teamcenter.Services.Strong.Query._2006_03.SavedQuery;
using ImanQuery = Teamcenter.Soa.Client.Model.Strong.ImanQuery;
namespace Teamcenter.Hello
{
public class Query
{
/**
* Perform a simple query of the database
*
*/
public ModelObject[] queryComponent(string queryName, string[] queryProps, string[] queryValues)
{
ImanQuery query = null;
// Get the service stub
SavedQueryService queryService = SavedQueryService.getService(Session.getConnection());
Teamcenter.Services.Strong.Query._2007_06.SavedQuery.SavedQueryResults found;
try
{
// *****************************
// Execute the service operation
// *****************************
GetSavedQueriesResponse savedQueries = queryService.GetSavedQueries();
if (savedQueries.Queries.Length == 0)
{
Console.Out.WriteLine("There are no saved queries in the system.");
return null;
}
// Find one called 'Item Name'
for (int i = 0; i < savedQueries.Queries.Length; i++)
{
if (savedQueries.Queries[i].Name.Equals(queryName))
{
query = savedQueries.Queries[i].Query;
break;
}
}
}
catch (ServiceException e)
{
Console.Out.WriteLine("GetSavedQueries service request failed.");
Console.Out.WriteLine(e.Message);
return null;
}
if (query == null)
{
Console.WriteLine("There is not an 'Item Name' query.");
return null;
}
try
{
// Search for all Items, returning a maximum of 25 objects
Teamcenter.Services.Strong.Query._2007_06.SavedQuery.SavedQueryInput[] savedQueryInput = new Teamcenter.Services.Strong.Query._2007_06.SavedQuery.SavedQueryInput[1];
savedQueryInput[0] = new Teamcenter.Services.Strong.Query._2007_06.SavedQuery.SavedQueryInput();
savedQueryInput[0].Query = query;
savedQueryInput[0].MaxNumToReturn = 25;
savedQueryInput[0].LimitListCount = 0;
savedQueryInput[0].LimitList = new Teamcenter.Soa.Client.Model.ModelObject[0];
savedQueryInput[0].Entries = queryProps;
savedQueryInput[0].Values = queryValues;
savedQueryInput[0].MaxNumToInflate = 25;
//*****************************
//Execute the service operation
//*****************************
Teamcenter.Services.Strong.Query._2007_06.SavedQuery.ExecuteSavedQueriesResponse savedQueryResult = queryService.ExecuteSavedQueries(savedQueryInput);
found = savedQueryResult.ArrayOfResults[0];
System.Console.Out.WriteLine("Found object:");
Teamcenter.ClientX.Session.printObjects( found.Objects );
}
catch (ServiceException e)
{
Console.Out.WriteLine("ExecuteSavedQuery service request failed.");
Console.Out.WriteLine(e.Message);
return null;
}
return found.Objects;
}
}
}