IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDK Discussion :

Meilleur moyen de copier / coller un rapport à l'identique ? [JAVA]


Sujet :

SDK

  1. #1
    Membre régulier Avatar de StripMat
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 206
    Points : 93
    Points
    93
    Par défaut 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 JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre régulier Avatar de StripMat
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 206
    Points : 93
    Points
    93
    Par défaut
    J'ai finalement trouvé la solution.

    Le code présenté précédemment fonctionne, encore faut-il que la requête sur la table CI_INFOOBJECT contienne tous les éléments composant le rapport;

    Ainsi
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM CI_INFOOBJECTS WHERE SI_GUID = %valeur

    ramène tous les éléments nécessaires pour que
    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    IInfoObject reportCopy = manyReports.copy(report, IInfoObjects.CopyModes.COPY_NEW_OBJECT_NEW_FILES);
    copie l'intégralité du rapport (dans le même dossier que l'original). Il ne faut pas oublier de modifier le nom car BO n'accepte pas que deux rapports aient le même nom/titre

    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    reportCopy.setTitle(reportCopy.getTitle()+"[copy]");
    reportCopy.save();

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Copier/coller d'une cellule par rapport à une autre
    Par AzelRoth dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/02/2009, 15h54
  2. Réponses: 2
    Dernier message: 18/11/2005, 16h29
  3. Copier coller Fichier windows
    Par KPitN dans le forum Windows
    Réponses: 8
    Dernier message: 20/04/2004, 17h32
  4. Copier Coller une ligne d'une table avec modif ?
    Par nolan76 dans le forum Requêtes
    Réponses: 4
    Dernier message: 04/03/2004, 16h34
  5. [Débutant] Conserver la couleur lors d'un copier coller
    Par ADIDASman dans le forum JBuilder
    Réponses: 2
    Dernier message: 21/05/2003, 18h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo