Hello Chris,
I think I see now why you think you are not getting the complete expected results.
When I run this very simple code from a OPS/REXX program using the !OI command processor: :
/* REXX */
address AOF "LIST =NOSTATS"
if RC <> 0 then
do
say "Return Code was: " RC
return
end
do while QUEUED() > 0
parse pull lne
say lne
end
The results are:
OPC0996I OPC3906I CCLXRULB
OPC0996I OPC3906I CCLXRULM
OPC0996I OPC3906I CCLXRULS
OPC0996I OPC3906I CUSTOM
OPC0996I OPC3906I STATEMAN
Now, when I use your code from the same !OI command processor environment the OPC3906I portion of the output above is striped off:
Address AOF "List =NOSTATS"
i=0
Do While Queued() > 0
Parse Pull msgid rset
If substr(msgid,4,4) = 3906 Then Do
i=i+1
ruleset.i=rset
say 'ruleset.i = ' ruleset.i
End
End
OPC0996I ruleset.i = CCLXRULB
OPC0996I ruleset.i = CCLXRULM
OPC0996I ruleset.i = CCLXRULS
OPC0996I ruleset.i = CUSTOM
OPC0996I ruleset.i = STATEMAN
Also I see the 'ruleset.i =' string that is part of the say statement.
In the output you are getting from the TOD rule only the rule sets are listed:
OPS3906I CMD
OPS3906I MSG
OPS3906I REQ
OPS3906I SEC
OPS3906I SSM
OPS3906I TEST
OPS3906I TOD
And I do too only get the rule set names form the TOD rule as well:
OPC3906I CCLXRULB
OPC3906I CCLXRULM
OPC3906I CCLXRULS
OPC3906I CUSTOM
OPC3906I STATEMAN
Are you questioning the missing 'ruleset.i =' in the say statement when your code runs from the TOD rule?
Or the message OPS3906I that shows you have 7 rule sets defined in this system is the output you are expecting?
Regards, Cesar