Autor Thema: Problem in einem Agenten  (Gelesen 2160 mal)

Offline braincrusha

  • Junior Mitglied
  • **
  • Beiträge: 65
  • Geschlecht: Männlich
  • Absoluter Newbie... und ich schäm mich nichtmal ;)
Problem in einem Agenten
« am: 21.11.03 - 13:05:35 »
Also ich hab ein Agent programmiert welcher nur bestimmte Dokumente ausliest und diese dann ausgibt in eine HTML!

Also der Agent ist in LotusScript und wird manuell aus dem Menü gestartet.

Ich hab jetzt ne Abfrage reingebaut die nachfragt ob nur Dokumente aufgelistet werden müssen die in einem Feld(TT2) was stehen haben.

[...]
Dim ak As Variant
[...]
ak = Messagebox("Sollen nur Calls mit Aktivität augelistet werden?",  4 + 32 + 0 + 4096, "Nur Aktivitäten?")
[...]
If(ak = 7) Then
   Do While Not (oh_document Is Nothing)
   Set temp = view.GetNextDocument(oh_document)
   If (bla bla bla) Then
            
            Print #1, "BlaBla "
               End If      
         Set oh_document = temp
      Loop
   Else      
      Do While Not (oh_document Is Nothing)
         Set temp = view.GetNextDocument(oh_document)
         If (blabla And Not(Isempty(TT2))) Then
            
            Print #1, "BlaBla"
                  End If      
         Set oh_document = temp
      Loop
   End If


er gibt nun aber gar keine Dokumente aus. Wenn ich die Teile rausmach oder auf abbrechen klick durckt er mir alle Dokumente aus die den Rest der Anforderungen (hier abgekürzt mit blabla) entspricht.
« Letzte Änderung: 21.11.03 - 13:19:08 von braincrusha »

Driri

  • Gast
Re:Problem in einem Agenten
« Antwort #1 am: 21.11.03 - 13:17:31 »
Hi,

der Return der Messagebox wird in der Variable "ak" abgelegt, aber unten benutzt Du scheinbar "voigtak". Was passiert dazwischen oder warum ist das so ?

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:Problem in einem Agenten
« Antwort #2 am: 21.11.03 - 13:18:01 »
Zitat
Was ist voigtak ?

[...]
If(voigtak = 7) Then

Ciao

Don Pasquale

Offline braincrusha

  • Junior Mitglied
  • **
  • Beiträge: 65
  • Geschlecht: Männlich
  • Absoluter Newbie... und ich schäm mich nichtmal ;)
Re:Problem in einem Agenten
« Antwort #3 am: 21.11.03 - 13:19:46 »
ist ak... hab den quelltext bisschen umgeschrieben und das vergessen zu ändern... also da steht im echten auch ak

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:Problem in einem Agenten
« Antwort #4 am: 21.11.03 - 13:22:52 »
Hast Du mal den Debugger benutzt ?
Wo hängt er denn ?
Ciao
Don Pasquale
ps: Der Gebrauch von Kommata schadet nicht - nicht immer

Offline braincrusha

  • Junior Mitglied
  • **
  • Beiträge: 65
  • Geschlecht: Männlich
  • Absoluter Newbie... und ich schäm mich nichtmal ;)
Re:Problem in einem Agenten
« Antwort #5 am: 21.11.03 - 13:26:30 »
Der hängt nirgends der Debugger läuft durch, der Agent lässt sich auch starten aber er gibt nicht aus was ich will. Er gibt gar keine Dokumente aus obwohl eigentlich Dokumente ausgegeben werden sollten..

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Problem in einem Agenten
« Antwort #6 am: 21.11.03 - 13:41:28 »
... hat er denn überhaupt ein Dokument initialisiert? Vor Do while sollte das Dokument bereits initialisiert sein, sonst geht er erst gar nicht in die Schlaufe...

ata
Grüßle Toni :)

Offline braincrusha

  • Junior Mitglied
  • **
  • Beiträge: 65
  • Geschlecht: Männlich
  • Absoluter Newbie... und ich schäm mich nichtmal ;)
Re:Problem in einem Agenten
« Antwort #7 am: 21.11.03 - 13:54:51 »
ja werden sie weiter vorne... es klappt ja alles wunderbar wenn ich auf no klicke und er es ohne diesen "And Not(Isempty(TT2)" macht...

und wenn ich dann ja klicke und er den unteren teil nimmt funktioniert gar nix mehr

Also glaub ich nicht dass am Anfang en Fehler bei der Initialisierung ist

"
   Dim db As NotesDatabase
   Dim view As NotesView
   Dim voi_Auslieferungsdoc As NotesDocument
   Dim oh_document As NotesDocument
   Dim temp As NotesDocument
   Dim vrzfilename As Variant
   Dim Server As New notesdbdirectory ("")
   Dim ak As Variant
   Dim tempdate As Variant    
   PrintDate = Date()
   Dim AuslieferungDatum As Variant    
   Dim bis_date As Variant
   Dim von_date As Variant
   Set session = New NotesSession
   Set db = session.CurrentDatabase
   Set view = db.GetView("NextAuslieferung")
   Set oh_document = view.GetFirstDocument
   vrzfilename = Inputbox("Dateiname mit Pfadangabe:", "Dateiauswahl", "F:\Auslieferungsdokument.html")
   Open vrzfilename For Output As #1
"

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:Problem in einem Agenten
« Antwort #8 am: 21.11.03 - 14:18:45 »
Pack doch mal nur das Wesentliche in einen Klickbutton
und poste dann mal den gesamten Code.
Und beschreibe ganz langsam, was passieren soll.
Benutze Kommas !

Ciao
Don Pasquale

Offline braincrusha

  • Junior Mitglied
  • **
  • Beiträge: 65
  • Geschlecht: Männlich
  • Absoluter Newbie... und ich schäm mich nichtmal ;)
Re:Problem in einem Agenten
« Antwort #9 am: 21.11.03 - 14:31:40 »
Also ich habe einen Agenten welcher Dokumente durchsuchen soll und bei denen bei denen an bestimmten Stellen Haken gesetzt sind bezw. was bestimmtes drin steht sollen benützt werden um eine HTML mit bestimmtem Inhalt zu erzeugen!

Soweit noch alles klar???

Dieser Agent funktioniert auch einbahnfrei!!!!!

Jetzt habe ich noch was eingebaut! Und zwar eine Abfrage

Dim ak As Variant
ak = Messagebox("Sollen nur Calls mit Aktivität augelistet werden?",  4 + 32 + 0 + 4096, "Nur Aktivitäten?")


Wenn ich nun auf Nein klicke müsste er mir eine 7 zurückgeben falls ich dass richtig kapiert habe


falls er eine sieben zurückgibt soll er den normalen Ablauf den ich ja schon hatte durchführen

If(ak = 7) Then
   Do While Not (oh_document Is Nothing)
   Set temp = view.GetNextDocument(oh_document)
   If (bla bla bla) Then
           
            Print #1, "BlaBla "
               End If      
         Set oh_document = temp
      Loop



falls er ein andere Zahl zurückbekommt soll er weiter mit der Elseanwendung machen an die ich dieses Argument in der If-Schleife angefügt habe

Else      
      Do While Not (oh_document Is Nothing)
         Set temp = view.GetNextDocument(oh_document)
         If (blabla And Not(Isempty(TT2))) Then
           
            Print #1, "BlaBla"
                  End If      
         Set oh_document = temp
      Loop
   End If




Also wenn in dem Feld TT2 etwas drinsteht soll er sie ausgeben!

Das Problem ist dass er dann keine Dokumente findet obwohl dort eins drin stehen sollte!!!!

Kommatas?? Was sind das?? Kommentare oder , ;???
« Letzte Änderung: 21.11.03 - 14:34:55 von braincrusha »

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:Problem in einem Agenten
« Antwort #10 am: 21.11.03 - 14:41:05 »
@Braincrusha,

Also hast Du 2 Probleme

Ad 1:
Mit
Messagebox ak(0)
erfährst Du welcher Wert zurückgeliefert wird.

Ad 2:
Was ist TT2 ?

Meinst Du vielleicht Oh_Document.TT2(0)  = ""
?

Ciao
Don Pasquale
« Letzte Änderung: 21.11.03 - 14:42:13 von Don Pasquale »

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Problem in einem Agenten
« Antwort #11 am: 21.11.03 - 14:57:07 »
... zu den Kommas - ich denke es sind die Kommas gemeint, die man in deinen Beschreibungen vermisst...

