Search the FirstSpirit Knowledge Base
Hallo,
hat jemand mit so etwas schon Erfahrungen oder kann sich/mir das Verhalten erklรคren? Am Abschluss eines Deployment-Auftrags wird eine Mail mit folgendem Text (FS-Template) verschickt:
$CMS_SET(set_tasks,#context.tasks)$
$CMS_FOR(task,set_tasks)$
$CMS_IF(task.name.contains("Generierung"))$
$CMS_SET(set_result,task.test())$
========================================================
Erfolgreich: $CMS_IF(set_result.wasSuccessful())$Ja$CMS_ELSE$NEIN$CMS_END_IF$
Warnungen: $CMS_VALUE(set_result.getWarningCount())$
Fehler: $CMS_VALUE(set_result.getErrorCount())$
Schwere Fehler: $CMS_VALUE(set_result.getFatalCount())$
========================================================
Meldungen im Logfile:
$CMS_VALUE(set_result.getMessages().replaceAll("INFO ","\nINFO ").replaceAll("WARN ","\nWARN ").replaceAll("ERROR ","\nERROR "))$
========================================================
$CMS_END_IF$
$CMS_END_FOR$
Sprich: Es wird der Generierungs-Task gesucht, und versucht, die Fehler, den Status und ein paar Meldungen auszugeben. Es kommt aber immer unweigerlich folgendes Ergebnis in der Mail an, auch wenn die Generierung Fehler geworfen hatte:
========================================================
Erfolgreich: Ja
Warnungen: 0
Fehler: 0
Schwere Fehler: 0
========================================================
Meldungen im Logfile:
INFO 11.07.2012 12:24:35.670 (de.espirit.firstspirit.server.sessionmanagement.SessionManagerImpl): dummy session created (ID=2624406399010441636, user=ScheduleManager)
INFO 11.07.2012 12:24:35.670 (de.espirit.firstspirit.server.sessionmanagement.SessionManagerImpl): close dummy session (ID=2624406399010441636, user=ScheduleManager)
INFO 11.07.2012 12:24:35.670 (de.espirit.firstspirit.server.sessionmanagement.SessionManagerImpl): Invalid session id 2624406399010441636
INFO 11.07.2012 12:24:35.670 (de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl): finished test schedule task 'Generierung' - 0 fatal error(s), 0 error(s), 0 warning(s)
Was machen wir falsch?
Das sieht doch gut aus. Wie ist denn der Mail-Text, wenn die Generierung Fehler hatte?
Arndt Bรคr schrieb:
...
Sprich: Es wird der Generierungs-Task gesucht, und versucht, die Fehler, den Status und ein paar Meldungen auszugeben. Es kommt aber immer unweigerlich folgendes Ergebnis in der Mail an, auch wenn die Generierung Fehler geworfen hatte:
รhm, das hรคtte ich wohl noch deutlicher hervorheben mรผssen: Das ist der Mailtext, wenn die Generierung Fehler hatte. Und auch der, wenn sie keine hatte. Das ist immer der Mailtext. Wenn ich mir die Messages so anschaue, kommt bei mir die Vermutung auf, dass .test() nochmals (irgendwas) auf dem task neu testet, und dann nicht das ursprรผngliche Ergebnis, sondern das Ergebnis eines Dummy-Tests zurรผckgibt.
Grรผรe,
Arndt
Ja, task.test() sieht verkehrt aus.
Hier mal ein Beispiel aus einem Projekt.
Es wird davon ausgegangen, dass die Generierung der 2. Task im Auftrag ist.
FIRSTspirit mail for project $CMS_VALUE(#context.getProject().getName())$
$CMS_SET(set_scheduleEntryControl, #context.getTask().getScheduleEntry().getRunningEntries().get(0))$
$CMS_SET(set_generateTaskResult, set_scheduleEntryControl.getState().getTaskResults().get(1))$
Total number of pages: $CMS_VALUE(set_generateTaskResult.getTaskInfoBean().getPageIndex())$
FATAL errors: $CMS_VALUE(set_generateTaskResult.getFatalErrorCount())$
Errors: $CMS_VALUE(set_generateTaskResult.getErrorCount() )$
Warnings: $CMS_VALUE(set_generateTaskResult.getWarningCount() )$
$CMS_IF(set_generateTaskResult.getState().toString().equals("SUCCESS"))$
Generation successful!
$CMS_END_IF$
Hallo,
vielen Dank, das ist in vielerlei Hinsicht ein Augenรถffner. Gehe ich da recht in der Annahme, dass sich der "normale" ScheduleEntry auf die statischen Auftrรคge auf dem Server bezieht, ich aber รผber die "RunningEntries" gehen muss, um den Status von aktuell laufenden Entries / Tasks zu gekommen? Das macht Sinn. Das hatte ich nรคmlich schon verwendet, um herauszufinden, welcher User ein interaktives Deployment denn nun wirklich angestoรen hatte.
Einige andere Dinge stรถren mich dabei aber massiv:
generateTaskResult
?Die ersten paar Punkte wรผrde ich ja selbst anhand der API-Doku klรคren, aber die Dokumentation des ScheduleEntryState lautet
HTTP ERROR: 404
NOT_FOUND
RequestURI=/help/odfs/dev/de/espirit/firstspirit/access/schedule.ScheduleEntryState.html
Grรผรe,
Arndt
Hallo Arndt,
vieleicht hilft folgendes weiter: https://community.e-spirit.com/docs/DOC-1122 oder Anhang (daruf beziehe ich mich in den untenstehenden Hinweisen)
Mit
$CMS_VALUE(TR.getTask().getName())
kommst Du an den Namen den Du Aktionsnamen ran, wenn der immer gleich bennent sollte man darรผber den Generieirungstask herausbekommen.
Mit
$CMS_VALUE(TR.getTask())$
bekommst Du
de.espirit.firstspirit.admin.GenerateTaskImpl
dagegen kรถnnte man sicher auch prรผfen.
Grรผรe Andreas
Hallo,
ja, das hilft natรผrlich enorm weiter. Darauf, dass der Index der Tasks im Scheduler-Eintrag mit den TaskResults aus getTaskResults korrelliert, hรคtte ich mir ja denken kรถnnen .
Jetzt fehlt mir zu meinem Glรผck nur noch die API-Doku von ScheduleEntryState ...
Grรผรe,
Arndt
FS sagt immer: "Wenn die Klasse nicht in der Doku steht, ist diese nicht รถffentlich. Sie kann verwendet werden, kรถnnte sich aber bei einer neuen version รคndern ..." (oder so รคhnlich).
Eclipse hat folgende Methoden in der Klasse als Vorschlag (siehe Anhang)
Noch ein Hinweis:
Gegen die "impl-Klasse" sollte man auch nicht testen, die kann sich auch รคndern
aber es gibt: de.espirit.firstspirit.access.schedule.GenerateTask, ob dass passt kann ich nicht sagen.
Grรผรe
Andreas