Skip to main content
11-Garnet
August 16, 2023
Solved

Pushing a Saved Search out to Users from the Admin in Windchill 12.1

  • August 16, 2023
  • 2 replies
  • 1325 views

Does anyone know of a way to push out a saved search to users without them having to show the search?

 

Best answer by mmeadows-3

Hi Todd,

We can set administratively created searches to show by default using LoadFromFile.  It just isn't documented/supported by PTC, and it is a bit convoluted and tedious.  Validate this technique in a non-production environment first.

 

Pre-requisite: Saved searches must be created by an administrator and exposed as a global search to make them visible to the appropriate users.
 
For each user, we need to know what saved searches they already have and the identity of the new saved search.  This DB query lists saved search creators, the search names, and their idA2A2 values.

 

 

select wt.fullName as 'Search Creator', sq.name as 'Search Name', sq.idA2A2 as 'csvvalue' from WTUser wt, SavedQuery sq where wt.idA2A2=sq.idA3A4;

 

 
Note: If there are a lot of users, the above query can be expanded to write the out the loadFromFile syntax below, adding the new saved search to the beginning or end of the list.
 
Exposed Saved Searches are defined by a personal preference.  Use a load file (userSavedSearches.csv) to mass update the saved searches preference.

 

 

# Load preference instance for saved search
#PreferenceInstance~create~wt.preference.LoadPreference.createPreferenceInstance~name~containerClass~containerName~organization~parentContainerPath~user~clientName~value~lock~lockOnly
#PreferenceInstance,name,containerClass,containerName,organization,parentContainerPath,user,clientName,value,lock,lockOnly
#PreferenceInstance,{preference internal name},,,,,{username},WINDCHILL,{pipe separated list of saved search idA2A2 values, see above notes},,
PreferenceInstance,/com/ptc/windchill/enterprise/search/savedSearches,,,,,mjones,WINDCHILL,1076740|67628,,

 

 

Convert to load file:
windchill wt.load.util.CSV2XML -input userSavedSearches.csv -root D:\PTC\wtSchema\SavedSearches
 
Resultant XML file (required fields)

 

 

<?xml version="1.0" ?><!DOCTYPE NmLoader SYSTEM "standardX26.dtd">
<NmLoader>
<csvPreferenceInstance handler="wt.preference.LoadPreference.createPreferenceInstance" >
 <csvname>/com/ptc/windchill/enterprise/search/savedSearches</csvname>
 <csvuser>mjones</csvuser>
 <csvclientName>WINDCHILL</csvclientName>
 <csvvalue>1076740,67628</csvvalue>
</csvPreferenceInstance>
</NmLoader>

 

 
Replace pipe with comma before loading:
windchill wt.load.LoadFromFile -d D:\PTC\wtSchema\SavedSearches\userSavedSearches.xml -u wcadmin -p wcadmin
 
Note: Must close browser and log in as use to refresh saved search display.

2 replies

17-Peridot
August 16, 2023
16-Pearl
August 21, 2023

Hi Todd,

We can set administratively created searches to show by default using LoadFromFile.  It just isn't documented/supported by PTC, and it is a bit convoluted and tedious.  Validate this technique in a non-production environment first.

 

Pre-requisite: Saved searches must be created by an administrator and exposed as a global search to make them visible to the appropriate users.
 
For each user, we need to know what saved searches they already have and the identity of the new saved search.  This DB query lists saved search creators, the search names, and their idA2A2 values.

 

 

select wt.fullName as 'Search Creator', sq.name as 'Search Name', sq.idA2A2 as 'csvvalue' from WTUser wt, SavedQuery sq where wt.idA2A2=sq.idA3A4;

 

 
Note: If there are a lot of users, the above query can be expanded to write the out the loadFromFile syntax below, adding the new saved search to the beginning or end of the list.
 
Exposed Saved Searches are defined by a personal preference.  Use a load file (userSavedSearches.csv) to mass update the saved searches preference.

 

 

# Load preference instance for saved search
#PreferenceInstance~create~wt.preference.LoadPreference.createPreferenceInstance~name~containerClass~containerName~organization~parentContainerPath~user~clientName~value~lock~lockOnly
#PreferenceInstance,name,containerClass,containerName,organization,parentContainerPath,user,clientName,value,lock,lockOnly
#PreferenceInstance,{preference internal name},,,,,{username},WINDCHILL,{pipe separated list of saved search idA2A2 values, see above notes},,
PreferenceInstance,/com/ptc/windchill/enterprise/search/savedSearches,,,,,mjones,WINDCHILL,1076740|67628,,

 

 

Convert to load file:
windchill wt.load.util.CSV2XML -input userSavedSearches.csv -root D:\PTC\wtSchema\SavedSearches
 
Resultant XML file (required fields)

 

 

<?xml version="1.0" ?><!DOCTYPE NmLoader SYSTEM "standardX26.dtd">
<NmLoader>
<csvPreferenceInstance handler="wt.preference.LoadPreference.createPreferenceInstance" >
 <csvname>/com/ptc/windchill/enterprise/search/savedSearches</csvname>
 <csvuser>mjones</csvuser>
 <csvclientName>WINDCHILL</csvclientName>
 <csvvalue>1076740,67628</csvvalue>
</csvPreferenceInstance>
</NmLoader>

 

 
Replace pipe with comma before loading:
windchill wt.load.LoadFromFile -d D:\PTC\wtSchema\SavedSearches\userSavedSearches.xml -u wcadmin -p wcadmin
 
Note: Must close browser and log in as use to refresh saved search display.