J’aimerais lors de l’import en xml supprimer toutes les valeurs du PlateformNode pour ensuite ajouter les miennes. J’ai déjà vu avec le if=existes sur l’action tag néanmoins ça me force à mettre en dur toutes les plateformesNodes.
Donc est ce qu’il y a un moyen de toutes les delete lors de l’import?
Pouvez-vous nous en dire un peu plus sur votre besoin / process ?
De quel import parlez-vous et pour quelles raisons souhaitez vous supprimer toutes les valeurs de PlatformNode ?
Sauf qu’étant donné que nous plaquons un dump sur notre conso il reste encore les restes de configuration de la PROD donc nous souhaitons supprimer tous les PlatformNode de la PROD lorsque nous importons le fichier de conf de la conso.
Pour mettre à jour / supprimer des éléments via import XML il faut forcément fournir la clé fonctionnelle du record à modifier. En l’occurrence la clé fonctionnelle de PlatformNode est son seul champ ptf_endpoint. Sans spécifier les différents éléments à supprimer, vous ne pourrez pas le faire via le fichier XML uniquement.
Je vous conseille donc de passer par un adapter spécifique qui hérite de SAXImportXML :
Vous pourrez y implémenter le hook preProcess par exemple :
public class MyCustomAdapter extends SAXImportXML {
private static final long serialVersionUID = 1L;
@Override
public String preProcess() {
ObjectDB platformNode = getGrant().getIsolatedObject("PlatformNode");
platformNode.search().forEach(vals -> {
platformNode.setValues(vals);
platformNode.delete();
});
return super.preProcess();
}
}
Il faudra sélectionner cet adapter dans la liste déroulante “Utiliser l’adapteur” avant de faire l’import.
L’import XML fonctionne bien pour notre besoin, nous modifions certains paramètres systèmes ainsi que les nœuds. Vous me confirmez donc qu’il n’est pas possible, via un import XML classique, de supprimer un nœud sans en connaitre son nom ? Un peu comme cela :
PlatformNode
delete
*
La création d’un adapter me semble lourd simplement pour cette problématique.
Vous serez donc obligés de passer par une implémentation spécifique. Soit via un adapter comme spécifié plus haut, soit via l’appel d’une action associée à un objet dans le fichier XML importé :