sessionId dans URL générée sur attachments en xPages

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

sessionId dans URL générée sur attachments en xPages

Messagepar nnavez » 31 Mai 2011 à 15:14

Bonjour à tous,

Je viens poser ma question sur ce forum après avoir beaucoup cherché sur le net sans rien trouver.

Situation de départ :
une xPages qui affiche, en repeat control, des informations de documents basés sur les colonnes d'une vue en source de données.

je gère les libellés "classiques" avec le genre de code :
Code : Tout sélectionner
Collection1.getColumnValue("DocTitre")


Tout marche à merveille.

En plus, j'ajoute une image qui, à l'aide d'un lien généré à l'aide du code :
Code : Tout sélectionner
var k = Collection1.getColumnValue("attachName");
var l =  @Explode(k, ",", @True(), @False());


var sUNID = Collection1.getUniversalID();

var a = l[0];

var b = @ReplaceSubstring(a, "[", "");
var c = @ReplaceSubstring(b, "]", "");
var d = @ReplaceSubstring(c, "%5B", "");
var e = @ReplaceSubstring(d, "%5D", "");
var f = @ReplaceSubstring(e, "%20", "");
var g = @ReplaceSubstring(f, " ", "");


var sPdfUrl = "./0/"+ sUNID + "/\$FILE/" + g;
      
      
return sPdfUrl


Ce lien permet d'ouvrir le 1er doc attaché à mon doc Lotus... MAIS... lotus ajoute automatiquement, à la première ouverture de la xPages, une variable de session à la suite de ce lien... ce qui empêche donc le PDF de s'afficher...
Par contre, après rafraichissement ou "Précédente", cela fonctionne car la variable de session disparait...

Sur le site
https://www-304.ibm.com/support/docview ... wg21420971

ils proposent une solution :
Assure the the file resource is created with "?OpenFileResource" after the file name


mais cela ne donne rien... avez-vous déjà rencontré le cas, et l'avez-vous résolu d'une manière ou d'une autre?
nnavez
Premier posts
Premier posts
 
Message(s) : 18
Inscrit(e) le : 22 Fév 2007 à 08:00

astuce trouvée...

Messagepar nnavez » 01 Juin 2011 à 13:49

n'ayant encore rien trouvé de probant pour retirer le SessionId de l'url, j'ai tenté autre chose...

Je crée une xPages qui servira d'afficheuse de pdf, à l'aide d'un contrôle de "Téléchargement de fichier" dans lequel j'ai simplement une liaison de donnée vers le champ Richtect de mes attachements et à un label calculé à l'aide de la formule :

Code : Tout sélectionner
if(!@IsNewDoc()) {
      var doc:NotesDocument = document1.getDocument();
      var sUNID = doc.getUniversalID();
      var sPdfUrl = "./0/"+ sUNID + "/\$FILE/" + @Subset(@AttachmentNames(),1);
      return '<script language="javascript">var g_sPdfUrl = "' + sPdfUrl + '";</Script>';
      } else {
      return "#";
      }





Et dans la page de départ, A la place d'un lien classique, je place un bouton avec un événèment d'ouverture de page avecun ID spécifié grâce à

Code : Tout sélectionner
Collection1.getUniversalID();



dans le repeat control...

c'est bof comme solution, j'attend donc toujours une réponse alternative...[/quote]
nnavez
Premier posts
Premier posts
 
Message(s) : 18
Inscrit(e) le : 22 Fév 2007 à 08:00

Messagepar d.bugger » 07 Juin 2011 à 00:06

Il faut mieux essayer avec ?OpenElement au lieu de OpenFileResource.

Et en plus, savais-tu que tu peux coller les 6 ReplaceSubstring ensemble ?

var a = l[0];
var g = @ReplaceSubstring(a, [" ","%20","%5D","%5B","]","["] , "");
Avatar de l’utilisateur
d.bugger
Modérateur
Modérateur
 
Message(s) : 849
Inscrit(e) le : 15 Juin 2006 à 09:19
Localisation : Drôme, France


Retour vers Développement

cron