I'm trying to compile my RPGLE program and I keep getting errors stating that a file i declared at the top is ignored due to no external description. What does this mean? I've been trying to figure it out and still can't come up with a solution. The errors are below the code.
FSHIFTRATESIF E DISK RENAME(SHIFTRATES:SHIFTRATER)
FALLSHIFT IF E K DISK RENAME(ALLSHIFT:ALLSHIFTER)
FCONFIRMPAYCF E WORKSTN
FPAYRPT O E PRINTER OFLIND(*IN01)
DHOURSOVER S 3 0
/FREE
READ SHIFTRATES;
WRITE TITLE;
WRITE COLHDG;
READ ALLSHIFT;
DOW NOT %EOF;
EXSR PAYSR;
IF *IN01;
WRITE TITLE;
WRITE COLHDG;
*IN01 = *OFF;
ENDIF;
WRITE EMPDETAIL;
READ ALLSHIFT;
ENDDO;
WRITE TOTALS;
EXFMT RECORD1;
*INLR = *ON;
RETURN;
BEGSR PAYSR;
SELECT;
WHEN WORKSHIFT = 'D';
HOURLYRATE = DAYRATE;
WHEN WORKSHIFT = 'A';
HOURLYRATE = AFTRATE;
WHEN WORKSHIFT = 'N';
HOURLYRATE = NIGHTRATE;
ENDSL;
SELECT;
WHEN PAYGRADE = '1';
HOURLYRATE = HOURLYRATE * 1.07;
WHEN PAYGRADE = '2';
HOURLYRATE = HOURLYRATE * 1.05;
WHEN PAYGRADE = '3';
HOURLYRATE = HOURLYRATE * 0.95;
ENDSL;
IF HRSWORKED > 40;
REGULARPAY = 40 * HOURLYRATE;
HOURSOVER = HRSWORKED - 40;
OVERPAY = HOURSOVER * HOURLYRATE * 1.5;
TOTREGPAY = TOTREGPAY + REGULARPAY;
TOTOVTPAY = TOTOVTPAY + OVERPAY;
ELSE;
REGULARPAY = HRSWORKED * HOURLYRATE;
TOTREGPAY = TOTREGPAY + REGULARPAY;
TOTALPAY = OVERPAY + REGULARPAY;
OVERPAY = 0;
ENDIF;
TOTEMPPAY = TOTREGPAY + TOTOVTPAY;
ENDSR;
/END-FREE
FSHIFTRATESIF E DISK RENAME(SHIFTRATES:SHIFTRATER)
FALLSHIFT IF E K DISK RENAME(ALLSHIFT:ALLSHIFTER)
FCONFIRMPAYCF E WORKSTN
FPAYRPT O E PRINTER OFLIND(*IN01)
DHOURSOVER S 3 0
/FREE
READ SHIFTRATES;
WRITE TITLE;
WRITE COLHDG;
READ ALLSHIFT;
DOW NOT %EOF;
EXSR PAYSR;
IF *IN01;
WRITE TITLE;
WRITE COLHDG;
*IN01 = *OFF;
ENDIF;
WRITE EMPDETAIL;
READ ALLSHIFT;
ENDDO;
WRITE TOTALS;
EXFMT RECORD1;
*INLR = *ON;
RETURN;
BEGSR PAYSR;
SELECT;
WHEN WORKSHIFT = 'D';
HOURLYRATE = DAYRATE;
WHEN WORKSHIFT = 'A';
HOURLYRATE = AFTRATE;
WHEN WORKSHIFT = 'N';
HOURLYRATE = NIGHTRATE;
ENDSL;
SELECT;
WHEN PAYGRADE = '1';
HOURLYRATE = HOURLYRATE * 1.07;
WHEN PAYGRADE = '2';
HOURLYRATE = HOURLYRATE * 1.05;
WHEN PAYGRADE = '3';
HOURLYRATE = HOURLYRATE * 0.95;
ENDSL;
IF HRSWORKED > 40;
REGULARPAY = 40 * HOURLYRATE;
HOURSOVER = HRSWORKED - 40;
OVERPAY = HOURSOVER * HOURLYRATE * 1.5;
TOTREGPAY = TOTREGPAY + REGULARPAY;
TOTOVTPAY = TOTOVTPAY + OVERPAY;
ELSE;
REGULARPAY = HRSWORKED * HOURLYRATE;
TOTREGPAY = TOTREGPAY + REGULARPAY;
TOTALPAY = OVERPAY + REGULARPAY;
OVERPAY = 0;
ENDIF;
TOTEMPPAY = TOTREGPAY + TOTOVTPAY;
ENDSR;
/END-FREE
FSHIFTRATESIF E DISK RENAME(SHIFTRATES:SHIFTRATER)
FALLSHIFT IF E K DISK RENAME(ALLSHIFT:ALLSHIFTER)
FCONFIRMPAYCF E WORKSTN
FPAYRPT O E PRINTER OFLIND(*IN01)
DHOURSOVER S 3 0
/FREE
READ SHIFTRATES;
WRITE TITLE;
WRITE COLHDG;
READ ALLSHIFT;
DOW NOT %EOF;
EXSR PAYSR;
IF *IN01;
WRITE TITLE;
WRITE COLHDG;
*IN01 = *OFF;
ENDIF;
WRITE EMPDETAIL;
READ ALLSHIFT;
ENDDO;
WRITE TOTALS;
EXFMT RECORD1;
*INLR = *ON;
RETURN;
BEGSR PAYSR;
SELECT;
WHEN WORKSHIFT = 'D';
HOURLYRATE = DAYRATE;
WHEN WORKSHIFT = 'A';
HOURLYRATE = AFTRATE;
WHEN WORKSHIFT = 'N';
HOURLYRATE = NIGHTRATE;
ENDSL;
SELECT;
WHEN PAYGRADE = '1';
HOURLYRATE = HOURLYRATE * 1.07;
WHEN PAYGRADE = '2';
HOURLYRATE = HOURLYRATE * 1.05;
WHEN PAYGRADE = '3';
HOURLYRATE = HOURLYRATE * 0.95;
ENDSL;
IF HRSWORKED > 40;
REGULARPAY = 40 * HOURLYRATE;
HOURSOVER = HRSWORKED - 40;
OVERPAY = HOURSOVER * HOURLYRATE * 1.5;
TOTREGPAY = TOTREGPAY + REGULARPAY;
TOTOVTPAY = TOTOVTPAY + OVERPAY;
ELSE;
REGULARPAY = HRSWORKED * HOURLYRATE;
TOTREGPAY = TOTREGPAY + REGULARPAY;
TOTALPAY = OVERPAY + REGULARPAY;
OVERPAY = 0;
ENDIF;
TOTEMPPAY = TOTREGPAY + TOTOVTPAY;
ENDSR;
/END-FREE
RNF2120: External descriptions for file ALLSHIFT not found. file is ignored
RNF2120: External desciptions for file SHIFTRATE not found. file is ignored
The most common cause would be that those files are not on the library list when compiling.