ssamikk

Как получить список пользователей

Подскажите как на java получить список пользователей заведенных в TeamCenter??

Пытаюсь вызвать сохраненный запрос, но он почему то всегда возвращает массив нулевой длины. Хотя явно указываю имя пользователя infodba.

ImanQuery queryUser = null;

		

		SavedQueryService queryService = SavedQueryService.getService(Session.getConnection());

		try

		{

			FindSavedQueriesCriteriaInput savedCriteraInput[] = new FindSavedQueriesCriteriaInput[1];

			savedCriteraInput[0] = new FindSavedQueriesCriteriaInput();

			savedCriteraInput[0].queryNames = new String[1];

			savedCriteraInput[0].queryNames[0] = "Админ - Информация о служащем";

			savedCriteraInput[0].queryType = 0;

			savedCriteraInput[0].queryDescs = new String[1];

			savedCriteraInput[0].queryDescs[0] = new String();

			FindSavedQueriesResponse savedQueries = queryService.findSavedQueries(savedCriteraInput);

			if (savedQueries.savedQueries.length < 1)

			{

				System.out.println("There are no saved queries in the system.");

				return;

			}

			queryUser = savedQueries.savedQueries[0];

			if (queryUser == null)

				return;

			

			try

			{

				DataManagementService dmService = DataManagementService.getService(Session.getConnection());

				dmService.getProperties(new ModelObject[]{queryUser}, new String[]{"query_name"});

				System.out.println(queryUser.get_query_name());

				IniLoader iniLoader = new IniLoader();

				SavedQueryInput savedQueryInput[] = new SavedQueryInput[1];

				savedQueryInput[0] = new SavedQueryInput();

				savedQueryInput[0].query = queryUser;

				savedQueryInput[0].maxNumToReturn = 999999999;

				savedQueryInput[0].limitListCount = 0;

				savedQueryInput[0].resultsType = 0;

				savedQueryInput[0].limitList = new ModelObject[0];

				savedQueryInput[0].entries = new String[]{"PersonName", "UserId"};

				savedQueryInput[0].values = new String[]{"infodba", "infodba"};

				savedQueryInput[0].maxNumToInflate = 999999999;

				

				ExecuteSavedQueriesResponse savedQueryResult = queryService.executeSavedQueries(savedQueryInput);

				SavedQueryResults found = savedQueryResult.arrayOfResults[0];

				System.out.println("Found user:");

				ModelObject[] objects = found.objects;

				if(objects == null)

					return;

				System.out.println("objects.length"+objects.length);

			}

			catch (Exception e)

			{

				System.out.println("ExecuteSavedQuery service request failed.");

				System.out.println(e.getMessage());

				return;

			}

		}

		catch (ServiceException e)

		{

			System.out.println("GetSavedQueries service request failed.");

			System.out.println(e.getMessage());

			return;

		}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах


IMANComponentUserType userType = (IMANComponentUserType)session.getTypeComponent("User");

IMANComponentUser[] users = userType.extent;

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

IMANComponentUserType userType = (IMANComponentUserType)session.getTypeComponent("User");

IMANComponentUser[] users = userType.extent;

Забыл уточнить. Мое приложение будет работать отдельно от толстого клиента. На сколько я понимаю приведенный выше код для клиента и отдельно от него он работать не будет.

В идеале использовать запросы, но вот только не пойму почему данный запрос всегда возвращает пустой список.

Не разобрался до конца, но все заработало после переименования критериев поиска.

Изменено пользователем ssamikk

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Этот метод работает хоть где, где есть библиотеки толстого клиента. Как интересно приложение будет работать без библиотек толстого клиента? Хочется с запросами возиться - пожалуйста!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я возможно просто заблуждаюсь конечно.

Попробую ваш способ прикрутить.

Спасибо за наводку

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вопрос по:

savedQueryInput[0].entries = new String[]{"PersonName", "UserId"};

Как узнать эти самые entires для сохранённого запроса?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Другой вопрос: как сюда

savedQueryInput[0].values = new String[]

передать дату?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сам и отвечу:

String[] values = new String[]{"01-Oct-2017 00:00:00"};

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу