Effacer les valeurs d'un objet métier

Tags: #<Tag:0x00007f80fd3a7250>

Je souhaite vider toutes les valeur d’un objet métier via du code.
j’ai essayé le code ci-dessous mais cela ne fonctionne pas.

ObjectDB tab =  getGrant().getTmpObject("FondsTable");
		tab.resetFilters();
		tab.getField("FondsTableFonds").setFilter ("F700");//or FAS or GRUMBACH
		List<String[]> rows = tab.search(false);
		
				rows.clear();
						try{	
								 
							 new BusinessObjectTool(tab).validateAndSave();
									AppLog.info(getClass(), "taille liste "+rows.size() , "Apres" , null);
        
        				}catch(Exception e){
					       AppLog.warning(getClass(), "SuppressData", "Erreur suppresion  table (" + e.getMessage() + ")", e, getGrant());
						}

Pour vider les attributs d’un record courant utilisez https://docs.simplicite.io/4.0/javadoc/com/simplicite/util/ObjectCore.html#resetValues(boolean,java.lang.String) ou ses variantes

J’avoue ne pas bien comprendre ce que vous voulez faire dans votre code car vous faites une recherche et vous videz tout de suite le résultat de cette recherche… Si votre besoin est de supprimer en cascade les records liés à un record que vous supprimez il suffit de déclarer votre relation en “delete cascade”.

Si ces réponses ne correspondent pas à votre besoin, expliquez nous exactement ce que vous voulez faire.

en fait j’ai un objet métier que je dédie au rapport.
il contient la somme de tous les versements des montants attribués et des remboursements en fonction de chaque fond

ä chaque opération (versement remboursement…) je fais des requêtes de sommes des versement des remboursements etc en fonction du type de fonds puis je voudrais effacer les anciennes valeurs de la mon objet métier dédie au rapport par les nouvelles

l

Est-ce que dans ce contexte ça signifie supprimer les records puis les recréer ?

Si oui il faut faire une recherche, boucler sur les records de la recherche et pour chaque record le sélectionner puis le supprimer, genre:

ObjectDB tab =  getGrant().getTmpObject("FondsTable");
BusinessObjectTool tabt = new BusinessObjectTool(tab);
tab.resetFilters();
tab.getField("FondsTableFonds").setFilter ("F700");//or FAS or GRUMBACH
for (String[] row : tab.search(false)) {
    tab.setValues(row);
    try {
        tabt.delete();
    } catch (DeleteException e) {
        // ...
    }
}

NB: de préférence instanciez votre business object tool une seule fois au début, comme ci-dessus

Merci David!!
Génial c’est exactement ce qu’il me fallait.