Autor Thema: Frage zu Agenten  (Gelesen 2241 mal)

Offline Don Pasquale

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.390
  • Geschlecht: Männlich
  • Don Pasquale
    • Auf Verlorenem Posten
Frage zu Agenten
« am: 17.01.03 - 09:14:16 »
Hallo liebe Notes Gemeinde

ich benötige einen Agenten, der alle Dokumente in der INBOX bearbeitet.
Da ich in diesem Agenten auch Routinen aus einer Library benutzen möchte, sollte der Agent in LScript geschrieben sein.

Im Agent habe ich bei
                "Für welche Dokumente soll der Agent gelten"
die Inbox angeben.

Aber wie muß nun die Collection in Skript
aussehen ?

   Dim Bearbeiter As String
   Dim Status As String

   Dim ws As New NotesUiWorkspace
   Dim Session As New NotesSession
   Dim view As NotesView
   Dim dc As NotesDocumentCollection
   Dim db As NotesDatabase
   
   Set uidoc = ws.CurrentDocument
   Set session = New notessession       
   Set db = session.CurrentDatabase   
   
   
   WAS KOMMT NUN HIERHIN ????????????
'   Set view = db.GetView( $INBOX )    
'   Set dc=db.UnprocessedDocuments  
'   Set dc = view.GetAllDocumentsByKey(IDENT, True)
   
   
   
   Set doc  = dc.GetFirstDocument
   
   While Not (doc Is Nothing)
      
   Dim ID As String
   ID = doc.FieldGetText("e4ihk_Identnummer")
      
      
   If ID <>"" Then
         
   Status = IST_STATUS_VON_ID(uidoc.FieldGetText("e4ihk_Identnummer"))            
   End If   
         
Set item = doc.ReplaceItemValue("e4fld_Status", Status)
   Call uidoc.save
   Call uidoc.close
   Call doc.RemoveFromFolder("($Inbox)")
         
End If
      
      
Set doc = dc.GetNextDocument(doc)
Wend   
   
   
   
   



« Letzte Änderung: 22.01.03 - 09:28:30 von Don Pasquale »

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Frage zu Agenten
« Antwort #1 am: 17.01.03 - 09:23:22 »
... da sind einige Fehler drin

Zitat
Set view = db.GetView( $INBOX )

... Set view = db.GetView( "($Inbox)" ) ' # in Anführungszeichen

... ob du die markierten Dokumente mit UnprocessedDocuments holst, oder bestimmte Dokumente per Key liegt an deiner Vorgehensweise,

Zitat
Set dc = view.GetAllDocumentsByKey(IDENT, True)

... jedoch ist der IDENT noch nicht bekannt...

Zitat
ID = doc.FieldGetText("e4ihk_Identnummer")

... das geht schief, da dies eine uidoc.Methode ist. Ich würde an deiner Stelle versuchen auf das Frontend zu verzichten, und den Wert per Backend ziehen - der Agent kennt kein Frontend...

Zitat
IST_STATUS_VON_ID(uidoc.FieldGetText("e4ihk_Identnummer"))            

... hier gilt das bereits gesagte...

ata




Grüßle Toni :)

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:Frage zu Agenten
« Antwort #2 am: 17.01.03 - 11:55:42 »
@ata:

Ich möchte den Agenten eigentlich über
ALLE Dokumente der INBOX laufen lassen
Bisher lasse ich ihn über alle Dokumente
der Datenbank laufe, aber dass kann
ewig dauern.


Ciao
Don Pasquale
« Letzte Änderung: 17.01.03 - 12:52:11 von Don Pasquale »

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Frage zu Agenten
« Antwort #3 am: 17.01.03 - 12:38:11 »
... grundsätzlich ist dein Ansinnen ja möglich, abgesehen von den Schwachstellen...