ata
Grüßle Toni :)

Offline braincrusha

  • Junior Mitglied
  • **
  • Beiträge: 65
  • Geschlecht: Männlich
  • Absoluter Newbie... und ich schäm mich nichtmal ;)
Re:Problem in einem Agenten
« Antwort #12 am: 21.11.03 - 14:57:10 »
@Braincrusha,

Also hast Du 2 Probleme

Ad 1:
Mit
Messagebox ak(0)
erfährst Du welcher Wert zurückgeliefert wird.

Ad 2:
Was ist TT2 ?

Meinst Du vielleicht Oh_Document.TT2(0)  = ""
?

Ciao
Don Pasquale


Oh_Document.TT2(0)  = ""  in einer If-Schleife im LotusScript und das funktioniert?? Ich geh mal testen

Messagebox ak(0)?? Wo hin?? Wie funktioniert dies?? Muss ich das bei der Angabe beachten oder anstatt nur ak??? Kapier es nicht wirklich

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Re:Problem in einem Agenten
« Antwort #13 am: 21.11.03 - 15:33:57 »

Ad 1:

Dim ak As Variant
ak = Messagebox("Sollen nur Calls mit Aktivität augelistet werden?",  4 + 32 + 0 + 4096, "Nur Aktivitäten?")
Messagebox ak

Der Benutzer klickt etwas an und in einer Messagebox erhälst Du den Rückgabewert.


Ad2:

Unter der Voraussetzung, dass mit TT2 ein Feld im
Document oh_document gemeint ist,
könnte deine If-Abfrage folgendermassen aussehen :

 If (blabla And Not(Isempty(oh_document.TT2(0)))) Then


Ciao
Don Pasquale            



Offline braincrusha

  • Junior Mitglied
  • **
  • Beiträge: 65
  • Geschlecht: Männlich
  • Absoluter Newbie... und ich schäm mich nichtmal ;)
Re:Problem in einem Agenten
« Antwort #14 am: 24.11.03 - 16:20:06 »

Ad 1:

Dim ak As Variant
ak = Messagebox("Sollen nur Calls mit Aktivität augelistet werden?",  4 + 32 + 0 + 4096, "Nur Aktivitäten?")
Messagebox ak

Der Benutzer klickt etwas an und in einer Messagebox erhälst Du den Rückgabewert.
Versteh ich jetzt nicht wirklich... also was muss ich angeben damit der Wert der aus der Messagebox zurückgegeben wird bei ak landet??

Also wenn ich jetzt Ja klick kommt ne 6 in ak und bei nein ne 7 in ak???

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Problem in einem Agenten
« Antwort #15 am: 24.11.03 - 17:33:18 »
Mit dem Rückgabewert der MessageBox-Function hat das gar nichts zu tun, das ist schon okay.
Würdest Du Option Declare setzen, würdest Du sofort den Fehler bemeckert bekommen, denn TT2 ist nicht deklariert. Wie Don Pasquale schon geschrieben hat, meinst Du vermutlich das item TT2, und das musst Du wie vom Don beschrieben ansprechen.
Weiterhin: Das erste Document in Deiner View überliest Du mit Deinem Code permanent. Nicht, dass Du Dich dann später mal wunderst ...
Irgendwo schreibst Du mal "Dokumente, bei denen Haken gesetzt sind ..." Meinst Du damit etwa markierte Dolumente ? Dann ist Dein Verfahren (looping through a view) gänzlich verkehrt.

Würdest Du den Debugger benutzen, hättest Du die Fehler übrigens längst selber bemerkt - die Bedingung "Not(Isempty(TT2)" ist niemals erfüllt, und das kann man dann im Debugger sehr schön beobachten ...

Und - wie schon mehrfach von anderen angemahnt: Verzichte auf dusslige Massenansammlungen von Ausrufe- und Fragezeichen, setz' lieber wenigstens an ein paar (richtigen) Stellen Kommata. Sonst entsteht der Eindruck "Wer nicht ordentlich Text schreiben kann, wird erst recht keinen ordentlichen Code notieren können."

HTH,
Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz