*&---------------------------------------------------------------------*
*& Module pool ZMODTRP *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
PROGRAM ZMODTRP.
* INCLUDE ZMODIO01. " PBO-Modules *
* INCLUDE ZMODII01. " PAI-Modules *
* INCLUDE ZMODIF01. " FORM-Routines *
*&---------------------------------------------------------------------*
*& Module INIT_NUM OUTPUT
*&---------------------------------------------------------------------*
* text *
*----------------------------------------------------------------------*
MODULE INIT_NUM OUTPUT.
DATA: CRNUM(6).
DATA: RBUT1, RBUT2.
CLEAR CRNUM.
ENDMODULE. " INIT_NUM OUTPUT
*&---------------------------------------------------------------------*
*& Module PROCESS INPUT
*&---------------------------------------------------------------------*
* text *
*----------------------------------------------------------------------*
MODULE PROCESS INPUT.
DATA: CRN(50), N TYPE I.
CASE SY-UCOMM.
WHEN 'OK'.
CRN = 'BO4K'. CRN+4(6) = CRNUM.
IF RBUT1 = 'X'.
CRN+11(3) = 'SRM'.
ELSE.
CRN+11(3) = 'PTS'.
ENDIF.
CRN+15(3) = SY-SYSID.
CRN+19(3) = SY-MANDT.
CRN+23(8) = SY-UNAME.
CRN+32(8) = SY-DATUM.
CRN+41(6) = SY-UZEIT.
IF CRNUM IS INITIAL.EXIT.ENDIF.
N = STRLEN( CRNUM ).
IF N < 6.EXIT.ENDIF.
IF ( CRNUM CN '1234567890' ).EXIT.ENDIF.
OPEN DATASET '/usr/sap/trans/autotransport/data/request_list'
FOR APPENDING IN TEXT MODE.
TRANSFER CRN TO '/usr/sap/trans/autotransport/data/request_list'.
CLOSE DATASET '/usr/sap/trans/autotransport/data/request_list'.
WHEN 'EXIT'.
SET SCREEN 0.LEAVE SCREEN.
ENDCASE.
ENDMODULE. " PROCESS INPUT
UNIX SCRIPT:
#!/bin/ksh
#
# This script transports the change requests listed in
# /usr/sap/trans/autotransport/data/request_list.
# If the second field is SRM : to BBB client 31,41,51.
# If the second field is PTS : to BBB client 31,51.
# The script is scheduled in the crontab to run in every 5 minutes.
# First it checks whether another instance of it is running.
# Then it checks wheter the the request_list exists or not.
# Then it moves request_list to ../save/request_list.timestamp
# and to ../tmp/request_list.
# Afterwards it creates the TP script from ../tmp/request_list
# and runs it. The TP script is called ../tmp/tpscrpt.
# The TP log is created in ../log/log.timestamp.
# The TP script has lines like these:
# "tp delfromboffer crnumber"
# "tp addtobuffer crnumber"
# "tp import crnumber client..."
# At the end the script deletes everything under ../tmp
#
#
#
timestmp=`date +%y%m%d.%H%M%S`
requfile=/usr/sap/trans/autotransport/data/request_list
tempfile=/usr/sap/trans/autotransport/temp/request_list
log_file=/usr/sap/trans/autotransport/log/log.$timestmp
tpscript=/usr/sap/trans/autotransport/temp/tpscrpt
savefile=/usr/sap/trans/autotransport/save/request_list.$timestmp
#
if [[ -a $tempfile ]]
then exit
fi
#
if [[ -a $requfile ]]
then :
else
exit
fi
print CHANGE REQUESTS FOUND at $(date +'%D %T') > $log_file
cat $requfile >> $log_file
mv $requfile $tempfile
wait
cp $tempfile $savefile
#
echo "cd /usr/sap/trans/bin" > $tpscript
cat $tempfile|awk '{
if ( $2 == "SRM" )
print "/sapmnt/BBB/exe/tp delfrombuffer "$1" BBB\n" \
"/sapmnt/BBB/exe/tp addtobuffer "$1" BBB\n" \
"/sapmnt/BBB/exe/tp import "$1" BBB client031 u1\n" \
"/sapmnt/BBB/exe/tp delfrombuffer "$1" BBB\n" \
"/sapmnt/BBB/exe/tp addtobuffer "$1" BBB\n" \
"/sapmnt/BBB/exe/tp import "$1" BBB client041 u1\n" \
"/sapmnt/BBB/exe/tp delfrombuffer "$1" BBB\n" \
"/sapmnt/BBB/exe/tp addtobuffer "$1" BBB\n" \
"/sapmnt/BBB/exe/tp import "$1" BBB client051 u1"
if ( $2 == "PTS" )
print "/sapmnt/BBB/exe/tp delfrombuffer "$1" BBB\n" \
"/sapmnt/BBB/exe/tp addtobuffer "$1" BBB\n" \
"/sapmnt/BBB/exe/tp import "$1" BBB client031 u1\n" \
"/sapmnt/BBB/exe/tp delfrombuffer "$1" BBB\n" \
"/sapmnt/BBB/exe/tp addtobuffer "$1" BBB\n" \
"/sapmnt/BBB/exe/tp import "$1" BBB client051 u1" \
}' >> $tpscript
#
chmod 777 $tpscript
su - bbbadm -c "/usr/sap/trans/autotransport/temp/tpscrpt" >> $log_file 2>&1
#
rm -f $tpscript
rm -f $tempfile