2009-09-28 6 views
2

Ce morceau de code déplace toutes les versions actuelles des fichiers d'un dossier à un autre mais laisse toutes les anciennes versions non déplacé. (Le contexte est le code java de DFC accès Documentum.)Comment déplacer ** toutes ** les versions des fichiers d'un dossier à un autre dans Documentum en utilisant DFC

String strObjId = versionColl.getString("r_object_id"); 
     com.documentum.fc.common.IDfId curObjectID = new DfId(strObjId); 
     IDfSysObject curObj = (IDfSysObject)sess.getObject(curObjectID); 
     versionlabel = curObj.getAllRepeatingStrings("r_version_label", ","); 
     System.out.println("Moving document with Name:" + objName + " and version:" + versionlabel); 
     if (runMode.equals("1")) { 
     curObj.unlink(oldpath); 
     curObj.link(newpath); 
     curObj.setString("a_special_app", curObj.getString("r_modifier")); 
     curObj.setTime("a_last_review_date", curObj.getTime("r_modify_date")); 
     curObj.setString("a_category","MOVED"); 
     curObj.save(); 
     System.out.println("Successfully Moved document with Name:" + objName + " and version:" + versionlabel); 
     } 

L'erreur que nous obtenions tout en se déplaçant les anciennes versions était "document immuable". Nous avons donc ajouté ce morceau de code qui désactive temporairement le drapeau immuable, permet de déplacer le fichier puis réinitialise le drapeau immutable à true.

curObj.setBoolean("r_immutable_flag", false); 

Le problème était alors que ce code a couru parfaitement sur notre machine de dev (Windows) alors qu'il est écrasé sur la production (fenêtres) (a donné erreur de lien). Toute idée de la raison pour laquelle cela agit comme il est et d'autres codes pour résoudre ce problème serait génial. Merci.

+0

Peut-être que vous pourriez inclure plus de détails dans l'erreur que vous rencontrez en production. –

+2

Si le code est le même, vous avez des différences entre la configuration de dev et la configuration de prod. Donnez-nous votre erreur exacte pour nous aider à comprendre ce qui ne va pas (permis d'écriture, dossier cible inexistant, ...) – enguerran

Répondre

1

Basé sur la petite information donnée, il pourrait être à peu près n'importe quoi mais je suppose que c'est un problème d'autorisations. Plus précisément, l'utilisateur exécutant ce code n'a pas les autorisations appropriées pour déplacer un (ou plusieurs) des documents que vous essayez de déplacer OU l'utilisateur qui exécute le code n'a pas les autorisations suffisantes pour lier des objets au dossier cible.

+0

Je doute que ce soit un problème d'autorisation. Pour définir l'attribut 'r_immutable_flag', vous devez être superutilisateur. L'administrateur système n'est pas suffisant, même si vous avez l'autorisation DELETE pour l'objet. Comme il n'obtient pas d'erreur [DM_API_E_UPDATE_BAD_ATTR]: "L'attribut 'r_immutable_flag' n'est pas modifiable." 'Error, je suppose qu'il utilise déjà un compte super-utilisateur. – eivamu

Questions connexes