Hi Patricia,
I've worked with Banner for over 5 years now. The ORACLE tables, as well as "all" relational DB's, store data as variable. The MASTER files generated "FOR THE ODS VIEWS" at some schools, varchar is enabled, at others, it is not.
If you are going against the Banner Tables, varchar will be enabled.
To remedy your the ReportCaster problem, for columns DEFINEd as AXXV, you need to DEFINE the columns you are bursting on to itself:
So, if the EMAIL_ADDRESS column in GOREMAL is defined as A90V, so, then
DEFINE FILE GOREMAL
GOREMAL_EMAIL_ADDRESS/A90 = GOREMAL_EMAIL_ADDRESS;
or, it you want just a subset:
X_EMAIL_ADDR/A30 = SUBSTR(90,GOREMAL_EMAIL_ADDRESS,1,30,30,X_EMAIL_ADDR);
END
TABLE FILE GOREMAL
SUM
GOREMAL_EMAIL_ADDRESS
X_EMAIL_ADDR
BY SPRIDEN_ID
ON TABLE HOLD AS HOLD1 FORMAT ALPHA
END
Then, re-extract HOLD1, sorting BY BURST VALUE.
Here is current Production code used in ReportCaster for Monthly Sub Ledger reports bursting/distributing on Month, Year, Manager:
-* File Sublmgrs.fex
-INCLUDE SYSDATES
-INCLUDE PERIODS
JOIN FTVFUND_FMGR_CODE_PIDM IN FTVFUND TO GOREMAL_PIDM IN GOREMAL AS J1
-RUN
DEFINE FILE FTVFUND
XFUND/A6 = EDIT(FTVFUND_FUND_CODE,'999999');
EFF_DATE/YYMD = HDATE(FTVFUND_NCHG_DATE, 'YYMD');
EFF_YR/YY = EFF_DATE;
END
TABLE FILE FTVFUND
PRINT
GOREMAL_EMAIL_ADDRESS
FTVFUND_NCHG_DATE
COMPUTE XCNT/I3 = IF XFUND EQ LAST XFUND THEN XCNT + 1 ELSE 1;
BY XFUND
BY HIGHEST FTVFUND_EFF_DATE
WHERE EFF_YR EQ 2099;
WHERE GOREMAL_PREFERRED_IND EQ 'Y';
WHERE TOTAL XCNT EQ 1;
WHERE FTVFUND_COAS_CODE EQ 'A';
ON TABLE HOLD AS GOT_EMAIL
END
-RUN
DEFINE FILE FUND_HIERARCHY
XFUND/A6 = EDIT(FUND,'999999');
FMGR_L/A25 = SUBSTR(60,FMGR_LAST_NAME, 1,25,25,FMGR_L);
F_MGR/A42 = FMGR_L || (', ' | FMGR_FIRST_NAME);
END
TABLE FILE FUND_HIERARCHY
BY XFUND
BY F_MGR
WHERE F_MGR OMITS 'W:';
WHERE FUND_STATUS EQ 'A';
WHERE FMGR_LAST_NAME IS-NOT MISSING;
WHERE CHART_OF_ACCOUNTS EQ 'A';
ON TABLE HOLD AS MGRS
END
-RUN
JOIN XFUND IN MGRS TO XFUND IN GOT_EMAIL AS J2
-RUN
SET ASNAMES = ON
DEFINE FILE MGRS
X_EMAIL_ADDR/A30 = SUBSTR(90,GOREMAL_EMAIL_ADDRESS,1,30,30,X_EMAIL_ADDR);
END
TABLE FILE MGRS
SUM
X_EMAIL_ADDR
BY F_MGR
WHERE X_EMAIL_ADDR NE ' ';
ON TABLE HOLD AS ALL_MGRS
END
-RUN
DEFINE FILE ALL_MGRS
X_MGR/A55 = '&MO_C.EVAL' || ' ' | '&FY.EVAL' | ' - ' | F_MGR;
-* X_ADDR/A30 = 'thomas.flynn@sungardhe.com';
END
TABLE FILE ALL_MGRS
PRINT
X_MGR AS 'VALUE'
X_EMAIL_ADDR AS 'DEST'
ON TABLE PCHOLD
END
-RUN
hth
Tom Flynn
WebFOCUS 8.1.05 - PROD/QA
DB2 - AS400 - Mainframe