Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Ozan am 07.04.09 - 09:35:10

Titel: OpenAgent
Beitrag von: Ozan am 07.04.09 - 09:35:10
Hallo,

möchte mit JS im Web ein Agent ausführen. In der Serverkonsole sehe ich aber folgende Fehlermeldung "Objekt variable not set" und im Web wird angezeigt "Agent done".

Das ganze funktioniert problemlos wenn ich das Agent mit "@Command([ToolsRunMacro]; "agent1")" starte. Daher meine Frage, muss ich eventuell anders deklarien?

Hier Code:

Sub Initialize
   Dim ses As New notessession
   Dim webdoc As notesdocument
   Set webdoc = ses.DocumentContext
   Dim status As String
   Dim suche As String
   suche =Right(webdoc.Query_String(0),6)
   Dim db As NotesDatabase
   Dim PersonView As NotesView
   Dim PersonDC As NotesDocumentCollection
   Dim PersonDoc As NotesDocument
   Set db = ses.CurrentDatabase
   Set PersonView = db.GetView( "refCode" )
   Set PersonDC = PersonView.GetAllDocumentsByKey(suche, True)
   
   If PersonDC.count <> 0 Then   ***hier steht der Agent mit Objekt variable not set. ***
      
      Set PersonDoc = PersonDC.GetFirstDocument   
....
....   

Gruss

Ozan
Titel: Re: OpenAgent
Beitrag von: m3 am 07.04.09 - 09:49:18
Seufz!
Warum kommt eigentlich kaum jemand auf die Idee, nach einem Get..... zu überprüfen, ob die Methode auch was zurückgeliefert hat?

Ich vermute mal, dass der Benutzer, unter dem der Agent über das Web ausgeführt wird (Anonymous, angemeldeter User oder der User, der in den Eigenschaften angegeben wurde) entweder keinen Zugriff auf die View oder die Dokumente in der View haben wird.

Weiters finde ich es "mutig", dass Du die Parameter für die Suche ungeprüft aus dem Query-String nimmst. Das sollte man nicht tun.
Titel: Re: OpenAgent
Beitrag von: DerAndre am 07.04.09 - 09:49:58
Ist alles Richtig befüllt?
Prüfe auch an den entsprechenden Zuweisungen auf Nothing usw.

Ok, wieder mal zu langsam...
Titel: Re: OpenAgent
Beitrag von: m3 am 07.04.09 - 09:53:14
@André: Man kann es ja gar nicht oft genug sagen ...
Titel: Re: OpenAgent
Beitrag von: DerAndre am 07.04.09 - 09:55:23
 ;D ;D ;D

Wenn man immer Zweiter ist, kann man irgendwann auch Erster werden 

Jetzt warte ich noch auf ein Statement von Werner  8)
Titel: Re: OpenAgent
Beitrag von: WernerMo am 07.04.09 - 10:38:23
Hallo

@André
Jetzt warte ich noch auf ein Statement von Werner  8)

Bitte heute "etwas lansamer mit den jungen Pferden" - ich habe seit Freitag wenig geschlafen, aber im unterschied zu meinen jungen Kollegen, wo das an dem/den Kind/ern liegt, liegt es bei mir an der Arbeit.
Aber ab morgen wird alles besser ....

Gruß aus dem sonnigen Nürnberg nach Wien (1.) und Neuss (2.) und den Rest der Welt.
Werner
Titel: Re: OpenAgent
Beitrag von: Ozan am 07.04.09 - 10:54:26
Hallo,

tatsächlich liegt das problem an der suchstring. Der war nehmlich Nothing weil ich per JS die Linkleiste verändere und zwar hinten mit OpenAgent.

Da hat der dann natürlich nach "nAgent" gesucht. :-X

Unverzeibarer Fehler von mir.

Das problem was ich jetzt habe ist dass die im Web-Formular angegebene infos nicht gespeichert werden weil der Agent-Aufruf per JS eine neue Seite hervorruft und die Felder die im Web ausgefüllt worden sind gar nicht mehr zu finden sind.

Wie kann ich hier vorgehen?

Gruss

Ozan

 

Titel: Re: OpenAgent
Beitrag von: Ozan am 07.04.09 - 11:56:16
Gibt es keine Möglichkeit die Felder mit zu schleusen? Oder per JS zu setzen?

Ozan
Titel: Re: OpenAgent
Beitrag von: Thomas Schulte am 07.04.09 - 11:59:20
XPages / Ajax ...
Titel: Re: OpenAgent
Beitrag von: Ozan am 07.04.09 - 12:38:46
oha ... da kenne ich mich überhaupt nicht aus.

Was ich erreichen will ist :

Wenn der User im WEB Formular Felder nicht ausfüllt soll er nur ein Hinweis bekommen dass die Felder nicht ausgefüllt worden sind. Wenn er trotzdem weiter machen will soll dann der Agent ausgeführt werden der die Eingaben vom User speichert.

Ich hatte mir das mit ein confirm Befehl von JS überlegt gehabt, da komme ich leider nicht weiter weil mit der Agentaufruf "OpenAgent" die Eingaben weg sind.

Kennt jemand vielleicht eine andere Lösung?

Gruss

Ozan
Titel: Re: OpenAgent
Beitrag von: m3 am 07.04.09 - 13:41:55
Also wenn Du schon was neues auf 8 entwickelst, dann würde ich das gleich mit XPages machen. Musst halt ein wenig lernen.

Ansonsten z.B. http://www.codestore.net/store.nsf/unid/BLOG-20060523?OpenDocument oder http://lmgtfy.com/?q=Lotus+Notes+form+validation+web
Titel: Re: OpenAgent
Beitrag von: Ozan am 07.04.09 - 14:58:52
Das was dort steht habe ich bereits umgesetzt und zwar habe ich ein Feld in der WEB Maske angelegt, den lade ich im Bereich Html-Body, dort schreibe ich wie z.b :

@If(Warnung = "";
"";
" onLoad=\"alert('" + Warnung + "')\"
" )

Das funktioniert auch, aber der zwingt eine Eingabe damit die Flichtfelder ausgefüllt werden.

kontrollfelder := @If(Nachname="";"Bitte füllen sie die Pflichtfelder aus...";"");

ThisWarnung0 := @Trim( kontrollfelder ) ;
ThisWarnung1 := @Implode( ThisWarnung0 ; "\\n") ;

@If( ThisWarnung1 = "" ;
@Do(
@Command([ToolsRunMacro]; "speichern")
       )
;
@Do(
@SetField( "Warnung" ; ThisWarnung1 );
@Command([ViewRefreshFields])
        )
       )

Ich will ja hier nur ein Info einblenden mit dem nicht ausgefüllten Feldern, wenn der User OK anklickt dann soll ein Agent per @Command aufgerufen werden, wenn der User Abbrechen klickt dann soll kein Agent ausgeführt werden.

Ist es eigentlich überhaupt möglich mit der Formel Sprache von Notes, eine Abfrage-Fenster im Web anzuzeigen und jenachdem was der User anklickt(true oder false) ein Agent auszuführen?

Ozan