I have one list of documents. I create those documents into repository using a "for cycle". I want to know how can I rollback the creation of documents previous in case one error occur. In other words, I want to create all documents or none document.
This is my code:
public String saveFolderAndFiles() throws ClientException {
String message = "";
DocumentModel parentDm = null;
pss = Framework.getService(PathSegmentService.class);
parentDm = tramite.getDocumentParent(nodeParent);
newFolder.setPathInfo(parentDm.getPathAsString(), pss.generatePathSegment(newFolder));
newFolder = documentManager.createDocument(newFolder);
documentManager.saveDocument(newFolder);
//Save files into folder
saveFiles(newFolder, solicitud);
message = "Folder and files saved";
facesMessages.add(StatusMessage.Severity.INFO, message);
return null;
}
protected void saveFiles(DocumentModel newFolder, Solicitud myBean) throws ClientException{
List<File> files = myBean.getFiles();
if(files.size() > 0){
for (File file : files) {
DocumentModel newFile = documentManager.createDocumentModel(file.getType().getId());
newFile.setPropertyValue("file:content", (Serializable) file.getFile());
newFile.setPathInfo(newFolder.getPathAsString(), pss.generatePathSegment(newFile));
newFile = documentManager.createDocument(newFile);
documentManager.saveDocument(newFile);
}
}
}
}