Autor Thema: Agent per Scipt starten  (Gelesen 3916 mal)

Offline Wiesel

  • Aktives Mitglied
  • ***
  • Beiträge: 188
  • Geschlecht: Weiblich
Agent per Scipt starten
« am: 05.12.08 - 13:31:51 »
Hallo!

Ich habe einen LotusScript der zum Schluss einen Agenten starten soll.

Im Designer bin ich da auf einige Beispiele gestoßen, die mich aber nicht weiterbringen, da ich Schwierigkeiten beim Umsetzen habe.

Mein Script sieht bisher so aus:

Sub Initialize
   Dim S As New NotesSession
   Dim DB As NotesDatabase
   Dim DocA As NotesDocument 'altes Dok
   Dim DocB As NotesDocument 'neues Dok
   Dim col As NotesDocumentCollection
   Dim agent As NotesAgent
   
   Set DB = S.CurrentDatabase
   Set col = DB.UnprocessedDocuments
   
   Set DocA = col.GetFirstDocument()
                 Do Until DocA Is Nothing
      Set docB = New NotesDocument( db )
      Call docB.MakeResponse( docA )
      Call docA.CopyAllItems( docB, True )
      Call docB.Save( True, True )
      
      Set DocA = col.GetNextDocument(DocA)
   Loop
   
   Set agent = db.GetAgent("(Wertsetzen)")
   agent.Run
   
End Sub

Ich bekomme die Fehlermeldung:
Notes error:Im Hintergrund ausgeführter oder eingebetteter Agent verwendet einen nicht unterstützen Auslöser und Suchtyp

Der Agent wird nicht gestartet. Wie starte ich ihn?

Vielen Dank im Voraus,
Wiesel

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Re: Agent per Scipt starten
« Antwort #1 am: 05.12.08 - 13:34:27 »
Schau dir mal die Eignschaften des Agent an, ist bestimmt für gewählte Dokumente und das geht nicht aus diesem Kontext.
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline Wiesel

  • Aktives Mitglied
  • ***
  • Beiträge: 188
  • Geschlecht: Weiblich
Re: Agent per Scipt starten
« Antwort #2 am: 05.12.08 - 13:39:55 »
Und was kann man da alternativ machen?

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Re: Agent per Scipt starten
« Antwort #3 am: 05.12.08 - 13:58:33 »
Was ist denn die Aufgabe des Agents, muss dieser Dokumente verarbeiten oder geht es auch ohne dem?
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline Wiesel

  • Aktives Mitglied
  • ***
  • Beiträge: 188
  • Geschlecht: Weiblich
Re: Agent per Scipt starten
« Antwort #4 am: 05.12.08 - 14:04:53 »
Der ScriptAgent erstellt ja Antwortdokumente auf Basis von gewählten Hauptdokumenten.

Vor diesem Agent ist ein Agent aktiv, der nach gewünschten Änderungen fragt. Er fragt zu änderndes Feld und gewünschte Änderung ab. Alles per Formelsprache. Die Angaben/Werte werden in variablen (@Environment) gespeichert. Dann erfolgt der Aufruf des SciptAgenten.

Der ScriptAgent soll dann wieder einen Agenten, der ebenfalls in Formelsprache geschrieben ist, aufrufen, der dann die Variablen in das Dokument einsetzt.

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Re: Agent per Scipt starten
« Antwort #5 am: 05.12.08 - 14:14:51 »
Und warum macht ihr das nicht in einem Agenten, klingt sehr verworren, historisch gewachsen? Auf jeden Fall würde ich den letzten Agent weglassen und das gleich in dem LS-Agent einbauen.
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline Wiesel

  • Aktives Mitglied
  • ***
  • Beiträge: 188
  • Geschlecht: Weiblich
Re: Agent per Scipt starten
« Antwort #6 am: 05.12.08 - 14:33:49 »
Wenn Du mir sagst, wie ich das hier in Script umsetze:

@Name([CN];@Word( tx_Aenderungen ; "~" ; 1 ))

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Agent per Scipt starten
« Antwort #7 am: 05.12.08 - 14:36:19 »
@Word => StrToken()
@name => NotesName class 
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Glombi

  • Gast
Re: Agent per Scipt starten
« Antwort #8 am: 05.12.08 - 14:37:15 »
Wenn Du mir sagst, wie ich das hier in Script umsetze:

@Name([CN];@Word( tx_Aenderungen ; "~" ; 1 ))

dim ret_eval as variant
ret_eval = Evaluate( |@Name([CN];@Word( tx_Aenderungen ; "~" ; 1 ))|, doc )
msgbox rev_eval(0)

Andreas

Offline Wiesel

  • Aktives Mitglied
  • ***
  • Beiträge: 188
  • Geschlecht: Weiblich
Re: Agent per Scipt starten
« Antwort #9 am: 05.12.08 - 15:21:19 »
Toll!

Und was ist mit @IsError?

Ich muss das hier alles nach Script bringen und finde die Designer-Hilfe dazu meist echt doof:

@If(   Feld = "B_AbgabeGrund";
   @Do(   @SetField("B_AbgabeAuswahl";"Ja");
            @SetField(Feld;Wert));
   @If( Feld = "B_Kaufpreis";
         @If(   @IsError(@TextToNumber(Wert)) = 0 ;
               @SetField(Feld;@TextToNumber(Wert));
               @Return(@Prompt([Ok];"Fehler";"Der angegebene Kaufpreis ist keine Zahl. Bitte Vorgang wiederholen")));
   @If(   Feld = "B_DatumRechnung";
         @If(   @Length(Wert) = 10 ;
               @SetField(Feld;@TextToTime(Wert));
               @Return(@Prompt([Ok];"Fehler";"Das angegebene Rechnungsdatum ist kein Datum. Bitte Vorgang wiederholen")));
@SetField(Feld;Wert))));

Glombi

  • Gast
Re: Agent per Scipt starten
« Antwort #10 am: 05.12.08 - 15:29:34 »
Und wenn wir das gelöst haben, was kommt dann noch alles  ???

Abfrage auf Zahl geht so:

dim item as NotesItem

set item = doc.getFirstItem("Wert")
if item.Type = NUMBERS then
...
else

End If


Und: Die Designer Hilfe ist nicht doof!  :P

Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Agent per Scipt starten
« Antwort #11 am: 05.12.08 - 15:33:17 »
Die Designerhilfe jedenfalls ist nicht doof.

Du solltest Dir mal die LotusScript-Sprachreferenz durchlesen, dann findest Du, was Du brauchst und wirst auch erkennen, dass @IsError in LS unnötig ist.

Wie Andreas schon sagte: Vorkauen können wir hier nicht alles, und da es um Dei nGeld geht, musst Du Dich da auch mehr selbst reinknieen.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz