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 esperienza Java.
È possibile inserire un elemento informativo esistente in una struttura ricambi facendo clic su Inserisci esistente > Inserisci elemento informativo esistente. 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");
}
}
}
È stato utile?