--- /dev/null
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+
+import org.ow2.bonita.facade.exception.InstanceNotFoundException;
+import org.ow2.bonita.facade.uuid.ProcessInstanceUUID;
+import org.ow2.bonita.facade.runtime.ProcessInstance;
+import org.springframework.context.ApplicationContext;
+
+import com.pentila.evalcomp.dao.IScenarioInstanceDAO;
+import com.pentila.evalcomp.dao.IEvaluationSubjectInstanceDAO;
+import com.pentila.evalcomp.domain.definition.Property;
+import com.pentila.evalcomp.domain.instance.ScenarioInstance;
+import com.pentila.evalcomp.domain.instance.EvaluationSubjectInstance;
+import com.pentila.evalcomp.manager.Beans;
+import com.pentila.evalcomp.manager.interfacedef.IInstanceBase;
+import com.pentila.evalcomp.workflow.engine.Engine;
+
+println "Update data EvaluationSubjectInstances (V1.48 -> V1.49) ..."
+
+// "input" est l'entrée qui donne le BeanUtil.
+// de la, on obtient le ApplicationContext
+def ac = input.getApplicationContext();
+
+IScenarioInstanceDAO scenarioInstanceDAO = (IScenarioInstanceDAO)ac.getBean("scenarioInstanceDAO");
+IEvaluationSubjectInstanceDAO esiDAO = (IEvaluationSubjectInstanceDAO)ac.getBean("evaluationSubjectInstanceDAO");
+
+Set<ScenarioInstance> ssi = scenarioInstanceDAO.getAll();
+
+Set<String> puuids = new HashSet<String>();
+
+Map<String, ScenarioInstance> mapSI = new HashMap<String, ScenarioInstance>();
+
+for (ScenarioInstance si : ssi){
+ puuids.add(si.getProcessInstanceId());
+ mapSI.put(si.getProcessInstanceId(), si);
+}
+
+Engine engine = (Engine)ac.getBean("engine");
+
+IInstanceBase instanceManager = (IInstanceBase)ac.getBean("instanceManager");
+
+Set<ProcessInstance> spi = engine.getAPI().getQueryRuntimeAPI().getProcessInstances();
+
+Map<String, String> mapProcess = new HashMap<String, String>();
+
+for (ProcessInstance pi : spi){
+ mapProcess.put(pi.getUUID().toString(), "");
+}
+
+println "Nombre de Process Bonita : " + mapProcess.size();
+
+Set<String> echo = new HashSet<String>(puuids);
+
+echo.removeAll(mapProcess.keySet());
+
+puuids.removeAll(echo);
+
+int size = puuids.size();
+
+println "Nombre effectif de traitement : " + size;
+
+
+int ii = 0;
+
+int currentPart = 0;
+
+for (String puuid : puuids){
+
+
+
+ try {
+ Map<String, Object> map = engine.getAPI().getQueryRuntimeAPI().getProcessInstanceVariables(new ProcessInstanceUUID(puuid));
+
+ if (map != null){
+
+ String folder_name = null;
+ String folder_desc = null;
+
+ for (Entry<String, Object> entry : map.entrySet()){
+
+ try{
+ String name = entry.getKey();
+
+ //logger.info("Property name = " + name);
+
+
+ String value = (String)entry.getValue();
+
+ if (name.equals("VARIABLE_folder_name")){
+ folder_name = value;
+ }else if (name.equals("VARIABLE_folder_description")){
+ folder_desc = value;
+ }
+
+
+
+ }catch (Exception e){
+ }
+
+
+
+
+
+
+ }
+ if (folder_name != null || folder_desc != null){
+ ScenarioInstance SIObj = mapSI.get(puuid);
+
+ EvaluationSubjectInstance esi = esiDAO.get(SIObj.getEvaluationSubjectInstance().getId());
+
+ esi.setName(folder_name);
+ esi.setDescription(folder_desc);
+
+ esiDAO.saveOrUpdate(esi);
+ }
+
+ }
+ } catch (InstanceNotFoundException e) {
+ //e.printStackTrace();
+ }
+ int part = (ii * 100) / size;
+
+ if (part != currentPart){
+ currentPart = part;
+ println "Effectué : " + currentPart + "%";
+ }
+ ii++;
+}
+println "Update done."
\ No newline at end of file