Author Topic: ARSJESD windows exit to rename CMOD files received from z/OS PSF exit APSUX15  (Read 115 times)

athomason

  • Newbie
  • *
  • Posts: 1
    • View Profile
We wrote a JES2 exit based on z/OS PSF sample exit 15 (APSUX15X) to capture WTRID in the "extra data" sent to CMOD via the PSF MVS Download FSS procedure.  I found an AIX sample "writer_rename" in documentation but since there was nothing for windows, I'd like to provide it as a sample if anyone can use it.


::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::  NAME:                                                                                       ::   
::   mvsd_wtr_rename.bat                                                                     ::
::                                                                                              ::
::  DESCRIPTION:                                                                                ::
::   This windows batch script is designed as a exit routine to be executed by               ::
::   the ARSJESD program after a file has been downloaded from z/OS to a windows             ::
::      server running CMOD.  This script parses the additional job options that were sent by   ::
::      PSF sample exit APSUX15 and renames the file name by using the value of the             ::
::   WRITER parameter.                                                                       ::
::  CHANGE LOG:                                                                                 ::
::      New batch script.                                                 AThomason 21MAY18     ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::2 variables passed from MVSD:                                                                 ::
::   %1 = pathname and filename in the format:                                                  ::
::        "[drive letter]:\Path\system.jobname[.step][.form].[cc]yyddd.time.ext"                ::
::   %2 = extra options passed from PSF exit APSUX15 on z/OS:                                   ::
::       "-odatat=line -ofileformat=record -occ=xxx -occtype=x -oburst=xx -ocop=xxx             ::
::        -odatac=xxxxx -ojobn=xxxxxxxx -ous=uuuuuuu -ono=xxxxxxx -opr=xxxxxxxxxxx   -oro=xxxx  ::
::        -opa=forms=xxx,class=x,destination=xxxxx,jobid=xxxxxxxx,wtrid=xxxxxxxx "              ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
SET var1=%1
SET var2=%2

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::Strip quotes from beginning and ending of %var1% and %var2%                                   ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
set var1=%var1:"=%
set var2=%var2:"=%

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::Parse var1 (using \ as delimeter)                                                             ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
FOR /f "tokens=1-5 delims=\" %%a IN ("%var1%") DO (
set t1=%%a
set t2=%%b
set t3=%%c
set t4=%%d
set t5=%%e)

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::Parse last variable (using . as delimiter) from previous parse to split up the filename       ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
FOR /f "tokens=1-7 delims=." %%a IN ("%t5%") DO (
set u1=%%a
set u2=%%b
set u3=%%c
set u4=%%d
set u5=%%e
set u6=%%f
set u7=%%g)

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::Parse var2 (using - as delimiter) to split up the optional parms                              ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
FOR /f "tokens=1-13 delims=-" %%a IN ("%var2%") DO (
set v1=%%a
set v2=%%b
set v3=%%c
set v4=%%d
set v5=%%e
set v6=%%f
set v7=%%g
set v8=%%h
set v9=%%i
set v10=%%j
set v11=%%k
set v12=%%l
set v13=%%m)

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::Parse v13 (using ,) to isolate the parms split by the previous parse (wtrid is token 5)       ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
FOR /f "tokens=1-5 delims=," %%a IN ("%v13%") DO (
set w5=%%e)

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::Parse w5 (using =) to isolate writerid from "writerid="                                       ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
FOR /f "tokens=1-2 delims==" %%a IN ("%w5%") DO (
set x2=%%b)

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::Remove trailing blank(s) from x2 (writerid)                                                   ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
set x2=%x2: =%

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::Rebuild PATH, FILENAME, and build NEW FILENAME by replacing the third node with x2 (writerid) ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
set pathname=%t1%\%t2%\%t3%\%t4%\
set begfile=%u1%.%u2%.%u3%.%u4%.%u5%.%u6%.%u7%
set endfile=%u1%.%u2%.%x2%.%u4%.%u5%.%u6%.%u7%

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::Execute windows commands to change directories and rename the file                            ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
cd %pathname%
ren %begfile% %endfile%

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::Write output to a log file                                                                    ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
echo %date%_%time%  %pathname%   %begfile%      %endfile%>>C:\temp\mvsd_wtr_rename.log

Justin Derrick

  • IBM Content Manager OnDemand Consultant
  • Administrator
  • Hero Member
  • *****
  • Posts: 1552
  • CMOD Guru for hire...
    • View Profile
    • Tenacious Consulting
I'm totally impressed that this is your first post after registering.... Thanks for contrinuting to ODUG!

(And I thought Unix/Linux scripting for IBM CMOD was crazy looking...)

-JD.
#Install, #Educate, #Repair, #Upgrade, #Migrate, #Enhance, #Optimize.

IBM CMOD Professional Services: http://TenaciousConsulting.com
Call:  +1-866-533-7742  or  eMail:  jd@justinderrick.com
IBM CMOD Wiki:  https://CMOD.wiki/

Interests: #AIX #Linux #Multiplatforms #DB2 #TSM #SA #Performance #Security #Audits #Customizing #Availability #HA #DR #Training