Oracle Analytics Cloud and Server

Welcome to the Oracle Analytics Community: Please complete your User Profile and upload your Profile Picture

BI Publisher 11g report bursting to supervisors emails not executing but scheduling job executes and

Received Response
43
Views
8
Comments

Summary

BI Publisher 11g report bursting to supervisors emails not executing but scheduling job executes and status shows success with output

Content

Q. I created a report called Employee Anniversary Report which I intend to burst by email to supervisors. I'm not receiving any report but when I schedule it to the supervisors emails, they receive it.

    When I look at the report history,the status shows success. Why won't the bursting by email go through?

image

Answers

  • Sherry George
    Sherry George Rank 7 - Analytics & AI Coach

    Why are you hard coding PARAMETER1. It should be the  'SUPERVISOR_EMAIL' column. Also I'll suggest to make 'Split By' to 'SUPERVISOR_EMAIL'.

  • Sherry George
    Sherry George Rank 7 - Analytics & AI Coach

    Just realized that your parameter values are wrong. Read documentation https://docs.oracle.com/cd/E28280_01/bi.1111/e22258/add_burst_def.htm#BIPDM350

    Only Parameter 1 is correct. Subject is 'PARAMETER 4, message body is 'PARAMETER5' etc..

    Bursting query example.

    SELECT    login key,    'bipdm_rpt' template,    'en-US' locale,    'pdf' output_format,    'EMAIL' del_channel,    'Scorecard' || '_' || login AS output_name,    email parameter1,    'sherrygeorge@abc.com' parameter2,    'bip@abc.com' parameter3,    TO_CHAR(        SYSDATE,        'Month'    ) || 'Scorecard' parameter4,    'Hi '     || login     || ','     || CHR(10)     || CHR(10)     || 'Here is your scorecard for the month of '     || TO_CHAR(        SYSDATE,        'Month'    )     || '.'     || ' Please reach out to your supervisor if you have any questions/clarifications about your scorecard.' parameter5,    'true' parameter6FROM    wc_user_email_test

    Also I believe you have enabled bursting under report properties.

  • Sherry George
    Sherry George Rank 7 - Analytics & AI Coach

    Here are a few things you could still do.

    1.Bump up the bi publisher log  and look for clues there.

    2.Ask the recipients to check their junk/spam folder.

    3.Check with your mail server admin if they are blocking any emails.

    4.Can you confirm the bursting query returns results when run in the database (from sql developer/sql plus)? Post results here.

    5. Also post the XML data from the dataset.

  • Georgegithinji
    Georgegithinji Rank 3 - Community Apprentice

    I removed the single quotes and scheduled report on ' run now '. Still no emails from the bursting.

    I welcome all ideas. I and my colleagues have exhausted our troubleshooting ..

    image

  • Sherry George
    Sherry George Rank 7 - Analytics & AI Coach

    Why is SUPERVISOR_EMAIL in single quotes? It should be a column in the Employee_Anniversary_Report table.

  • Georgegithinji
    Georgegithinji Rank 3 - Community Apprentice

    I adjusted 'split by' and 'deliver by' to use 'SUPERVISOR_EMAIL' and equally removed the hard coded emails to 'SUPERVISOR_EMAIL'.

    This too didn't burst to emails. Any idea?

    image

  • Georgegithinji
    Georgegithinji Rank 3 - Community Apprentice

    Here is the xml data as requested

    image

  • Georgegithinji
    Georgegithinji Rank 3 - Community Apprentice

    So,

    1. I had enabled bursting under report properties as above.

    2. No junk emails in supervisors spam folders and no blocked emails by server admin.

    3. I corrected the bursting sql query to reflect the above parameter ordering..

    A background:

    This is the query I ran in the database to create a data model called Employee_Anniversary and a report called Anniversary Report.

    SELECT ppf1.local_name Supervisor_Name

    --,ppf1.full_name Supervisor_Name

    --,'andyxx@xxx.com'   Supervisor_Email 

               ,ppf1.email_address Supervisor_Email 

               --,DECODE(ppf1.email_address,'rodxxx@xxx.com',

    --'axxx@xx.com','axx@xxx.com') Supervisor_Email

    ,ppf.full_name Emp_Name

    ,ppf.last_name Emp_Last_Name

          ,ppf.first_name Emp_First_Name

          ,ppf.original_date_of_hire Emp_Orig_Hire_Date

    ,ppos.date_start Emp_Latest_Hire_Date

    ,ppf.date_of_birth        

          ,lower(ppf.email_address) email_address

    ,ppf.employee_number   

          ,ppf.national_identifier

          ,( CASE WHEN TRUNC(MONTHS_BETWEEN(SYSDATE, TRUNC(ppos.date_start,'Month')) / 12) <= 1 THEN '1 Year '

    ELSE TRUNC(MONTHS_BETWEEN(SYSDATE, TRUNC(ppos.date_start,'Month')) / 12) || ' Years '

             END ) Employment_Duration

    --,(TRUNC(MONTHS_BETWEEN(SYSDATE, ppos.date_start) / 12) || ' Years '

          -- ||MOD(TRUNC(MONTHS_BETWEEN(SYSDATE,ppos.date_start)),12)||' Months '

          -- ||(TO_DATE(SYSDATE)- ADD_MONTHS(ppos.date_start,TRUNC(MONTHS_BETWEEN

          --(SYSDATE,ppos.date_start))))|| ' Days ') Employment_Duration

          ,TO_CHAR(SYSDATE,'Month') Current_Month        

    FROM per_all_people_f         ppf1

    ,per_all_assignments_f    paaf

    --

          ,per_all_people_f ppf

          ,per_person_types ppt

          ,per_person_type_usages_f pptu

    ,per_periods_of_service   ppos

    WHERE  1 = 1

    --AND    ppf1.last_name = 'Gxxxxxxxxx'

    AND    TRUNC(SYSDATE) BETWEEN TRUNC(ppf1.effective_start_date) AND  TRUNC(NVL(ppf1.effective_end_date,SYSDATE))

    AND    ppf1.person_id = paaf.supervisor_id

    AND    ppf1.business_group_id = paaf.business_group_id

    AND    TRUNC(SYSDATE) BETWEEN TRUNC(ppf.effective_start_date) AND TRUNC(NVL(ppf.effective_end_date,SYSDATE))

    AND    paaf.assignment_number IS NOT NULL

    AND    paaf.primary_flag = 'Y'

    AND    paaf.person_id = ppf.person_id

    --

    AND    ppf.employee_number IS NOT NULL

    AND    ppf.current_employee_flag = 'Y'

    AND    TRUNC(SYSDATE) BETWEEN paaf.effective_start_date AND paaf.effective_end_date

    AND    ppf.business_group_id = paaf.business_group_id

    AND    ppf.person_type_id    = ppt.person_type_id

    AND    ppf.business_group_id = ppt.business_group_id

    AND    ppt.user_person_type  = 'Employee'

    AND ppf.person_id         = pptu.person_id

    AND    ppt.person_type_id    = pptu.person_type_id

    AND    TRUNC(SYSDATE) BETWEEN pptu.effective_start_date AND pptu.effective_end_date

    AND ppf.person_id         = ppos.person_id

    AND    ppos.actual_termination_date IS NULL

    AND    UPPER(SUBSTR(TO_CHAR(ppos.date_start,'DD-MON-YYYY'),4,3)) = UPPER(SUBSTR(TO_CHAR(TRUNC(SYSDATE),'DD-MON-YYYY'),4,3))

    AND MONTHS_BETWEEN(TRUNC(SYSDATE),TRUNC(ppos.date_start)) > 11

    ORDER BY 1,8

    Below is the bursting sql query with ' split by' and  'deliver by' conditions set.

    P.s I also used SUPERVISOR_EMAIL for both 'split by ' and  'deliver by'

    image

    Now,

    ' Error 00942 table or view doesnt exist ' when we run the above bursting query in slq developer.

    We have tried the below solutions for the error above  as recommended in a different blog..

    https://stackoverflow.com/questions/16129912/sql-error-ora-00942-table-or-view-does-not-exist

    Any solution ?