Meilleur moyen de copier / coller un rapport à l'identique ?
Bonjour,
Ce post fait suite a celui créé précédemment concernant un code 999 - Internal Error.
En effet certains de mes rapports peuvent parfois se corrompre et ne peuvent plus être lu via le SDK RESTful de Business Object. J'ai besoins de pouvoir mettre à jour ces rapports afin qu'ils soient à nouveau lisible par le SDK, j'ai tenté un simple copier / coller via le portail web de BO et cela fonctionne à nouveau pour le rapport copié.
Je cherche donc un moyen d'automatiser cette tâche mais je n'ai trouvé aucune documentation sur la manière de procéder via RESTful, j'ai donc cherché à réaliser cela via le SDK Java fournit par BO.
Voici où j'en suis
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
try{
System.out.print("\nSending request :");
String query ="SELECT SI_GUID, SI_NAME, SI_PARENTID, SI_FILES FROM CI_INFOOBJECTS WHERE SI_KIND= 'Webi' AND SI_GUID = 'FvWec1crVAEAjwgAAEB5kEX.ABekdwwA'";
IInfoObjects manyReports = infoStore.query(query);
System.out.print(" OK !");
IInfoObject report = (IInfoObject)manyReports.get(0);
System.out.println("\nReport: "+report.getTitle());
IInfoObject reportCopy = manyReports.copy(report, IInfoObjects.CopyModes.COPY_NEW_OBJECT_NEW_FILES);
IFiles file = report.getFiles();
IRemoteFile myfile = ((IRemoteFile) file.get(0));
String url = myfile.getURL();
reportCopy.getFiles().add(url));
reportCopy.setTitle(reportCopy.getTitle()+"[copy]");
reportCopy.save();
report.deleteNow();
System.out.println(reportCopy.getTitle()+" copied successfully !");
enterpriseSession.logoff();
}catch(Exception z){z.printStackTrace();
System.out.print(" Error !");
} |
Mais cela ne fonctionne pas : SDKException$FileNotFound: Chemin d'accès au fichier incorrect
Pareil, je n'ai pas trouvé beaucoup de documentation ni d'exemple sur la manière de procéder...
Le mode de copie COPY_NEW_OBJECT_NEW_FILES me créé bien un nouveau fichier dans BO mais celui-ci n'est relié à aucun document physique (.wid) ...
Si quelqu'un à une idée à me partager :D