Here we go - mostly taken from OPMSLS:
/* REXX */
function = 'COPYN' /* Or COPYN for a var node list */
destNodes = 'FDI1 FDI2'
varName = 'GLOBALO.NOTIFY.SI_COPY_TEST'
do i = 1 to words(destNodes)
destNode = word(destNodes, i)
select
/* Copy a variable and subnodes */
when function = 'COPYN' Then Do
/* Get all local vars */
rtvl = OPSVALUE(varName,'E') /* Check is stem has value */
if OPSVALUE(varName,'E') = 'N' then varval = ''
else
varval = OPSVALUE(varName,'O')
x = opscledq
nodeCount = opsvalue(varName,'S')
do k = 1 to nodeCount
parse pull subnode.k
snv.k = opsvalue(subnode.k,'O')
end
/*-------------------------------------------------------------------*/
/* Copy Data to new system */
/*--+----1----+----2----+----3----+----4----+----5----+----6----+----*/
address OPSCTL "MSF DEFAULT SYSTEM("destNode")"
if varval <> '' Then /* update if stem has value */
RTVL = OPSVALUE(varName,'U',varval)
do j = 1 to nodeCount
RTVL = OPSVALUE(subnode.j,'U',snv.j)
end
SC = nodeCount+1 'Variables Copied'
address OPSCTL "MSF DEFAULT SYSTEM(*)" /* back to local */
end /*when*/
/*-------------------------------------------------------------------*/
/* GLV COPY VARIABLE */
/*--+----1----+----2----+----3----+----4----+----5----+----6----+----*/
when function = 'COPY' Then do
varval = OPSVALUE(varName,'O')
address OPSCTL "MSF DEFAULT SYSTEM("destNode")"
RTVL = OPSVALUE(varName,'U',varval)
address OPSCTL "MSF DEFAULT SYSTEM(*)" /* back to local */
end /*when*/
end /* select */
end /* do nodes */
Just needs a few teaks to paramaterise the node, function and destination nodes, maybe add a rename function and then set it up to run in batch.