Understanding the BIP_EMAIL_DATA Interface Class

There may be situations where you want to distribute reports using email to recipients that do not have PeopleSoft user profiles. PeopleTools enables you to distribute bursted and non-bursted BI Publisher reports to external users whose email addresses are stored in the database, file server, or another location.

You create an implementation of the IPT_BIP_EXT_EMAIL_INT:BIP_EMAIL_DATA interface class to retrieve the stored distribution lists. Then, your implemented application class is specified in the psxp_ext_email_appclass property of the report definition.

When you create an implementation of the IPT_BIP_EXT_EMAIL_INT:BIP_EMAIL_DATA interface, you need your application class to return an array of email addresses. When you implement this interface:

  1. You must not set any of the three properties that are set for you by BI Publisher for PeopleSoft. These are: ReportName, BurstFieldName, and BurstFieldValue.

  2. Implement the BIP_EMAIL_DATA constructor method to initialize the error message set to your custom implementation.

    See BIP_EMAIL_DATA for an example implementation.

  3. You must complete implementations of the interface’s two abstract methods:

    • Implement getEmailAddressArray to return the array of external email addresses.

      See getEmailAddressArray for an example implementation.

    • Implement getErrorString to return a detailed error message to BI Publisher for PeopleSoft.

      See getErrorString for more information and an example.

  4. You must provide the full path to your application class by specifying the psxp_ext_email_appclass property on the Global Properties page—for example:

    MY_CUSTOM_PACKAGE:MY_BIP_EMAIL_DATA

The following example shows just the class definition block of an example implementation of an application class named MY_BIP_EMAIL_DATA:

import IPT_BIP_EXT_EMAIL_INT:BIP_EMAIL_DATA;

class MY_BIP_EMAIL_DATA implements IPT_BIP_EXT_EMAIL_INT:BIP_EMAIL_DATA
   /* inputs */
   property string ReportName; /* Report Name */
   property string BurstFieldName; /* burst field name  */
   property string BurstFieldValue; /* burst field value  */
   
   /* outputs */
   method MY_BIP_EMAIL_DATA(); /*Class constructor */
   method getEmailAddressArray() Returns array of string; /* String array of email receipient addresses */
   method getErrorString() Returns string; /* An error string, if any */
   
private
   /* those instance variables could be used for data retriaval and validation  */
   instance string &m_errorStr;
   instance number &m_ErrorMessageSet;
   
end-class;