Autor Thema: Agent  (Gelesen 3191 mal)

Offline HipSlu

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
  • I am from Austria
    • konfabulieren.com
Agent
« am: 25.04.02 - 16:19:40 »
Folgene Bitte / Frage:

ich möchte einen periodischen agent erstellen, der

- alle dokumente einer bestimmten ansicht (oder einer bestimmten maske, ist egal) durchgeht,

- dann ein neues dokument mit einer best. maske erstellt und 2 Felder befüllt; die Document Unique ID des "Ausgangdokumentes" ins eine und "0" ins andere

- dies soll aber nur passieren, wenn es das dokument nicht schon gibt (sollte ja über die unid kein problem sein)

so - und nun kann ich leider nur formel; und da fällt mir irgendwie nicht ein, wie ich ein neues dokument erstellen kann...


kann mir bitte jemand auf die sprünge helfen bzw die 10 zeilen in script verraten (viel mehr wirds nicht sein denke ich mal)?

vielen dank! ;)
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Notes ist ein Bananenprodukt - es reift beim Kunden
--------------------------------------

Server: 6.5.5 EN auf Sun Solaris 8 & W2K / W2k3
Clients: 6.5.4 DE auf W2K und XP (ca. 3000)

Addon: Group 8.6

Offline doliman

  • Senior Mitglied
  • ****
  • Beiträge: 332
  • Geschlecht: Männlich
    • www.doleschel.de
Re: Agent
« Antwort #1 am: 26.04.02 - 07:16:13 »
Hi,

versuchs mal mit dem hier. Ich hoffe ich habe Deine Anleitung richtig verstanden.
Gruß
Frank

Sub Initialize
 Dim session As New NotesSession
 Dim db As NotesDatabase

'1. View die Docs die durchgegangen werden sollen
 Dim view1 As NotesView
'2. View auf die zu erstellende Docs (doc2), kategorisiert in der ersten Spalte mit dem
'zu befüllenden Feld des auszulesenden Dokumentes
 Dim view2 As NotesView

 Dim doc1 As notesdocument
 Dim doc2 As notesdocument
 Dim keys( 1 To 2 ) As String

 Set db = session.CurrentDatabase
 Set view1 = db.GetView( "DeineView2" )
 Set view1 = db.GetView( "DeineView1" )
 set doc1 = view.getfirstdocument

 do while doc1 is nothing
    iddoc1$ = doc1.uinversalid
    keys( 1 ) = iddoc1$
    Set doc2 = view2.GetDocumentByKey( keys )

    if doc2 is nothing then
        Set doc2 = New NotesDocument(db)
         doc2.Form = "FormName"
          doc2.IDDoc1 = doc1.uinversalid
           doc2.Feldname = 0
     end if
  loop
End Sub
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Grüßle
                           _///_
                          (o~o)
-------------oOOO--(_)--OOOo-------------
Frank Doleschel

----------------------
Ein Berufsleben ohne Notes ist zwar möglich aber die Alternativen sind erschreckend ;-)

Offline HipSlu

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
  • I am from Austria
    • konfabulieren.com
Re: Agent
« Antwort #2 am: 26.04.02 - 17:38:44 »
Hallo,

vielen Dank für Deine Hilfe - habs versucht, bekomme allerdings leider folgende Fehlermeldung:

"Variant does not contain an object"
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Notes ist ein Bananenprodukt - es reift beim Kunden
--------------------------------------

Server: 6.5.5 EN auf Sun Solaris 8 & W2K / W2k3
Clients: 6.5.4 DE auf W2K und XP (ca. 3000)

Addon: Group 8.6

Offline HipSlu

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
  • I am from Austria
    • konfabulieren.com
Re: Agent
« Antwort #3 am: 26.04.02 - 17:46:39 »
Hier der momentane Agent:

Sub Initialize
     Dim session As New NotesSession
     Dim db As NotesDatabase
     
     Dim view1 As NotesView
     Dim view2 As NotesView
     
     Dim doc1 As notesdocument
     Dim doc2 As notesdocument
     Dim keys( 1 To 2 ) As String
     
     Set db = session.CurrentDatabase
     Set view1 = db.GetView( "ThemaView" )
     Set view1 = db.GetView( "(CounterView2)" )
     Set doc1 = view.getfirstdocument
     
     Do While doc1 Is Nothing
           iddoc1$ = doc1.uinversalid
           keys( 1 ) = iddoc1$
           Set doc2 = view2.GetDocumentByKey( keys )
           
           If doc2 Is Nothing Then
                 Set doc2 = New NotesDocument(db)
                 doc2.Form = "Counter"
                 doc2.Unid_Faq = doc1.uinversalid
                 doc2.N_Views = 0
           End If
     Loop
End Sub



Der "(CounterView2)" sieht so aus:

