Why we receive a RC(16) executing the XVEXTRAC sysview command from a REXX?

Document ID : KB000015830
Last Modified Date : 14/02/2018
Show Technical Document Details
Introduction:

CA Sysview is supplied with an application programming interface (API) that can be used in TSO/E REXX to obtain information from CA SYSVIEW displays.
 
TOD Rules in OPS/MVS can be used to invoke REXX programs and these REXX can invoke the SYSVIEW API via an
 ADDRESS SYSVIEWE command.
 
The XVEXTRAC sysview command is used to extract data from SYSVIEW  into REXX EXEC variables.                                             
 
For example, it is possible to use the Sysview API in a REXX  and use the output of the ACTIVITY command to create a variable
 (otyp in the following sample) with the value of the TYPE field.
 
This can be done with the following code:
 
l = 0
Address Sysviewe
'C(ACTIVITY *,TSU;SORT LASTTRANS D)'
'C(XVEXTRAC DATA TYPE otyp.)'
.. More REXX code ..

Question:

Why when I use the XVEXTRAC in a REXX and this REXX is called in a TOD rule (using Address OSF "OI P(Rexxcode)" ) I get a RC(16) ?
 
In a trace:
 
OPS0997T *-* 10: 'C(XVEXTRAC DATA TYPE otyp.)'
OPS0997T >L> C(XVEXTRAC DATA TYPE otyp.)
OPS0997T +++ RC(16)

Answer:

When XVEXTRAC is executed in REXX in a TOD rule it is executed under the security authorizations of the OPS user so the OPS/MVS
 user must be authorized in Sysview Security to execute the  XVEXTRAC command. If the user is not authorized to use the XVEXTRAC
 command the REXX returns a RC(16).