You are not logged in.
Hallo liebes Forum,
ich versuche gerade einen Report zu Schedulen und weiß leider absolut nicht, ob ich auf dem richtigen Pfad bin oder nicht, bzw. was mir noch fehlt.
Was will ich erreichen? Ich will einen Schedule für einen Report erstellen, den ein User am 1. Tag jedes Monats bekommt und das um Uhrzeit X.
Mein Ansatz bisher ist das ich ein ReportExecuteJob erstelle, indem ich den Report setze, die Recipients(die Liste der User die den Report empfangen soll?), das OutputFormat und den Title.
Über addAction(MailReportAction) würde ich die Message und das Subject setzen.
Doch habe ich leider kein Ansatz wie ich jetzt dem ReportExecuteJob sage, dass er immer am 1. jedes Monats ausgeführt werden soll.
Kann mir vielleicht jemand helfen, was ich noch tun muss oder habe ich den völlig falschen Ansatz?
Danke für eure Hilfe
Offline
Hi Testuser,
das klingt danach, als ob Du versuchst einen Report per Script zu schedulen. Gibt es einen bestimmten Grund, dafür dies nicht einfach über die Oberfläche zu machen?
Grüße
Arno
Offline
Hi Arno,
per Oberfläche kann ich das leider nicht machen, da mir zu einem bestimmten Zeitpunkt X Informationen fehlen, also muss ich es per Script ausführen, anders ausgedrückt:
zu einem mir unbekannten Zeitpunkt wird ein User automatisch angelegt, dazu ein Report mit Varianten und eine Variante davon soll automatisch ein Schedule Eintrag erhalten.
Dieser ganze "Prozess" passiert automatisch, ohne mein zutun und soll auch keine "Handarbeit" mehr von mir benötigen.
Ich habe gesehen, ich muss die MonthlyNamedDayTrigger, MonthlyNthDayConfig und MonthlyNthDayOfWeekConfig in den Schedule mit hinein bekommen, doch fehlt mir da gerade der Ansatz.
Grüße
Fabian
Offline
Hi Fabian,
ja, das ist etwas tricky. Ohne es jetzt ausprobiert zu haben kannst Du folgendes probieren:
import net.datenwerke.scheduler.service.scheduler.nlp.NlpTriggerService
import net.datenwerke.scheduler.service.scheduler.SchedulerService
import net.datenwerke.rs.scheduler.service.scheduler.jobs.report.ReportExecuteJob
def scheduler = GLOBALS.getInstance(SchedulerService.class)
def nlp = GLOBALS.getInstance(NlpTriggerService.class)
/* get job */
def job = GLOBALS.getInstance(ReportExecuteJob.class)
job.setReport(...)
job.setUser(...)
job.setOutputFormat(...)
job.setRecipients(...)
/* get trigger with NLP parser (so we do not need to take care of xxTriger class) */
def trigger = nlp.parseExpression("every month on day 1 at 11:11")
/* schedule job */
scheduler.schedule(job, trigger)
Wie gesagt .. nicht getestet, also ohne Gewährleistung ..
Grüße
Arno
Offline
Hi Arno,
danke für die schnelle Hilfe.
Es funktioniert einwandfrei, ich musste nur noch die MailReportAction hinzufügen (Message, Subject). Das mit dem NLP Parser macht die Sache einfacher.
vg
Fabian
Offline
guter Punkt. Ohne Action ist die Ausführung nicht wirklich hilfreich ...
Viele Grüße
Arno
Offline