Domino 9 und frühere Versionen > ND6: Entwicklung

Button Action in Agent auslagern

<< < (3/3)

TMC:

--- Zitat von: Peacemaker am 25.09.04 - 23:03:43 ---Der folgende Ansatz ist aber wohl falsch... er hängt sich an dem [n] auf....
Set item = doc.ReplaceItemValue( "subsys_temp", subsys[n] )
--- Ende Zitat ---

[n] gibt es nicht in LotusScript.

Schau mal in Best Practices hier, da gibt es z.B.
Schleifenkunde in Lotus Script

koehlerbv:
Und bitte grundlegend LS lernen, und nicht herumschnitzen. Am morgigen Sonntag bekommst Du das niemals (sicher) gebacken.


--- Code: ---Set item = doc.ReplaceItemValue( "subsys_temp", subsys[n] )

--- Ende Code ---
wäre soetwas wie

doc.subsys_temp" = doc.subsys (DeineIntegerLoopVariable)

Geh' es langsam und grundlegend an - Du wirst später, aber nur dann davon profitieren.

HTH,
Bernhard

Peacemaker:
So, hab jetzt folgenden LS Code fertig - das  mit dem grundlegend einarbeiten geht nicht immer so einfach, vor allem wenn die Zeit drängt...

Sub Initialize
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim agent As NotesAgent
   
   Set db = session.CurrentDatabase
   Set doc = CurrentNotesDocument
   Set agent = db.GetAgent("test")
   Set n = doc.numberss
   
   
   While n >= 1
      doc.subsys_temp = doc.subsys (n)
      doc.ecnumbers_temp = doc.ecnumbers (n)
      doc.alldrivers_temp = doc.alldrivers (n)
      doc.allrec_temp = doc.allrec (n)
      doc.allact_temp = doc.allact (n)
      doc.allacttime_temp = doc.allacttime (n)
      doc.allmax_temp = doc.allmax (n)
      doc.allacc_temp = doc.allacc (n)
      
      Call session.SetEnvironmentVar( "singlelongname", doc.alllongnames(n) )
      Call session.SetEnvironmentVar( "singlenumber", n )
      Call session.SetEnvironmentVar( "sysid", doc.sysid )
      Call session.SetEnvironmentVar( "location", doc.location(n) )
      Call session.SetEnvironmentVar( "type", doc.type(n) )
      Call session.SetEnvironmentVar( "model", doc.model(n) )
      Call session.SetEnvironmentVar( "customer", doc.customer(n) )
      Call doc.Save( False, False )
      agent.Run
      
      n=n-1
      
   Wend
   
   doc.subsys_temp = "Contains all "
   doc.ecnumbers_temp = "Mainframe "
   doc.alldrivers_temp = "Information"
   doc.allrec_temp = ""
   doc.allact_temp = ""
   doc.allacttime_temp = ""
   doc.allmax_temp = ""
   doc.allacc_temp = ""
   
   
   Call doc.Save( False, False )
End Sub

Beim Run bekomme ich ein Type missmatch - habe aber keine Idee wieso...
Ein weiteres Problem war, folgende Formulas äquivalent umszuscripten :
@Command([Compose];"add_subsystem");

Daher der "Run once" Agent test.
@Command([Compose];"add_subsystem");
@Command([FileSave]);
@Command( [CloseWindow] ) ;


Kann mir jemand helfen???? Ist ein fehler oben offensichtlich?

Danke schonmal

Marinero Atlántico:

--- Zitat von: Peacemaker am 27.09.04 - 07:59:32 ---vor allem wenn die Zeit drängt...

--- Ende Zitat ---
Du solltest wirklich ein Buch zu LotusScript lesen, z.B. wie die von Raimund Mann. So ist das wirklich zu anstrengend und stürzt z.B. mich in mittelschwere Identitätskrisen.  So beschleicht mich schnell das Gefühl, dass ich neben meiner sowieso grundsätzlich unterbezahlte Arbeit auch noch die Arbeit von anderen mache.
Dies war jetzt nicht persönlich gemeint.

1. Wenn ihr Hilfe braucht, baut bitte vernünftiges Errorhandling ein. Du weisst vermutlich nicht, was das ist. Aber nur weil du einfach kein vernünftiges LotusScript Buch gelesen hast.
2. Neue Dokumente kann man einfach mit notesDatabase.createDocument erstellen (oder so ähnlich)
3. Du hast irgendwie kein Gespür für Datentypen.


--- Code: ---Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
        Dim docNew As NotesDocument
Dim agent As NotesAgent
Dim strN As String
        Dim n as Integer

   on Error goto Fehler
Set db = session.CurrentDatabase
Set doc = CurrentNotesDocument
Set agent = db.GetAgent("test")
strN = doc.numberss(0)
n = Cstr(n)

While n >= 1
                 set docNew = db.createDocument
                docNew.form = "add_subsystem"     
docNew.subsys_temp = doc.subsys (n)
docNew.ecnumbers_temp = doc.ecnumbers (n)
docNew.alldrivers_temp = doc.alldrivers (n)
docNew.allrec_temp = doc.allrec (n)
docNew.allact_temp = doc.allact (n)
docNew.allacttime_temp = doc.allacttime (n)
docNew.allmax_temp = doc.allmax (n)
docNew.allacc_temp = doc.allacc (n)
docNew.save true, false

n=n-1

Wend

doc.subsys_temp = "Contains all "
doc.ecnumbers_temp = "Mainframe "
doc.alldrivers_temp = "Information"
doc.allrec_temp = ""
doc.allact_temp = ""
doc.allacttime_temp = ""
doc.allmax_temp = ""
doc.allacc_temp = ""


Call doc.Save( False, False )
exit sub
fehler:
msgbox "Fehler:" & Error$ & "(" Cstr(Err) & ") in Zeile " & Cstr(Erl)
End Sub
--- Ende Code ---

Das ist nicht gut, sollte aber ein paar Ideen geben. Und ich mache sowieso immer Syntaxfehler, weil ich seit ca. 4 Monaten kaum LotusScript programmiert habe.

Gruß Axel

Peacemaker:
sorry fehlpost

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln