Wednesday, January 31, 2018

Store Scheduled BIRT Report to Shared folder

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.

3 comments:

  1. I tried this but it did't worked?

    ReplyDelete
    Replies
    1. Please give more information. log information, report execution - etc.

      Delete
  2. psdi.util.MXApplicationException: BMXAA0278E - Class does not exist in the path specified.

    at 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)

    ReplyDelete