getEmailAddressArray method: BIP_EMAIL_DATA class
Syntax
getEmailAddressArray()
Description
Implement the getEmailAddressArray method return an array of external email addresses to BI Publisher for PeopleSoft.
Note:
This is an abstract method.
Parameters
None.
Returns
An array of String.
Example
In the following example, DEPTID is used as the burst field. The email addresses corresponding to the specified DEPTID burst value are retrieved from the PS_EMPL_MD_EMAIL table and returned in the array.
method getEmailAddressArray
/+ Returns Array of String +/
/+ Extends/implements IPT_BIP_EXT_EMAIL_INT:BIP_EMAIL_DATA.getEmailAddressArray +/
Local array of string &aEmailAddressArray = CreateArrayRept("", 0);
Local string &sql;
Local string &sEmail;
Local string &sDeptId;
Local SQL &SQLObj;
Local number &i;
If &ReportName = "" Or
&ReportName = " " Then
&m_errorStr = "No Report Name is specified";
Return Null;
End-If;
try
Evaluate Upper(LTrim(RTrim(&ReportName)))
When "CQ_EMAILS_MD"
When "CQEMAILNB_MD"
When-Other
&m_errorStr = "Incorrect user email data application class is used for the report - " | &ReportName;
Return Null;
End-Evaluate;
If &BurstFieldName <> "" Then
WriteToLog(%ApplicationLogFence_Level1, "App Plugin - BurstFieldName: " | &BurstFieldName);
WriteToLog(%ApplicationLogFence_Level1, "App Plugin - BurstFieldValue: " | &BurstFieldValue);
End-If;
If &BurstFieldName <> "" Then
If Not (Upper(&BurstFieldName) = "DEPTID" Or
Upper(&BurstFieldName) = "A.DEPTID") Then
&m_errorStr = "&BurstFieldName is not equil to DEPTID (A.DEPTID)";
Return Null;
End-If;
End-If;
&sDeptId = &BurstFieldValue;
If &BurstFieldName <> "" Then
&sql = "SELECT A.EMAILID FROM PS_EMPL_MD_EMAIL A WHERE A.EFFDT = ( SELECT MAX(B.EFFDT) FROM PS_EMPL_MD_EMAIL B WHERE A.EMPLID = B.EMPLID AND A.DEPTID = B.DEPTID AND B.EFFDT <=%CurrentDateIn) AND A.DEPTID = '" | &sDeptId | "'";
Else
&sql = "SELECT A.EMAILID FROM PS_EMPL_MD_EMAIL A WHERE A.EFFDT = ( SELECT MAX(B.EFFDT) FROM PS_EMPL_MD_EMAIL B WHERE A.EMPLID = B.EMPLID AND A.DEPTID = B.DEPTID AND B.EFFDT <=%CurrentDateIn)";
End-If;
&SQLObj = CreateSQL();
&SQLObj.Open(&sql);
&SQLObj.ReuseCursor = True;
While &SQLObj.Fetch(&sEmail)
If All(&sEmail) Then
&aEmailAddressArray.Push(&sEmail);
End-If;
End-While;
If &SQLObj.IsOpen Then
&SQLObj.Close();
End-If;
Return &aEmailAddressArray;
catch Exception &Err
Local string &sSub1, &sSub2, &sSub3, &sSub4, &sSub5;
Evaluate &Err.SubstitutionCount
When > 4
&sSub5 = &Err.GetSubstitution(5);
When > 3
&sSub4 = &Err.GetSubstitution(4);
When > 2
&sSub3 = &Err.GetSubstitution(3);
When > 1
&sSub2 = &Err.GetSubstitution(2);
When > 0
&sSub1 = &Err.GetSubstitution(1);
End-Evaluate;
&m_errorStr = MsgGet(&Err.MessageSetNumber, &Err.MessageNumber, &Err.ToString(), &sSub1, &sSub2, &sSub3, &sSub4, &sSub5);
Return Null;
end-try;
end-method;