ata
Grüßle Toni :)

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:Frage zu Agenten
« Antwort #4 am: 17.01.03 - 12:41:11 »
@ata :
Er sieht nun derart aus :


   Dim ws As New NotesUiWorkspace
   Dim Session As New NotesSession
   Dim view As NotesView
   Dim uidoc As NotesUIDocument   
   Dim doc As NotesDocument   
   Dim dc As NotesDocumentCollection
   Dim db As NotesDatabase
   
   Set uidoc = ws.CurrentDocument
   Set session = New notessession       
   Set db = session.CurrentDatabase   
   
   Dim Bearbeiter As String
   Dim item As NotesItem
   Dim ID As Variant
   Dim INDEX As Variant
   Dim UNGELOESCHT As Variant
   Dim Status As String
   
   
   Set view = db.GetView( "_AGENT" )    
   Set dc = view.GetAllDocumentsByKey("True", True)
   
   
   Set doc  = dc.GetFirstDocument
   
   While Not (doc Is Nothing)
      
      INDEX = doc.GetItemValue("e4fld_Indexiert")
      
      If INDEX(0) <> "TRUE" Then
         
         ID = doc.GetItemValue("e4ihk_Identnummer")
         
         If ID(0) <>"" Then
            
            GELOESCHT = doc.GetItemValue("e4fld_Geloescht")
            
            If GELOESCHT(0) = "" Then
               
               Bearbeiter = IST_BEARBEITER_VON_ID( ID(0))
               
               If Bearbeiter <> "" Then
                  Set item = doc.ReplaceItemValue("e4ihk_Initiator", Bearbeiter)
                  Status = IST_STATUS_VON_ID( ID(0))
               End If   
               
               Set item = doc.ReplaceItemValue("e4fld_Indexiert", "True")
               Set item = doc.ReplaceItemValue("e4fld_Status", Status)
               Set item = doc.ReplaceItemValue("e4fld_AGENT", "False")               
               Call doc.save(True,True,True)
               Call doc.RemoveFromFolder("($Inbox)")
               
            End If
         End If
      End If
      
      
      Set doc = dc.GetNextDocument(doc)
   Wend   
   
   
« Letzte Änderung: 17.01.03 - 13:37:11 von Don Pasquale »

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Frage zu Agenten
« Antwort #5 am: 17.01.03 - 12:46:12 »
... sieht auf die schnelle gut aus...

... noch ein Tip: Wenn du in den Options die Zeile "Option Explizit" einfügst, dann passiert das mit den nicht deklarierten Variablen nicht, denn dann mußt du alles eindeutig deklarieren - ich mach das immer...

ata
Grüßle Toni :)

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:Frage zu Agenten
« Antwort #6 am: 17.01.03 - 12:51:54 »
@ata: Das mit dem Explizit ist ein guter Tipp ( und eine selbsterzieherische Maßnahme)


Zweite Frage :

Ich möchte diesem Agenten vopn einem andren Agenten aus anstossen, bekomme aber die Meldung dass dieser Agent
nur von einem Ansichtfenster aus gestartet werden darf.
Gibt es eine Möglichkeit diesen Agenten dennoch von einem
anderen Agenten aus starten zu lassen ?


Ciao

Don Pasquale

Offline Performance

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.096
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Re:Frage zu Agenten
« Antwort #7 am: 17.01.03 - 12:54:59 »
yep
den Agenten der gestartet werden soll muss in den Eigenschaften
"When should this Agent run?" auf "Manually from Agent List" gesetzt werden


cu
Wir können alles außer hochdeutsch !

Alles ist möglich, es ist nur eine Frage der Zeit oder des Geldes!

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:Frage zu Agenten
« Antwort #8 am: 17.01.03 - 13:42:22 »
yep
den Agenten der gestartet werden soll muss in den Eigenschaften
"When should this Agent run?" auf "Manually from Agent List" gesetzt werden


cu

@Performance

Es ist genau diese Einstellung, bei der die Fehlermeldung kommt. :(



Wieso hat diese Zeile keinen Effekt ?

@Command([ToolsRunMacro];"(e4AgentIndex)" )


Der Agent wird und wird _nicht_ ausgelöst.


Alles sehr verwirrend

Ciao
Don Pasquale





« Letzte Änderung: 17.01.03 - 14:29:21 von Don Pasquale »

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Frage zu Agenten
« Antwort #9 am: 17.01.03 - 15:39:19 »
- entweder Du übersetzt das falsch ins deutsche und stellst den Agent so ein, daß er aus einer Aktion gestartet wird. Es muss lauten "manuell aus der Liste der Agenten". Ich bin 100% sicher, daß dies nicht so bei Dir drin steht, bzw. der erste Agent ist, der diese Fehlermeldung erzeugt und Du das vermeintlich auf den 2.Agent schiebst
- oder Du hast ganz unten rechts stehen "Docs in Ansicht auswählen"
- oder Du hast Dich verschrieben irgendwo
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz