Domino 9 und frühere Versionen > ND6: Entwicklung
Button Action in Agent auslagern
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