Sunteți pe pagina 1din 10

http://publibz.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/IESRRE31/CCONTENTS?

SHELF=ie
svse51&DN=SC33-6642-10&DT=20040120073147
http://www.rexxinfo.org/html/rexxinfo2.html download rexx
http://www.texasrock.com/execs/date.txt
http://www.rexxinfo.org/html/rexxinfo2.html rexx windows
http://www.kilowattsoftware.com/tutorial/rexx/Example2.htm

/* REXX */
/* Date ...... 10/22/1998 */
/* Author .... Bruce Gillispie - Dallas, Texas */
/* Purpose ... Parse HTTP __environment variables & stdin data */
/* Description: */
/* This environment parse routine will Extract the POST HTML */
/* Form values: CONTENT_TYPE, CONTENT_LENGTH, & CONTENT Data */
/* */
/* Tested on OS/390 2.4 & Domino Go WebServer 4.6.1 */
/* */
do
call say 'Content-type: text/html'
call say ''
call say '<html>'
do i = 1 to __environment.0 until x = 'CONTENT_TYPE'
parse var __environment.i x "=" ct
end
call say'---------------------------------------------------<br>'
call say'__environment.i = '__environment.i' <br>'
call say'Value of ct = ' ct' <br>'
call say'Length of ct = 'length(ct)' <br>'
i = i + 1 /* position __env to next rec */
if substr(__environment.i,1,14) = 'CONTENT_LENGTH' then
do
parse var __environment.i "=" cl
parse external CONTENT_DATA /* <-- get Content_Type Data(stdin) <-- */
call say'-------------------------------------------------<br>'
call say'__environment.i = '__environment.i' <br>'
call say'Value of cl = ' cl' <br>'
call say'-------------------------------------------------<br>'
call say'CONTENT_DATA (stdin) = ' CONTENT_DATA' <br>'
call say'Which came from your FORM METHOD=POST... '
call say'INPUT... HTML script code. <br>'
call say'-------------------------------------------------<br>'
end
else
do
call say'/ \ / \ / \ / \ / \ / \ / \ / \ <br>'
call say' CONTENT_LENGTH not found <br>'
call say' __environmen.'i' contents = '__environment.i' <br>'
call say'------------------------------------------------<br>'
end
end
call say '</body>'
call say '</html>'
exit
/* ------------ called routines below ------------- */
say:
parse arg saytxt
saytxt = saytxt||esc_n
address syscall 'write 1 saytxt' length(saytxt)
return

======================
sleep
SYSSLEEP TITLE '- Sleep 60 seconds'
* -------------------------------------------------------
* | (c) Copyright Roger Lacroix 1992 |
* | |
* | Designed, developed and programmed by Roger Lacroix |
* |-----------------------------------------------------|
* | Sleep Program Routine |
* |-----------------------------------------------------|
* | register usage within routine |
* | |----------input from calling rtn <i> |
* | ||---------modified/initialized <m> |
* | |||--------output to called rtns <o> |
* | ||||-------returned to calling rtn <r> |
* | r0 |
* | i r r1 i-parm (pgm name) r-pgm addr |
* | m r2 program name pointer |
* | r3 |
* | r4 |
* | r5 |
* | r6 |
* | r7 |
* | r8 |
* | r9 |
* | r10 |
* | r11 |
* | m r12 routine base register |
* | imor r13 save area |
* | i r14 i-return addr |
* | i r15 i-entry addr |
* |-----------------------------------------------------|
* | This routine may be called from any program. It |
* | will verify if the indicated program is loaded into |
* | storage. If found (via MVS control blocks), the |
* | address is returned to the caller. |
* -------------------------------------------------------
SPACE 2
SYSSLEEP CSECT
SAVE (14,12),,'SYSSLEEP V1.0.0 &SYSDATE &SYSTIME'
LR R12,R15
USING SYSSLEEP,R12
LR R15,R13 old save area
LA R13,SYSSLEEP@S new save area
ST R13,8(,R15) new pointer
ST R15,4(,R13) old pointer
SPACE 1
L R2,0(R1) point to pgm id
SPACE 1
STIMER WAIT,BINTVL=STIME
SPACE 2
SYSSLEEP900 EQU *
L R13,4(,R13) back a save area
SAVE (1) save program entry point
RETURN (14,12),T,RC=(15)
DROP R12
SPACE 1
TITLE 'Constants, etc.'
SYSSLEEP@S DC 18F'0' save area
STIME DC F'6000' sleep for 60 seconds
* -------------------------------------------------------
* | Literal pool |
* -------------------------------------------------------
SPACE 1
LTORG ,
SPACE 1
* -------------------------------------------------------
* | Dsects, etc. |
* -------------------------------------------------------
SPACE 1
PUSH PRINT
PRINT NOGEN
SPACE 1
REGEQU PRINT=NO,CONDCODE=NO
SPACE 1
POP PRINT
END ,
==========================

Calendar display
/* caldisp.rex, show calendar for current month
this is a fast calendar display program
because the days section is built by a
single instruction !
usage
rexx caldisp
*/
/* obtain year, month, and day of month */
parse value date( 'Standard' ) with year 5 month 7 dayofmon
dayofmon = strip( dayofmon, 'L', '0' ) /* strip leading zero */
/* show title lines */
say right( time('C'), 8) center( date('M'), 38 ) ,
substr( year, 3 )'.'right( date('D'), 3, '0' )
say center( year, 56 )
say ' Sun Mon Tue Wed Thu Fri Sat'
/* compute day of week: 1 to 7 */
dayofwk = 1 + ( date('B') // 7 )
/* identify #days in month */
daysinmo = word( '31 28 31 30 31 30 31 31 30 31 30 31', month )
/* add 1 to #days in month if it's February and this is a leap year */
if month = 2 then
daysinmo = daysinmo + leap( year )
/* compute day# of 1st day of month */
day1no = 1 + ((35 + dayofwk - dayofmon) // 7 )
vector = left( ' ', 8 * day1no ) || ,
overlay( ' > 'right( dayofmon, 2 )' < ' , ,
left( ,
' 1 2 3 4 5 ' || ,
' 6 7 8 9 10 ' || ,
' 11 12 13 14 15 ' || ,
' 16 17 18 19 20 ' || ,
' 21 22 23 24 25 ' || ,
' 26 27 28 29 30 ' || ,
' 31 ', (daysinmo * 8) ), ,
1 + ((dayofmon-1) * 8) )
/* show calendar lines */
do i=1 to length( vector ) by 56
say substr( vector, i, 56 )
end
exit
leap : procedure
arg yr
return (yr//4 = 0) & ((yr//100 <> 0) | (yr//400 = 0))
===================================================================
/* REXX MATCHEM
GENERIC COMPARE.
WORKS IN MVS/OS/390 TSO/ISPF ONLY
COMPARES AN OLD AND A NEW FILE
BOTH INPUT FILES MUST BE SORTED ASCENDING
CREATES 3 OUTPUT FILES:
NOCHANGE: THE RECORDS THAT ARE THE SAME ON BOTH INPUT FILES
ADDED: THE RECORDS THAT ARE IN 'NEW' BUT NOT 'OLD'
DELETED: THE RECORDS THAT ARE IN 'OLD' BUT NOT 'NEW'
IF RUNNING IN FOREGROUND,
YOU MUST SPECIFY THE DATASET NAMES OF THE 5 FILES
IN THE VARIABLES JUST BELOW
THIS IS SET UP TO WORK WITH SMALL FILES ONLY.
IF YOU ARE USING LARGER FILES, CHANGE THE SPACE ALLOCATIONS
IN THE OPEN-OUTPUT SUBROUTINE
USE THE FOLLOWING SAMPLE JCL TO RUN MATCHEM IN BATCH
//* ***TO RUN MATCHEM PROGRAM IN BATCH***
//* CHANGE THE FOLLOWING BEFORE RUNNING:
//* NAME OF REXX LIBRARY THE MATCHEM PROGRAM IS IN
//* DATASET NAME FOR 'OLD-DSN'
//* DATASET NAME FOR 'NEW-DSN'
//* YOUR-TSO-USERID
//*
//MATCHEM EXEC PGM=IKJEFT1A,DYNAMNBR=200
//SYSEXEC DD DSN=name-of-rexx-library,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
PROFILE PREFIX(your-tso-userid)
%MATCHEM
//OLD DD DSN=old-dsn,DISP=SHR
//NEW DD DSN=new-dsn,DISP=SHR
//NOCHANGE DD SYSOUT=*
//ADDED DD SYSOUT=*
//DELETED DD SYSOUT=*
*/ */ */ */ */ */ */ to close comments in JCL
*/
OLD = "'old-dsn'" /* DSN OF 'OLD' FILE */
NEW = "'new-dsn'" /* DSN OF 'NEW' FILE */
NOCHANGE = "'nochange-dsn'" /* DSN OF 'NOCHANGE' OUTPUT FILE */
ADDED = "'added-dsn'" /* DSN OF 'ADDED' OUTPUT FILE */
DELETED = "'deleted-dsn'" /* DSN OF 'DELETED' OUTPUT FILE */
DEBUG = "NO"
OLD_INDEX = 0
NEW_INDEX = 0
END = "NO"
CALL LOAD_OLD
CALL LOAD_NEW
CALL OPEN_OUTPUT
CALL READ_OLD
CALL READ_NEW
DO UNTIL END = "YES"
SELECT
WHEN NEW = OLD THEN CALL NEW_EQ_OLD
WHEN NEW > OLD THEN CALL NEW_GT_OLD
WHEN NEW < OLD THEN CALL NEW_LT_OLD
OTHERWISE
END
CALL CHECK_BOTH_END
END
CALL FINISH_WITH_OUTPUT_FILES
EXIT
READ_OLD:
OLD_INDEX = OLD_INDEX + 1
OLD = OLD.OLD_INDEX
IF DEBUG = "YES" THEN SAY "READING OLD" OLD
IF OLD_INDEX > OLD.0 THEN OLD = "FF"X
RETURN
READ_NEW:
NEW_INDEX = NEW_INDEX + 1
NEW = NEW.NEW_INDEX
IF DEBUG = "YES" THEN SAY "READING NEW" NEW
IF NEW_INDEX > NEW.0 THEN NEW = "FF"X
RETURN
CHECK_BOTH_END:
IF NEW = "FF"X & OLD = "FF"X THEN END = "YES"
RETURN
NEW_EQ_OLD:
IF DEBUG = "YES" THEN SAY "NEW EQ OLD"
SAY "NOCHANGE" NEW
NOCHANGE.1 = NEW;NOCHANGE.0 = 1
"EXECIO " NOCHANGE.0 " DISKW NOCHANGE (STEM NOCHANGE.)"
CALL READ_NEW
CALL READ_OLD
RETURN
NEW_GT_OLD:
IF DEBUG = "YES" THEN SAY "NEW GT OLD"
SAY "DELETED " OLD
DELETED.1 = OLD;DELETED.0 = 1
"EXECIO " DELETED.0 " DISKW DELETED (STEM DELETED.)"
CALL READ_OLD
RETURN
NEW_LT_OLD:
IF DEBUG = "YES" THEN SAY "NEW LT OLD"
SAY "ADDED " NEW
ADDED.1 = NEW;ADDED.0 = 1
"EXECIO " ADDED.0 " DISKW ADDED (STEM ADDED.)"
CALL READ_NEW
RETURN
LOAD_OLD:
IF SYSVAR(SYSENV) = "FORE" THEN "ALLOC DDN("OLD") SHR REUSE DSN(OLD)"
"EXECIO * DISKR OLD (STEM OLD. FINIS)"
RETURN
LOAD_NEW:
IF SYSVAR(SYSENV) = "FORE" THEN "ALLOC DDN("NEW") SHR REUSE DSN(NEW)"
"EXECIO * DISKR NEW (STEM NEW. FINIS)"
RETURN
OPEN_OUTPUT:
IF SYSVAR(SYSENV) = "BACK" THEN RETURN /* ALLOC IN FOREGR ONLY */
IF SYSDSN("NOCHANGE") = "OK"
THEN "ALLOC DDN(NOCHANGE) SHR REUSE DSN("NOCHANGE")"
ELSE "ALLOC DDN(NOCHANGE) NEW REUSE DSN("NOCHANGE")",
"SPACE(1,1) TRACKS"
IF SYSDSN("DELETED") = "OK"
THEN "ALLOC DDN(DELETED) SHR REUSE DSN("DELETED")"
ELSE "ALLOC DDN(DELETED) NEW REUSE DSN("DELETED")",
"SPACE(1,1) TRACKS"
IF SYSDSN("ADDED") = "OK"
THEN "ALLOC DDN(ADDED) SHR REUSE DSN("ADDED")"
ELSE "ALLOC DDN(ADDED) NEW REUSE DSN("ADDED")",
"SPACE(1,1) TRACKS"
RETURN
FINISH_WITH_OUTPUT_FILES:
"EXECIO 0 DISKW NOCHANGE (FINIS)"
"EXECIO 0 DISKW DELETED (FINIS)"
"EXECIO 0 DISKW ADDED (FINIS)"
IF SYSVAR(SYSENV) = "BACK" THEN RETURN /* FREE IN FOREGR ONLY */
"FREE DDN(OLD)"
"FREE DDN(NEW)"
"FREE DDN(DELETED)"
"FREE DDN(NOCHANGE)"
"FREE DDN(ADDED)"
RETURN
/***
may be distributed
provided that this notice is attached.
See
http://www.theamericanprogrammer.com/programming/index.shtml
***/
ISF.SISFEXEC
ISP.SISPEXEC
SYS1.SBPXEXEC
EOY.SEOYCLIB
FFST.SEPWSRC1

#2317201

N194216T(JOB30707)

INSERT INTO DTDB01.DTFCIT_FILE_CNTRL

INSERT INTO DTDB01.DTFCIT_FILE_CNTRL


(SYS_REF_CD,
SYS_REF_NBR,
DIARY_FILE_NBR,
DIARY_FILE_TEXT,
ESTB_SYS_CD,
USER_ID_CD,
REC_ACTVY_CNT,
LOCK_ID_CD,
DIARY_STATUS_CD,
DIARY_TYPE_CD,
NOTE_TYPE_CD,
CHGD_BY_USER_CD,
USER_TRANS_TMSTMP,
DIARY_FILE_GENR_CD)
VALUES ('DA',
:WS-AUDIT-LOG-FILE-REF-NBR,
:WS-AUDIT-LOG-FILE-NBR,
'USER AUDIT LOG',
'DT',
:WS-AUDITLOG-LIT,
:WS-AUDIT-DTFC-REC-ACTVY-CNT,
:WS-AUDIT-LOG-FILE-USER,
'O',
'N',

EXEC SQL
INSERT INTO DTDB01.DTTXIT_TEXT
(DIARY_FILE_NBR,
REC_ACTVY_CNT,
DIARY_TEXT,
CHGD_BY_USER_CD,
USER_TRANS_TMSTMP)
VALUES (:WS-AUDIT-LOG-FILE-NBR,
:WS-AUDIT-LOG-FILE-ACTVY-CNT,
:WS-AUDIT-TEXT-OUT,
:WS-AUDITLOG-LIT,
:WS-TEXT-TRANS-TMSTMP)
END-EXEC

00009277170 HODBJXB 2004/02/25 PO PLPM680418 n


10027625710 HOPCLJH 2010/07/19 PO PLPM680418 n
30027477640 LVPLLXM 2010/06/24 PO PLPM680418
20027632720 LVPLLXM 2010/07/20 PO PLPM680418
60027653720 LVPLLXM 2010/07/23 PO PLPM680418
00027699190 IRNTPAC 2010/07/30 PO PLPM680418
00016011620 LVPLAXH 2007/01/26 PO PLPM680418
80011406400 NEPLJEB 2005/03/10 PO PLPM680418
40011365740 NEPLKAJ 2005/03/03 PO PLPM680418
70009152450 NEPLSEN 2004/02/05 PO PLPM680418
30011289110 NEPUBJL 2005/02/21 PO PLPM680418

HP3M833895

select DIARY_FILE_NBR from DTDB01.DTFCIT_FILE_CNTRL


where
SYS_REF_NBR='HP3M833895' and
SYS_REF_CD ='po' and
DIARY_FILE_NBR in (
'00009277170',
'10027625710',
'30027477640',
'20027632720',
'60027653720',
'00027699190',
'00016011620',
'80011406400',
'40011365740',
'70009152450'
'30011289110') with ur;
.

#2317201

//STEP01 EXEC PGM=IKJEFT1B,DYNAMNBR=20,TIME=50,REGION=4096K


//SYSTSPRT DD SYSOUT=*
//SYSPUNCH DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSREC00 DD DSN=GRP.DT.DB2P.DTNOIT.DATA,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(10,10),RLSE),
// VOL=(,,,9),
// UNIT=SYSDA
//SYSPRINT DD DSN=GRP.DB2.ADHOCOUT(NAINCPDT),
// DISP=SHR
//SYSTSIN DD *
DSN SYSTEM(DB2P)
RUN PROGRAM(DSNTIAUL) PLAN(DSNTIAUL) -
LIB('SYICMD1.DB2P.RUNLIB.LOAD') PARM('SQL')
//SYSIN DD DSN=GRT.DB2.ADHOCSQL(NAEFFDT),DISP=SHR
/*

GRT.DB2.ADHOCSQL(DTFCDEL)

2329377

update NADB01.NAADIT_ADRESSES
set CLIENT_ADDR_CD = 'm'
where CLIENT_NBR = '000000110' and
REC_EFF_DT ='2008/12/18' and
CLIENT_ADDR_CD = 'm';

select * from NADB01.NAADIT_ADRESSES


where CLIENT_NBR = '003344620' and
REC_EFF_DT ='08/10/2010' and
CLIENT_ADDR_CD = 'm' and
ZIP_cd='03431' and
CLIENT_ST_cd='NH' and
CLIENT_STR_ADDR = 'UNKNOWN' and
CLIENT_CITY_ADDR='KEENE with ur;

003344620
08/10/2010

'
GRT.DB2.ADHOCSQL(NAINCPDT)

select * FROM NADB01.NAMEIT_NAME


WHERE CLIENT_NAME_CD = 'PE' AND
CLIENT_NBR = '907972290' AND
CLIENT_SEQ_NBR = '000' AND
REC_EFF_DT = '1990/01/01'
with ur ;
907972290 PE 1990/01/01 - X00000 GOINGS KENNETH 0
- 000 - GIQSUSR 2003-01-21-06.18.50.230077
510257950 PE 1990/01/01 - X00000 TURNER MICHAEL 000 -
GIQSUSR 2006-03-22-12.30.59.130812
select * FROM NADB01.NAMEIT_NAME
WHERE CLIENT_NAME_CD = 'PE' AND
CLIENT_NBR = '510257950' AND
CLIENT_SEQ_NBR = '000' AND
REC_EFF_DT = '1990/01/01'
with ur;
510257950 PE 1990/01/01 - X00000 TURNER MICHAEL 000 -
GIQSUSR 2006-03-22-12.30.59.130812

select * from DTDB01.DTFCIT_FILE_CNTRL


WHERE DIARY_FILE_NBR = '30023695541'
AND SYS_REF_NBR = '604041570'
AND SYS_REF_CD = 'CA'
with ur;
30023695541 SCLDSB2 2010/05/26 CA 604041570 ACTIVITY L
select * from DTDB01.DTFCIT_FILE_CNTRL
WHERE DIARY_FILE_NBR = '50023621341'
AND SYS_REF_NBR = '504024470'
AND SYS_REF_CD = 'CA'
with ur;
50023621341 SCINRA0 2010/05/10 CA 504024470 ACTIVITY L

select * from DTDB01.DTFCIT_FILE_CNTRL


WHERE DIARY_FILE_NBR = '80023637451'
AND SYS_REF_NBR = '304025270'
AND SYS_REF_CD = 'CA'
with ur;
80023637451 SCINRA0 2010/05/12 CA 304025270 ACTIVITY L

S-ar putea să vă placă și