Page 1 sur 1

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

MessagePublié: 31 Mai 2011 à 15:14
par nnavez
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?

astuce trouvée...

MessagePublié: 01 Juin 2011 à 13:49
par nnavez
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]

MessagePublié: 07 Juin 2011 à 00:06
par d.bugger
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","]","["] , "");