In some Business scenario, there may be requirement to send report scheduled at fixed intervals via email and stored them in shared folder for future access.
There are 2 ways [with attachment or File URL] to send email with BIRT output.
We need to choose "Email with a file URL" option, file (pdf or xls) is stored in REPORTOUTPUTCNT table.
Once the report is available as BLOB in database, we can extract them for storing to any shared folder using a cron task (Java) or Automation script (Python).
I explained the steps used to configure an action automation script for executing the requirement.
- Create a system property "custom.reportoutputfolder" for storing the report output folder
- Create a custom attribute "isstored" in REPORTOUTPUTCNT table
- Create an action automation script to process the reports to shared output folder. refer in https://github.com/bysurendar/maximo_automationscripts/blob/master/reportOutputToFile.py
- Create an escalation, associate this action and schedule it to run for fixed intervals
I tried this but it did't worked?
ReplyDeletePlease give more information. log information, report execution - etc.
Deletepsdi.util.MXApplicationException: BMXAA0278E - Class does not exist in the path specified.
ReplyDeleteat psdi.common.action.Action.executeCustomClass(Action.java:396)
at psdi.common.action.Action.executeAction(Action.java:311)
at trm.common.action.Action.executeAction(trm.common.action.Action.java)
at psdi.common.action.Action.executeActionGroup(Action.java:365)
at psdi.common.action.Action.executeAction(Action.java:331)
at trm.common.action.Action.executeAction(trm.common.action.Action.java)
at psdi.common.action.Action.executeAction(Action.java:344)
at psdi.app.escalation.engine.EscalationTask.executeAction(EscalationTask.java:1482)
at psdi.app.escalation.engine.EscalationTask.executeActions(EscalationTask.java:1397)
at psdi.app.escalation.engine.EscalationTask.executeReferencePoint(EscalationTask.java:658)
at psdi.app.escalation.engine.EscalationTask.processReferencePoint(EscalationTask.java:524)
at psdi.app.escalation.engine.EscalationTask.performTask(EscalationTask.java:179)
at psdi.app.escalation.engine.EscalationCronTask.cronAction(EscalationCronTask.java:54)
at psdi.server.CronTaskManager.callCronMethod(CronTaskManager.java:2517)
at psdi.server.CronTaskManager.access$1100(CronTaskManager.java:105)
at psdi.server.CronTaskManager$CronThread.run(CronTaskManager.java:3409)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:522)
at java.util.concurrent.FutureTask.run(FutureTask.java:277)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:191)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.lang.Thread.run(Thread.java:811)
Caused by:
java.lang.ClassNotFoundException:
at java.lang.Class.forNameImpl(Native Method)
at java.lang.Class.forName(Class.java:297)
at psdi.common.action.Action.executeCustomClass(Action.java:392)