TPAE 7.5 a introduit un joli contrôle Rich éditeur de texte pour l’édition et le formatage du champ longue description. Cela est valable pour Maximo et le SmartCloud Control Desk à partir de la version 7.5.
Cette fonction est très bien dans certains cas, mais peut causer des problèmes…
Pour les scénarios d’intégration où les données Maximo, y compris les champs de longue description, sont envoyés à une application externe, il peut être nécessaire de dépouiller le contrôle Rich Text dans le champ de longue description. Ce cas se posera lorsque le système consommateur ne peut pas traiter les données XML qui contient des balises riche texte.
Pour enlever les balises <– RICH TEXT –> , vous pouvez mettre en œuvre le code java suivant dans la classe de définition de la structure de l’objet qui traite le message à envoyer. Notez que ce même code peut être fait à partir de la sortie de l’utilisateur aussi.
Si la structure de l’objet a déjà une classe de définition, cette nouvelle classe doit étendre la classe existante. Si aucune classe de définition existe sur la structure de l’objet alors cette classe doit étendre psdi.iface.mic.MicSetOut.
Classe Java :
package psdi.iface.mos; import java.rmi.RemoteException; import java.util.Map; import psdi.iface.mic.MicSetOut; import psdi.mbo.MboRemote; import psdi.util.MXException; public class RichTextDefnImpl extends MicSetOut { public RichTextDefnImpl() throws MXException, RemoteException { super(); // TODO Auto-generated constructor stub } public int checkBusinessRules(MboRemote mbo, MosDetailInfo mosDetIn-fo, Map<String, Object> ovrdColValueMap) throws MXException, RemoteException { if(((psdi.mbo.Mbo)mbo).getThisMboSet().getMboSetInfo().getMboValueInfo("description_longdescription") != null) { try { javax.swing.text.html.HTMLEditorKit kit = new ja-vax.swing.text.html.HTMLEditorKit(); javax.swing.text.html.HTMLDocument styledDocument = new javax.swing.text.html.HTMLDocument(); java.io.StringReader reader = new ja-va.io.StringReader(mbo.getString("description_longdescription")); kit.read(reader,styledDocument,0); ovrdColValueMap.put("description_longdescription", styledDocument.getText(0,styledDocument.getLength())); } catch(Exception e) { e.printStackTrace(); } } return MosConstants.PROCESS; } }
La classe de définition de la structure de l’objet , doit être compilé et intégrée dans le fichier EAR d’application (reconstruire et redéployer le fichier EAR).