1 2 import java.io.OutputStream; 3 import java.io.RandomAccessFile; 4 import java.util.Iterator; 5 import java.util.Map; 6 import java.util.Set; 7 8 import org.apache.log4j.Logger; 9 10 import com.documentum.com.DfClientX; 11 import com.documentum.com.IDfClientX; 12 import com.documentum.fc.client.DfClient; 13 import com.documentum.fc.client.DfQuery; 14 import com.documentum.fc.client.IDfClient; 15 import com.documentum.fc.client.IDfCollection; 16 import com.documentum.fc.client.IDfSession; 17 import com.documentum.fc.client.IDfSessionManager; 18 import com.documentum.fc.client.IDfSysObject; 19 import com.documentum.fc.client.IDfWorkitem; 20 import com.documentum.fc.common.DfException; 21 import com.documentum.fc.common.DfId; 22 import com.documentum.fc.common.DfLoginInfo; 23 import com.documentum.fc.common.IDfId; 24 import com.documentum.fc.common.IDfLoginInfo; 25 import com.documentum.mthdservlet.IDmMethod; 26 import com.documentum.operations.*; 27 28 public class MoverContenidosViejos 29 implements IDmMethod 30 { 31 32 public MoverContenidosViejos() 33 { 34 m_domain = null; 35 m_jobid = null; 36 m_mtl = "0"; 37 m_ticket = null; 38 m_File = null; 39 _session = null; 40 } 41 42 private void MoverContenidos() 43 throws Exception 44 { 45 System.out.println("MoverContenidosViejos, inicio"); 46 47 try 48 { 49 String seccion=null; 50 String apartado=null; 51 String subapartado=null; 52 String Idcontenido =null; 53 String carpetaDestino=null; 54 IDfClientX clientx =null; 55 IDfId myId = null; 56 IDfSysObject contenido =null; 57 58 //Carpeta Origen 59 60 String carpetaOrigen=null; 61 62 //Ejecutamos la query para sacar los contenidos de la carpeta origen 63 64 DfQuery queryCont = new DfQuery(); 65 queryCont.setDQL(DQLContenidosprueba); 66 System.out.println("MoverContenidosViejos, query: " + queryCont.getDQL()); 67 IDfCollection idfc = queryCont.execute(_session, 0); 68 69 while (idfc.next()) 70 71 { 72 m_log.debug("MoverContenidosViejos. Obtengo los contenidos: "); 73 74 //Obtenemos los datos del contenido 75 76 Idcontenido = idfc.getString("r_object_id"); 77 78 //Creamos el contenido como un objeto 79 80 81 System.out.println("MoverContenidosViejos, Creamos el objeto contenido y la carpeta destino."); 82 clientx = new DfClientX(); 83 myId = clientx.getId(Idcontenido); 84 System.out.println("MoverContenidosViejos, myId: "+ myId); 85 contenido = (IDfSysObject)_session.getObject(myId); 86 87 //Creamos la carpeta destino 88 89 90 //Movemos el contenido de una carpeta a otra 91 92 93 carpetaOrigen="/MoverContenido/Origen"; 94 carpetaDestino="/MoverContenido/Destino"; 95 System.out.println("MoverContenidosViejos, Carpeta destino: "+ carpetaDestino); 96 System.out.println("MoverContenidosViejos, Carpeta origen: "+ carpetaOrigen); 97 contenido.unlink(carpetaOrigen); 98 contenido.link(carpetaDestino); 99 contenido.save(); 100 101 102 } 103 104 System.out.println("MoverContenidosViejos, cerrar collection"); 105 idfc.close(); 106 107 108 } 109 catch(Exception e) 110 { 111 System.out.println("MoverContenidosViejos, error" + e.getMessage()); 112 m_log.error("MoverContenidosViejos: " + e.getMessage()); 113 } 114 } 115 116 117 protected IDfSessionManager login() 118 throws DfException 119 { 120 System.out.println("MoverContenidosViejos- login: inicio"); 121 PassDocbase = "demo.demo"; 122 if(docbaseName == null || UserDocbase == null || PassDocbase == null) 123 { 124 System.out.println("MoverContenidosViejos- login: falten dades per iniciar la sesio"); 125 m_log.error("MoverContenidosViejos - login: falten dades per iniciar la sesio."); 126 return null; 127 } 128 IDfClient dfClient = DfClient.getLocalClient(); 129 if(dfClient != null) 130 { 131 IDfLoginInfo li = new DfLoginInfo(); 132 li.setUser(UserDocbase); 133 li.setPassword(PassDocbase); 134 li.setDomain(m_domain); 135 IDfSessionManager sessionMgr = dfClient.newSessionManager(); 136 sessionMgr.setIdentity(docbaseName, li); 137 System.out.println("MoverContenidosViejos - login: fin"); 138 return sessionMgr; 139 } else 140 { 141 System.out.println("MoverContenidosViejos- login: error2"); 142 System.out.println("MoverContenidosViejos - login: No se ha podido iniciar el cliente local de documentum"); 143 return null; 144 } 145 } 146 147 protected void initWorkflowParams(Map params) 148 { 149 m_log.info("MoverContenidosViejos - initWorkflowParams: inicio"); 150 Set keys = params.keySet(); 151 for(Iterator iter = keys.iterator(); iter.hasNext();) 152 { 153 String key = (String)iter.next(); 154 m_log.debug("MoverContenidosViejos - initWorkflowParams: " + key); 155 if(key != null && key.length() != 0) 156 { 157 String value[] = (String[])params.get(key); 158 m_log.debug("MoverContenidosViejos - initWorkflowParams: valor[]: " + value); 159 if(key.equalsIgnoreCase("user_name")) 160 UserDocbase = value.length <= 0 ? "" : value[0]; 161 else 162 if(key.equalsIgnoreCase("docbase_name")) 163 docbaseName = value.length <= 0 ? "" : value[0]; 164 else 165 if(key.equalsIgnoreCase("password")) 166 PassDocbase = value.length <= 0 ? "" : value[0]; 167 else 168 if(key.equalsIgnoreCase("domain")) 169 m_domain = value.length <= 0 ? "" : value[0]; 170 else 171 if(key.equalsIgnoreCase("job_id")) 172 m_jobid = value.length <= 0 ? "" : value[0]; 173 else 174 if(key.equalsIgnoreCase("method_trace_level")) 175 m_mtl = value.length <= 0 ? "" : value[0]; 176 } 177 } 178 179 m_log.info("MoverContenidosViejos - initWorkflowParams: fin"); 180 } 181 182 183 public void execute(Map params, OutputStream ostream) 184 throws Exception 185 { 186 System.out.println("MoverContenidosViejos, execute: inicio"); 187 initWorkflowParams(params); 188 IDfSessionManager sessionManager = login(); 189 IDfSession session = null; 190 try 191 { 192 _session = sessionManager.getSession(docbaseName); 193 MoverContenidos(); 194 195 } 196 catch(DfException e) 197 { 198 ostream.write(e.getMessage().getBytes()); 199 e.printStackTrace(); 200 throw e; 201 } 202 finally 203 { 204 if(session != null) 205 sessionManager.release(session); 206 } 207 return; 208 } 209 210 private IDfSession _session; 211 private static Logger m_log = Logger.getLogger("MoverContenidosViejos"); 212 private static String PassDocbase = null; 213 private static String UserDocbase = null; 214 private static String docbaseName = null; 215 protected String m_domain; 216 protected String m_jobid; 217 protected String m_mtl; 218 protected String m_ticket; 219 protected RandomAccessFile m_File; 220 /*dpg_alerta,dpg_articulo,dpg_bienvenida,dpg_contacto,dpg_documento,dpg_editorial,dpg_encuesta,dpg_enlace,dpg_evento,dpg_fasciculo,dpg_ficha,dpg_glosario,dpg_grafico,dpg_legislacion,dpg_noticia,dpg_portada,dpg_prima,dpg_reportaje,dpg_ticker,dpg_FAQ 221 * */ 222 223 224 private static String DQLContenidosprueba = "select r_object_id, object_name from dm_document where folder('/MoverContenido/Origen')"; 225 226 private static final String USER_KEY = "user_name"; 227 private static final String DOCBASE_KEY = "docbase_name"; 228 private static final String PASSWORD_KEY = "password"; 229 private static final String DOMAIN_KEY = "domain"; 230 private static final String JOBID = "job_id"; 231 private static final String MTL = "method_trace_level"; 232 private String lifeCycleState; 233 private boolean lifeCycleOverride; 234 private boolean lifeCycleTestOnly; 235 protected String m_workitemId = null; 236 private IDfId docIdObj; 237 238 } 239
You need to create an account or log in to post comments to this site.