1. Spalte: UNID des Ausgangsdocs
2. der Inhalt des Feldes "N_Views" => Standard=0
3. die UNID des Docs selbst

Und die erste Spalte ist, so wie Du geschrieben hast, kategorisiert
Notes ist ein Bananenprodukt - es reift beim Kunden
--------------------------------------

Server: 6.5.5 EN auf Sun Solaris 8 & W2K / W2k3
Clients: 6.5.4 DE auf W2K und XP (ca. 3000)

Addon: Group 8.6

Offline HipSlu

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
  • I am from Austria
    • konfabulieren.com
Re: Agent
« Antwort #4 am: 26.04.02 - 17:55:48 »
hab glaub ich einen fehler gefunden:

Set view1 = db.GetView( "ThemaView" )  
Set view2 = db.GetView( "(CounterView2)" )  

und

Set doc1 = view1.getfirstdocument

nur.... dokumente erstellt er leider keine....
Notes ist ein Bananenprodukt - es reift beim Kunden
--------------------------------------

Server: 6.5.5 EN auf Sun Solaris 8 & W2K / W2k3
Clients: 6.5.4 DE auf W2K und XP (ca. 3000)

Addon: Group 8.6

Offline doliman

  • Senior Mitglied
  • ****
  • Beiträge: 332
  • Geschlecht: Männlich
    • www.doleschel.de
Re: Agent
« Antwort #5 am: 26.04.02 - 18:09:24 »
Hi,

war etwas früh heute morgen.

Sub Initialize  
Dim session As New NotesSession  
Dim db As NotesDatabase  
 
Dim view1 As NotesView  
Dim view2 As NotesView  
 
Dim doc1 As notesdocument  
Dim doc2 As notesdocument  
Dim keys( 1 To 2 ) As String  
 
Set db = session.CurrentDatabase  
Set view1 = db.GetView( "ThemaView" )  
Set view2 = db.GetView( "(CounterView2)" )  
Set doc1 = view1.getfirstdocument  
 
Do While doc1 Is Nothing  
 iddoc1$ = doc1.uinversalid  
 keys( 1 ) = iddoc1$  
 Set doc2 = view2.GetDocumentByKey( keys )  
   
 If doc2 Is Nothing Then  
  Set doc2 = New NotesDocument(db)  
  doc2.Form = "Counter"  
  doc2.Unid_Faq = doc1.uinversalid  
  doc2.N_Views = 0  
  doc2.Save(true,true)
 End If  
Loop  
End Sub  
 
 
Beider View die 2 nicht vergessen
und das save für das Doc.
Die "(CounterView2)" Ansicht muß in der ersten spalte
das Feld "Unid_Faq" kategorisiert sein, da Du in dieses Feld die UNID des Doc1 schreibst .

Grüßle
                           _///_
                          (o~o)
-------------oOOO--(_)--OOOo-------------
Frank Doleschel

----------------------
Ein Berufsleben ohne Notes ist zwar möglich aber die Alternativen sind erschreckend ;-)

Offline HipSlu

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
  • I am from Austria
    • konfabulieren.com
Re: Agent
« Antwort #6 am: 26.04.02 - 18:32:24 »
Hallo,

sorry, ich muß nochmal lästig sein....

bei  
doc2.Save(true,true)
schreibt der designer:
"Initialize: 27: Illegal use of parantheses"

und ansonsten - wenn ich das "doc2.Save(true,true)" rausnehme - und den agent mit debug lotus script laufen lasse, dann springt er bei "Do While doc1 Is Nothing    " sofort auf "End Loop"....

d.h. er findet anscheinend gar kein Dokument??

??? ??? ???
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Notes ist ein Bananenprodukt - es reift beim Kunden
--------------------------------------

Server: 6.5.5 EN auf Sun Solaris 8 & W2K / W2k3
Clients: 6.5.4 DE auf W2K und XP (ca. 3000)

Addon: Group 8.6

Offline doliman

  • Senior Mitglied
  • ****
  • Beiträge: 332
  • Geschlecht: Männlich
    • www.doleschel.de
Re: Agent
« Antwort #7 am: 26.04.02 - 18:40:39 »
Hi,

sorry das müsste heißen:

do while not doc1 is nothing

und

Call doc2.Save( true, True )
   

Grüßle
                           _///_
                          (o~o)
-------------oOOO--(_)--OOOo-------------
Frank Doleschel

----------------------
Ein Berufsleben ohne Notes ist zwar möglich aber die Alternativen sind erschreckend ;-)

Offline HipSlu

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
  • I am from Austria
    • konfabulieren.com
Re: Agent
« Antwort #8 am: 26.04.02 - 18:50:22 »
hi,

jetz habe ich bei
"Do While doc1 Is Not Nothing   "
"17: Type mismatch"

wenn ich das "do while..." und "loop" auskonvertiere, also nur das erste doc bearbeiten würde, so bekomm ich übrigens bei "      iddoc1$ = doc1.uinversalid   "
ebenfalls "Type mismatch"
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Notes ist ein Bananenprodukt - es reift beim Kunden
--------------------------------------

Server: 6.5.5 EN auf Sun Solaris 8 & W2K / W2k3
Clients: 6.5.4 DE auf W2K und XP (ca. 3000)

Addon: Group 8.6

Offline doliman

  • Senior Mitglied
  • ****
  • Beiträge: 332
  • Geschlecht: Männlich
    • www.doleschel.de
Re: Agent
« Antwort #9 am: 26.04.02 - 18:57:37 »
Hi,

TIPPFEHLER

doc1.UniversalID

und das "not" kommt vor das doc1.
Warst schneller als ich korrigiert habe
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Grüßle
                           _///_
                          (o~o)
-------------oOOO--(_)--OOOo-------------
Frank Doleschel

----------------------
Ein Berufsleben ohne Notes ist zwar möglich aber die Alternativen sind erschreckend ;-)

Offline HipSlu

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
  • I am from Austria
    • konfabulieren.com
Re: Agent
« Antwort #10 am: 26.04.02 - 19:10:10 »
ist mir ja schön langsam peinlich.... aber jetzt bekomm ich bei "            Set doc2 = view2.GetDocumentByKey( keys )    " => "Too many keys"

:)
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Notes ist ein Bananenprodukt - es reift beim Kunden
--------------------------------------

Server: 6.5.5 EN auf Sun Solaris 8 & W2K / W2k3
Clients: 6.5.4 DE auf W2K und XP (ca. 3000)

Addon: Group 8.6

Offline doliman

  • Senior Mitglied
  • ****
  • Beiträge: 332
  • Geschlecht: Männlich
    • www.doleschel.de
Re: Agent
« Antwort #11 am: 26.04.02 - 19:12:23 »
versuchsmal mit
Set doc2 = view2.GetDocumentByKey( keys, true )
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Grüßle
                           _///_
                          (o~o)
-------------oOOO--(_)--OOOo-------------
Frank Doleschel

----------------------
Ein Berufsleben ohne Notes ist zwar möglich aber die Alternativen sind erschreckend ;-)

Offline HipSlu

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
  • I am from Austria
    • konfabulieren.com
Re: Agent
« Antwort #12 am: 26.04.02 - 19:17:28 »
leider.... gleiche Fehlermeldung
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Notes ist ein Bananenprodukt - es reift beim Kunden
--------------------------------------

Server: 6.5.5 EN auf Sun Solaris 8 & W2K / W2k3
Clients: 6.5.4 DE auf W2K und XP (ca. 3000)

Addon: Group 8.6

Offline doliman

  • Senior Mitglied
  • ****
  • Beiträge: 332
  • Geschlecht: Männlich
    • www.doleschel.de
Re: Agent
« Antwort #13 am: 26.04.02 - 19:18:23 »
schick mir kurz die DB
mail@doleschel.de
das geht schneller
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Grüßle
                           _///_
                          (o~o)
-------------oOOO--(_)--OOOo-------------
Frank Doleschel

----------------------
Ein Berufsleben ohne Notes ist zwar möglich aber die Alternativen sind erschreckend ;-)

Offline HipSlu

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
  • I am from Austria
    • konfabulieren.com
Re: Agent
« Antwort #14 am: 02.05.02 - 13:44:03 »
fyi - so solls sein:

Sub Initialize    
     Dim session As New NotesSession    
     Dim db As NotesDatabase    
     
     Dim view1 As NotesView    
     Dim view2 As NotesView    
     
     Dim doc1 As notesdocument    
     Dim doc2 As notesdocument    
     
     
     Set db = session.CurrentDatabase    
     Set view1 = db.GetView( "ThemaView" )    
     Set view2 = db.GetView( "(CounterView2)" )    
     Set doc1 = view1.getfirstdocument    
     
     Do While Not doc1 Is Nothing    
           iddoc1$ = doc1.UniversalID
           
           
           Set doc2 = view2.GetDocumentByKey( iddoc1$, True )
           
           If doc2 Is Nothing Then    
                 Set doc2 = New NotesDocument(db)    
                 doc2.Form = "Counter"    
                 doc2.Unid_Faq = doc1.universalid
                 doc2.N_Views = 0    
                 Call doc2.Save( True, True )
           End If    
           Set doc1=view1.getnextdocument      (doc1)
     Loop    
End Sub    
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Notes ist ein Bananenprodukt - es reift beim Kunden
--------------------------------------

Server: 6.5.5 EN auf Sun Solaris 8 & W2K / W2k3
Clients: 6.5.4 DE auf W2K und XP (ca. 3000)

Addon: Group 8.6

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz