added LSL2 stored procedures
This commit is contained in:
117
LSL2/STPROC/MODS_ADD_NEW.txt
Normal file
117
LSL2/STPROC/MODS_ADD_NEW.txt
Normal file
@ -0,0 +1,117 @@
|
||||
function mods_add_new()
|
||||
|
||||
$insert logical
|
||||
$insert rlist_equates
|
||||
$insert msg_equates
|
||||
declare function utility, msg, set_property, get.reccount, mods_load_control
|
||||
declare subroutine record_lock, clear_table
|
||||
|
||||
|
||||
open 'MODS' to ModsTable else
|
||||
Void = msg( '', 'Unable to open MODS...' )
|
||||
return 0
|
||||
end
|
||||
*
|
||||
open 'BACKREPOS' to BReposTable else
|
||||
msg( '', 'Unable to open BACKREPOS' )
|
||||
return 0
|
||||
end
|
||||
open 'SYSREPOS' to SysReposTable else
|
||||
msg( '', 'Unable to open SYSREPOS' )
|
||||
return 0
|
||||
end
|
||||
|
||||
*
|
||||
Stmt = 'SELECT SYSREPOS'
|
||||
Stat = utility( 'CURSOR', 'H' )
|
||||
|
||||
rlist( Stmt, target_activelist$, '', '', '' )
|
||||
|
||||
* IF WE HAVE A ROW THAT IS IN SYSREPOS BUT NOT IN BACKREPOS THEN
|
||||
* CREATE A WR FOR THAT SYSREPOS ( MEANING WE HAVE A DELETION )
|
||||
if @reccount then
|
||||
Eof = false$
|
||||
loop
|
||||
readnext Id else Eof = true$
|
||||
until eof
|
||||
if len( xlate( 'BACKREPOS', Id, '', 'X' ) ) then
|
||||
* it exists in backrepos do not modify
|
||||
end else
|
||||
ModId = field( Id, '*', 1 ):'`'
|
||||
ModId:= 'SYSREPOS':'`'
|
||||
ModId:= Id:'`'
|
||||
ModId:= date():'`'
|
||||
ModId:= time():'`'
|
||||
ModId:= 'WR'
|
||||
SysReposRec = xlate( 'SYSREPOS', Id, '', 'X' )
|
||||
record_lock( ModsTable, 'MODS', ModId )
|
||||
write SysReposRec on ModsTable, ModId else
|
||||
Void = msg( '', 'Unable to write ':ModId:' on MODS...' )
|
||||
return 0
|
||||
end
|
||||
unlock ModsTable, ModId else
|
||||
Void = msg( '', 'Unable to unlock ':ModId:' in MODS...' )
|
||||
return 0
|
||||
end
|
||||
* NOW WRITE TO BACKREPOS SO IT IS IS RUN AGAIN WE DON'T CREATE DUPLICATES
|
||||
record_lock( BReposTable, 'BACKREPOS', Id )
|
||||
write SysReposRec on BReposTable, Id else
|
||||
Void = msg( '', 'Unable to write ':Id:' on BACKREPOS...' )
|
||||
return 0
|
||||
end
|
||||
unlock BReposTable, Id else
|
||||
Void = msg( '', 'Unable to unlock ':Id:' in BACKREPOS...' )
|
||||
return 0
|
||||
end
|
||||
end
|
||||
repeat
|
||||
end
|
||||
*
|
||||
Stmt = 'SELECT BACKREPOS'
|
||||
Stat = utility( 'CURSOR', 'H' )
|
||||
|
||||
rlist( Stmt, target_activelist$, '', '', '' )
|
||||
|
||||
* IF WE HAVE A ROW THAT IS IN BACKREPOS BUT NOT IN SYSREPOS THEN
|
||||
* CREATE A DR FOR THAT SYSREPOS ( MEANING WE HAVE A DELETION )
|
||||
if @reccount then
|
||||
Eof = false$
|
||||
loop
|
||||
readnext Id else Eof = true$
|
||||
until eof
|
||||
if len( xlate( 'SYSREPOS', Id, '', 'X' ) ) then
|
||||
* it exists in SYSREPOS do not modify
|
||||
end else
|
||||
ModId = field( Id, '*', 1 ):'`'
|
||||
ModId:= 'SYSREPOS':'`'
|
||||
ModId:= Id:'`'
|
||||
ModId:= date():'`'
|
||||
ModId:= time():'`'
|
||||
ModId:= 'DR'
|
||||
record_lock( ModsTable, 'MODS', ModId )
|
||||
write '' on ModsTable, ModId else ;* WRITE NULL ON DR THE RECORD IS ALWAYS NULL
|
||||
Void = msg( '', 'Unable to write ':ModId:' on MODS...' )
|
||||
return 0
|
||||
end
|
||||
unlock ModsTable, ModId else
|
||||
Void = msg( '', 'Unable to unlock ':ModId:' in MODS...' )
|
||||
return 0
|
||||
end
|
||||
* NOW DELETE FROM BACKREPOS SO IF IT IS RUN AGAIN WE DON'T CREATE DUPLICATES
|
||||
record_lock( BReposTable, 'BACKREPOS', Id )
|
||||
delete BReposTable, Id else
|
||||
Void = msg( '', 'Unable to delete ':Id:' on BACKREPOS...' )
|
||||
return 0
|
||||
end
|
||||
unlock BReposTable, Id else
|
||||
Void = msg( '', 'Unable to unlock ':Id:' in BACKREPOS...' )
|
||||
return 0
|
||||
end
|
||||
end
|
||||
repeat
|
||||
end
|
||||
Void = mods_load_control()
|
||||
Stat = utility( 'CURSOR', 'A' )
|
||||
return 0
|
||||
|
||||
|
Reference in New Issue
Block a user