Page 1 sur 1

Redirection en web (xPage) après l'exécution d'un agent

MessagePublié: 08 Juil 2010 à 10:16
par mike76
Bonjour,

Je suis dans une appli web.
Je clique sur un bouton qui m'ouvre une xPage.
Dans cette xPage j'ai un bouton "Valider".
Lors de l'appui de ce bouton un agent lotus script se déclenche sur le serveur.

Je voudrais à la fin de l'exécution de l'agent me rediriger vers une autre xPages, genre un $$Return.
Mais comment faire ?

Merci.
Michaël

MessagePublié: 08 Juil 2010 à 10:19
par amahi
Commence par arreter de penser Lotus !
Tu n'as pas besoin d'agent avec les Xpages, tu disposes d'ActionListener.
Comme on ne va pas tout refaire, va falloir que tu donne le code de ton bouton pour voir ce qui peut etre fait.

MessagePublié: 08 Juil 2010 à 10:28
par mike76
connais pas ActionListener, ça sert à quoi ???

voici mon code :
Code : Tout sélectionner
Sub Initialize()
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim viewContacts As NotesView
   Dim viewAllContacts As NotesView
   Dim viewNew As NotesView
   Dim docContact As NotesDocument
   Dim doc As NotesDocument
   Dim docNew As NotesDocument
   Dim agent As NotesAgent
   Dim noteid As String
   Dim nbDocs As Long
   Dim b As Byte
   Dim q As String
   Dim country As String
   Dim nomEnquete As string
   
   On Error GoTo erreur
   
   
   Set db=session.Currentdatabase
   Call db.UpdateFTIndex(True)
   Set viewContacts=db.Getview("(Contacts)")
   Set viewAllContacts=db.Getview("AllContacts")
   
   Set agent=session.Currentagent
   noteid=agent.ParameterDocID
   Set doc=db.GetdocumentbyID(noteid)
      
   country=""

   
   If doc.Getitemvalue("Countries")(0)<>"" Then      
      ForAll x In doc.Getitemvalue("Countries")
         If country="" Then
            country={"} + x + {"}
         Else   
            country=country + { OR "} + x + {"}
         End If
      End ForAll
      
      q={(FIELD Country CONTAINS } + country + {)}
      
      nbDocs=viewContacts.Ftsearch(q, 0)
      If nbDocs>0 Then   
         nomEnquete=doc.GetItemValue("DatabaseName")(0)
         
         Set docContact=viewContacts.Getfirstdocument()
         While Not(docContact Is Nothing)
            Set docNew = New NotesDocument(db)
            Call docContact.Copyallitems(docNew,True)
            Call docNew.Replaceitemvalue("NomEnquete", nomEnquete)
            Call docNew.Save(True,False)
            Set docContact = viewContacts.GetNextDocument(docContact)
         Wend
         
         Set viewNew=db.Createview("CustomizedDatabase\" + nomEnquete ,{SELECT Form="Contact" & NomEnquete="} + nomEnquete + {"},viewAllContacts, True)
         Call viewContacts.Clear
      End If
            
   End If   
   
   Exit Sub
   
erreur:
   MsgBox "Agent Error : (CreateCustomizedDatabase) " + CStr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl)
   Exit Sub
   
End Sub


le but :
- récupérer une valeur saisie dans ma xPage
- passer cette valeur à mon agent ls pour faire une recherche fulltext sur une vue
- créer une vue avec le résultat de cette recherche

--> et je voudrais ouvrir ma vue, qui est contenue dans une xPage c'est ça que je n'arrive pas à faire

MessagePublié: 08 Juil 2010 à 10:33
par amahi
Non pas celui la, celui sur la xpage ! pour voir comment est appeler l'agent (eventlistener etc)

MessagePublié: 08 Juil 2010 à 10:35
par mike76
mon bouton "valider", il n'y a pas de code dessus
c'est un bouton de type "Submit"

MessagePublié: 08 Juil 2010 à 11:48
par amahi
regarde ça sur xpageblog:
Quick Tip: Passing a Value from the client to the Server using XSP.PartialRefreshGet

En faisant de l'Ajax tu aura accès a l'event onComplete de ta requete, la tu pourra redirigé ton resultat.

MessagePublié: 08 Juil 2010 à 13:07
par mike76
merci amahi je suis en train de lire ton lien
je te tiens au courant dès que je suis arrivé à faire ce que je veux