Benutzerdefinierter Hook, um Suchkriterien für Informationselemente einzuschränken
Die Anpassung zum Einschränken von Suchkriterien mithilfe des Hooks kann nur von einem Windchill Administrator mit Java-Kenntnissen ausgeführt werden.
Sie können ein vorhandenes Informationselement in eine Servicestruktur einfügen, indem Sie auf > klicken. Daraufhin wird das Fenster Vorhandenes Informationselement einfügen geöffnet, in dem alle Informationselemente basierend auf den angegebenen Suchkriterien aufgelistet werden. Der benutzerdefinierte Hook kann verwendet werden, um die Suchkriterien einzuschränken, damit nur erforderliche Informationselemente angezeigt werden. Die Suchkriterien basieren auf der im Hook angegebenen Geschäftslogik.
Erweitern Sie die Java-Klasse com.ptc.arbortext.windchill.corestruct.server.ops.SIMCustomSearchCriteriaService in der benutzerdefinierten Dienstklasse, um diesen Hook zu implementieren. Führen Sie die folgenden Schritte aus:
1. Öffnen Sie im Windchill Basisverzeichnis die Datei site.xconf in einem Texteditor, und fügen Sie die erforderliche Dienstklasse im Format <Option serviceClass="YourCustomSearchServiceClassFullName" requestor="null" selector="null"/> hinzu. Beispiel:
<Service name="com.ptc.arbortext.windchill.corestruct.server.ops.SIMCustomSearchCriteriaService" targetFile="codebase/service.properties">
<Option serviceClass="com.ptc.arbortext.windchill.corestruct.server.ops.CustomASPSSearchService" requestor="null" selector="null"/>
</Service>
2. Übertragen Sie die Änderungen mit dem Dienstprogramm "xconfmanager". Geben Sie im Verzeichnis <Windchill>\bin den folgenden Befehl ein:
xconfmanager -pF.
3. Starten Sie den Methodenserver neu.
Muster
Nachfolgend sehen Sie ein Beispiel für den benutzerdefinierten Code, um die Suchkriterien so einzuschränken, dass nur Suchergebnisse für Informationselemente angezeigt werden, die im Status "Freigegeben" sind.
/* bcwti
*
* Copyright (c) 2021 PTC, Inc. All Rights Reserved.
*
* This software is the confidential and proprietary information of PTC
* and is subject to the terms of a software license agreement.
* You shall not disclose such confidential information and shall use it
* only in accordance with the terms of the license agreement.
*
* ecwti
*/
package com.ptc.arbortext.windchill.corestruct.server.ops;
import com.ptc.arbortext.windchill.corestruct.client.ops.ASPSFindOperation.ASPSFindOperationParams;
import wt.fc.ObjectIdentifier;
import wt.fc.ObjectReference;
import wt.fc.Persistable;
import wt.inf.container.WTContained;
import wt.util.WTException;
public class CustomASPSSearchService implements SIMCustomSearchCriteriaService {
private static final long serialVersionUID = 1L;
@Override
public void updateSearchCriteria(ASPSFindOperationParams fop) throws WTException {
Persistable contextObject = ObjectReference.newObjectReference(ObjectIdentifier.newObjectIdentifier(fop.getRootIdentifier().getStringIdentifer())).getObject();
if (contextObject != null && contextObject instanceof WTContained) {
fop.getSearchCriteriaList().get(0).set("state.state", "RELEASED");
}
}
}