Auch einPrint in der ersten Zeile des Agenten wird nicht verarbeitet.
Wie gesagt: Im Script-Debugger ist nicht einmal zu sehen, daß LS in den Agenten reingeht.
Aus einem LS heraus einen LS-Agent aufrufen
- lotusfee
- Erledigt
-
-
Hier noch ein kleiner Auszu aus der Hilfe.
ZitatYou cannot debug a called agent.
(gilt fuer agent.Run und agent.RunOnServer)Andreas
-
Schade wegen des Debuggers, aber...
Die erste Zeile des Agenten wird ja wohl trotzdem nicht verarbeitet, oder? -
Da es sich um einen "Called" Agent handelt, kann ich mir sehr gut vorstellen, dass seine "Print"-Ausgaben im Log landen.
Schau doch einmal in die lokale Log.nsf und in die vom Server.
Eventuell findest Du hier Deine Ausgaben.Andreas
-
Ok! Im lokalen log steht drin:
13.05.2009 10:16:01 Agent-Meldung: Agent gestartet
13.05.2009 10:16:51 Agent-Meldung: Agent gestartet
Das war die Meldung vom Print.
Nur blöderweise wird dann weiter nix gemacht.
Hab ich am Agenten-Code was falsch? -
Auch wenn es jetzt ein wenig nervig klingen mag, aber
bau eine Fehlerroutine in den Code des aufgerufenen Agenten ein und auch noch ein paar mehr prints, damit Du eingrenzen kannst, wann der Agent aussteigt.
Andreas
. -
Sub Initialize
Print "Kommentar - Agent gestartet"
Set se = New NotesSession
Set db = se.CurrentDatabase
Set agent = se.CurrentAgent
If Not agent Is Nothing Then Print "Kommentar - Agent zugewiesen"
Set doc = db.GetDocumentByID(agent.ParameterDocID)
If Not doc Is Nothing Then Print "Kommentar - Doc zugewiesen"
Call Kommentar("Kommentar")
If doc.Kommentar(0) = "" Then Exit Sub
sSendTo(1) = "lotusfee/firma/de"
sSubject = "Ein neuer Kommentar wurde eingetragen"
sMessage = "Bitte lesen Sie im entsprechenden Bereich des Tickets nach ----- >>> "
wfl_Text = "Kommentar"
Call SendeAn(doc, sSendTo, sSubject, sMessage, wfl_Text)
Call doc.save(True, True)
End SubErgebnis:
13.05.2009 10:22:39 Agent druckt: Kommentar - Agent gestartet
13.05.2009 10:22:39 Agent druckt: Kommentar - Agent zugewiesen
13.05.2009 10:22:39 Agent druckt: Kommentar - Doc zugewiesenSo weit - so gut.
-
-
Nein. Der Aufruf ist ok. Die Routine Kommentar bekommt einen Feldnamen übergeben. In diesem Fall ist es das Feld "Kommentar".
In die Routine wird auch reingesprungen. Evtl. gibt's darin Probleme mit der Zuweisung (wg uidoc)...?
Sub Kommentar(feldname As String)
Set ws = New NotesUIWorkspace
Set uidoc = ws.CurrentDocument
Set doc = uidoc.document
Set se = New NotesSession
Set item = doc.GetFirstItem( feldname )
comment = Inputbox( "Bitte geben Sie Ihren Kommentar ein!" , "Kommentar" )
If comment = "" Then Exit Sub
newValue = Cstr(Today) + " - " + se.CommonUserName + ": " + comment
Call item.AppendToTextList( newValue )
Call doc.Save( False, True )
Call uidoc.Refresh
End Sub -
Ist möglicherweise die Inputbox ein Problem?
-
Womit wir wieder beim Thema waeren.
UI-Klassen in einem "called" Agent gehen nicht, da an dieser Stelle keine Interaktion mit dem Frontend moeglich ist.
Andreas
-
sobald Du in einem Agenten UI-Klassen verwendest, der auf dem Server laufen soll, dann läuft dieser nicht.
Dies geht sogar soweit, dass Script-Bibs, die eingebunden sind nirgends UI-Klassen verwendet werden dürfen. Auch nicht in Function und Subs, die Du in dem Agenten nicht verwendest.
Gruß
Dirk -
Aber dann....
wie zum Geier bekomme ich dann das Ursprunsproblem gelöst?Aufgabe:
Erlaube einem User, der zwar Autor ist, aber nicht mehr im Autorenfeld seines Dokumentes steht, die Eintragung in einem bestimmten Feld!Lösungsansatz:
Nutze einen Button und erstelle die Eintragung mit dem Recht des Servers.Oder?????
-
* Lösch den User halt nicht aus dem Autorenfeld raus.
* Gib dem User Editorenrechte.
* Lass den User ein temporäres Dokument erstellen, wo die Eintragung vorgenommen und hinterher vom Serveragenten verwurstet und gelöscht wird.
* Überleg dir eine sinnigere Anwendungslogik. -
Ich hatte eine Super-sinnige Anwendungslogik: Abschnitte mit Berechtigungen.
Leider funktionierten die nur eben nicht sauber-> siehe anderen Post in diesem Forum.
http://www.dominoforum.de/modu…p?topic_id=20020&forum=47Vielleicht kannst Du mir ja an der Stelle weiterhelfen? Das wäre mir eigentlich am liebsten, denn diese Logik ist von der Struktur her am sinnigsten.
-
Ich verstehe im Moment nicht ganz, warum ein User aus dem Autorenfeld rausfliegt, dann aber noch etwas ändern können muss.
Warum das mit deiner Editorenrolle nicht tut, kann ich nicht nachvollziehen. Könnte ein Bug in deiner Version sein oder schlicht ein Cachingproblem.
-
Naja, ich erklär's dir:
Der User soll als Autor Dokumente anlegen, ggf. als entwurf ablegen.
Wenn er dann sein dokument fertig hat, schickt er es ab und soll es ab dem Zeitpunkt nicht mehr ändern können.
So weit so gut - aber der User hat manchmal das bedürfnis, noch einen Kommentar hinterherzuschieben.
Dazu soll er die Möglichkeit haben, einen Kommentar zu schreiben, der auch im Dokument protokolliert wird.
Dabei soll das System den Admin per Mail darüber informieren, daß es einen neuen Kommentar gibt.Der Plan mit den Abschnitten wäre bestens geeignet, wenn es nur funktionieren würde.
-
Frage.
Wie haeufig kommt denn diese Konstellation vor?
Wenn dies nur sporadisch vorkommt und nicht "tausende" Kommentare erfolgen, dann waere doch auch eine Variante mit Antwortdokumenten denkbar.
Diese werden ja automatisch den jeweiligen Hauptdokumente zugeordnet, es besteht also eine Beziehung zu diesem und nch dem Speichern dieses Antwortdokumentes kannst Du den Admin ja auch ohne Probleme ueber diesen Kommentar informieren.
Andreas
-
Ein Workflow ist nun einfach mal dazu da, Arbeitsschritte und Kompetenzen in geordnete Bahnen zu leiten. Bedürfnisse spielen da keine Rolle. Ist ein Dokument abgeschickt, d.h. ein Arbeitsschritt beendet, ist es halt so.
Hätte ich letzten Oktober nachdem ich das gesamte Wohnzimmer verputzt hab, hinterher das dringende Bedürfniss gehabt nun doch noch woanders Kabel zu verlegen, hätte ich auch ziemlich blöd dagestanden. Oder aber alles neu machen dürfen. Und hier ist es nicht anders: Dokument abgeschickt, Arbeitsschritt beendet, Schicht im Schacht. Ich predige immer wieder aufs Neue, dass man die Dummheit der User nur bedingt durch technische Spielereien kompensieren kann. 'Nuff said!
-
Vielleicht nehme ich den Vorschlag von Andreas und lasse den User einen Kommentar als Antwortdokument erstellen.
Die Benachrichtigung und ggf. die Eintragung im Hauptdokument könnte ja ein (periodischer) Agent auch übernehmen...