Unconfigured Ad Widget

Collapse

Announcement

Collapse
No announcement yet.

Help? What I am doing wrong here with CEEDAYS...

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Help? What I am doing wrong here with CEEDAYS...

    Can't figure out compile error. I know its in the subtraction of - 30, but can't figure out how to declare variable correctly for it to work. Thanks, Keith 100 PGM 2100 DCL VAR(&LTODAY) TYPE(*CHAR) LEN(4) 2200 DCL VAR(&LJUNK1) TYPE(*CHAR) LEN(8) 2300 DCL VAR(&LJUNK2) TYPE(*CHAR) LEN(23) 2301 DCL VAR(&DAYS) TYPE(*CHAR) LEN(2) VALUE('30') 2304 DCL VAR(&LDTE) TYPE(*CHAR) LEN(4) 2305 DCL VAR(&DDATE) TYPE(*CHAR) LEN(8) 2503 2512 /************************************************** ********************/ 2513 /* What day is it today? */ 2514 /* When this call is complete, &LTODAY will contain the number of */ 2515 /* days between today and Oct 14th, 1582. */ 2516 /* Subtract 30 days from today. */ 2517 /* Convert back to YYYYMMDD. */ 2518 /************************************************** ********************/ 2519 CALLPRC PRC(CEELOCT) PARM(&LTODAY &LJUNK1 &LJUNK2 *OMIT) 2528 CHGVAR VAR(&LTODAY) VALUE(&LTODAY - &DAYS) 2530 CALLPRC PRC(CEEDAYS) PARM((&LTODAY) ('YYYYMMDD') + 2531 (&DDATE) (*OMIT)) 2532 10300 /************************************************** ********************/ 10400 /* Send message to Qsysopr for result. */ 10500 /************************************************** ********************/ 10700 SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('New + 10800 Date: ' *CAT &DDATE) TOMSGQ(*SYSOPR) 11000 11100 ENDPGM * * * * E N D O F S O U R C E * * * *

  • #2
    Re:Help? What I am doing wrong here with CEEDAYS...

    Keith, Shouldn't &Days be defined as *Decimal? And remove the quotes. Bill

    Comment


    • #3
      Re:Help? What I am doing wrong here with CEEDAYS...

      Well after some more searches, I figured out my problem. I was using the wrong API to convert from Lilian back to YYYYMMDD. Here is the source, and thanks to all who replied. PGM PARM(&CDAYS) DCL VAR(&LTODAY) TYPE(*CHAR) LEN(4) DCL VAR(&NTODAY) TYPE(*INT) LEN(4) DCL VAR(&DTODAY) TYPE(*DEC) LEN(6 0) DCL VAR(&CTODAY) TYPE(*CHAR) LEN(6) DCL VAR(&LJUNK1) TYPE(*CHAR) LEN(8) DCL VAR(&LJUNK2) TYPE(*CHAR) LEN(23) DCL VAR(&CDAYS) TYPE(*CHAR) LEN(2) DCL VAR(&DDAYS) TYPE(*DEC) LEN(2 0) DCL VAR(&LDTE) TYPE(*CHAR) LEN(4) DCL VAR(&DDATE) TYPE(*CHAR) LEN(8) DCL VAR(&SQL) TYPE(*CHAR) LEN(80) /************************************************** ********************/ /* What day is it today? */ /* When this call is complete, &LTODAY will contain the number of */ /* days between today and Oct 14th, 1582. */ /************************************************** ********************/ CALLPRC PRC(CEELOCT) PARM(&LTODAY &LJUNK1 &LJUNK2 *OMIT) /************************************************** ********************/ /* Convert to Decimal. */ /************************************************** ********************/ CHGVAR VAR(&DTODAY) VALUE(%BIN(&LTODAY)) /************************************************** ********************/ /* Change Days value to Decimal. */ /************************************************** ********************/ CHGVAR VAR(&DDAYS) VALUE(&CDAYS) /************************************************** ********************/ /* Subtract NN days from current value. */ /************************************************** ********************/ CHGVAR VAR(&DTODAY) VALUE(&DTODAY - &DDAYS) /************************************************** ********************/ /* Convert Decimal value to Character. */ /************************************************** ********************/ CHGVAR VAR(&CTODAY) VALUE(&DTODAY) /************************************************** ********************/ /* Convert Character value to Interger. */ /************************************************** ********************/ CHGVAR VAR(&NTODAY) VALUE(&CTODAY) /************************************************** ********************/ /* Convert Lillian date to Delete Date value. */ /************************************************** ********************/ CALLPRC PRC(CEEDATE) PARM((&NTODAY) ('YYYYMMDD') + (&DDATE) (*OMIT)) /************************************************** ********************/ /* Send message to Qsysopr for status. */ /************************************************** ********************/ SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('BSafe + Maintenance: Deleting records from + HSFEPRSF as of ' *CAT &DDATE) TOMSGQ(*SYSOPR) /************************************************** ********************/ /* Run SQL Statement. */ /************************************************** ********************/ CHGVAR VAR(&SQL) VALUE('DELETE FROM HSFEPRSF WHERE + JEDATE < ' *CAT &DDATE) EURUNSQL REQUEST(&SQL)

      Comment

      Working...
      X