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 Vorhandenes Objekt einfügen > Vorhandenes Informationselement einfügen 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. Erstellen Sie eine benutzerdefinierte xconf-Datei, und fügen Sie die erforderliche Dienstklasse in diesem 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. Organisieren Sie die Änderungen mit CCD und stellen Sie sie bereit. Weitere Informationen finden Sie unter Eigenschaftswerte einstellen und Änderungen propagieren. Informationen zur Erstellung einer modularen Dateistruktur für Windchill+ finden Sie in diesem Beispiel:Installing or Enabling Configurable Links with New Custom Subtyped Configurable Links Example.
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");
}
}
}
War dies hilfreich?