Hook personalizzato per limitare i criteri di ricerca per gli elementi informativi
La personalizzazione per limitare i criteri di ricerca utilizzando l'hook può essere eseguita solo da un amministratore Windchill con conoscenze specifiche di Java.
È possibile inserire un elemento informativo esistente in una struttura ricambi facendo clic su > . Nella finestra Inserisci elemento informativo esistente che si apre sono elencati tutti gli elementi informativi in base ai criteri di ricerca specificati. L'hook personalizzato può essere utilizzato per limitare i criteri di ricerca e visualizzare solo gli elementi informativi obbligatori. I criteri di ricerca si basano sulla logica aziendale specificata nell'hook.
Per implementare l'hook, estendere la classe Java com.ptc.arbortext.windchill.corestruct.server.ops.SIMCustomSearchCriteriaService nella classe servizio personalizzata. Attenersi alla procedura descritta di seguito.
1. Nella home directory di Windchill, aprire il file site.xconf in un editor di testo e aggiungere la classe servizio richiesta in formato <Option serviceClass="YourCustomSearchServiceClassFullName" requestor="null" selector="null"/>. Ad esempio:
<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. Propagare le modifiche utilizzando l'utilità xconfmanager. Dalla directory <Windchill>\bin digitare il seguente comando:
xconfmanager -pF.
3. Riavviare il method server.
Esempio
Di seguito è riportato un esempio di codice personalizzato che consente di limitare i criteri di ricerca per visualizzare solo i risultati della ricerca per gli elementi informativi nello stato rilasciato.
/* 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");
}
}
}