Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: DerAndre am 15.06.05 - 09:13:01
-
Moin...
Ich habe schon hier und in Notes.net gesucht, aber keine erschöpfende Antwort gefunden.
Zum Problem:
Ich habe DB A und B. In DB B ist ein Status erreicht, aufgrund dessen in DB A ein Agent gestartet werden muss.
Ich kann auf den Agenten in DB A zugreifen, seinen Parent anzeigen lassen usw. das ist nicht das Problem.
Agent.Run gibt aus als Ergebnis 0 zurück.
A-Bär der Code im Agenten wird nicht ausgeführt. Noch nicht einmal ein Print.
Ich habe mal spasshalber eine @Function eingesetzt, da bekam ich die Meldung, @Funktion ist in diesem Kontext eine ungültige Aktion...
Inzwischen bin ich der Meinung, daß das nicht geht und ziemlich genervt und gefrustet. ??? :P :-:
Habt Ihr vielleicht eine Idee ob das nicht doch irgendwie machbar ist?
Client 6.5.x
Server 6.5.1
Datenbank ist unter 4 oder 5 Entwickelt worden.
Gruss
André
-
Nur mal so ein paar Grundfragen:
Ist es ein Script Agent?
RunOnServer schon ausprobiert?
Wie siehts mit den Berechtigungen aus?
Läuft der Agent in DB A korrekt?
Sind irgendwelche LogInformation verfügbar von den beiden Agenten ausser der Rückgabewert von Agent in DB A?
Gruss
umi
-
Es ist ein Scriptagent der eine Funktion aus einer Scriptbibliothek aufruft. Ist eine komplexere Geschichte.
RunOnServer geht nicht, da Benutzerinteraktion erforderlich ist.
Berechtigungen sind korrekt und der Agent läuft über Agent.Run in DB A genau so wie er soll.
Leider nein. das Agentenprotokoll gibt nichts her. Keine Info das aktuell gelaufen.
Gruss
André
-
In diesem Fall werden die Benutzerinteratkionen auch nicht ausgeführt?
evtl. kannst Du ja den Agent in DB A um ein paar Outputs mit Messageboxen oder Print Statements erweitern.
Evtl. prüfen ob der einen Errorhandler hat und wie der aussieht.
gruss
-
Aus der DesignerHelp:
The user cannot interact directly with a called agent. User output goes to the Domino log.
....
You cannot use the Notes UI classes in an agent called by this method.
Letzteres dürfte erklären, warum der Agent nicht map piep sagt.
Bernhard
-
Das hab ich mir auch schon überlegt und deshalb den selben Agenten in der aktuellen Datenbank aufgerufen. Da klappt es.
Ahhhhh, ich glaub da könnte der Hund begraben sein....
Der Agent kann das UI nicht nutzen, da er nicht über NotesUIDatabase herangezogen werden kann sondern nur über NotesDatabase
Ja das macht Sinn, ohne UI-Bezug kein UI.....
Also nicht möglich...
Wie gut das ich ganz kurze Haare hab... sonst O0
Gruss
André
-
Wer wird den gleich in die Luft gehen, greifen Sie lieber ....
... zum Agenten und verschieb ihn in die DB A. Bzw. mach dann noch eine Scriptbiliothek draus und ruf die auf vom 1. Agenten her. Damit Du den Code nur einmal zu warten brauchst, kannst Du da ja noch einen anderen Templatenamen eintragen. Dann kannst Du den Code von beiden DBs aus benutzen und brauchst Ihn aber nur einmal zu warten.
-
Der Agent kann das UI nicht nutzen, da er nicht über NotesUIDatabase herangezogen werden kann sondern nur über NotesDatabase
Das stimmt jetzt aber nicht soooo ganz. oder ?
Der Agent kann das UI nicht benützen, weil er nicht direkt im UI gestartet wird, sondern von einem anderen Agent aus.
gruss
umi
-
Ja, das wollte ich eigentlich sagen ;D
@ctillmans
Dieser Agent ist über eine Schablone in allen Datenbanken verteilt.
Da das Geraffel aber zu unserem Workflow gehört und mit Informationen gearbeitet wird die Datenbankspeziefisch sind funzt das leider nicht.
Gruss
André
-
Is ja gut, habe es gemerkt.
Ich habe es gerade editiert und jetzt stimmt die Überlegung.
Bei mir läuft das so, ich habe eine DB mit Skriptbibliotheken und dort wird der gesamte Code geschrieben und dann gleichmässig verteilt. Die Agenten sind datenbankspezifisch. Somit tritt bei mir das Problem nie auf, weil ich immer nur Bibliotheken aufrufen muss und nie Agenten. Funktioniert wunderbar.
-
@ctillmanns
Sorry wenn ich unwirsch geklungen habe, war nicht beabsichtigt.
Gruss
André
-
Musst Dich nicht entschuldigen, was ich vorher geschrieben hatte war ziemlicher Müll.
In meinem Alter reicht das Gedächtnis halt nicht mehr bis zum ersten Eintrag.
Hoffentlich klappt es dafür jetzt.