You cannot be 'selective' via some if/then/else logic within the )PROC section of a rule that determines if a message is to be removed from the NOOPSLOG. Within a NOOPSLOG rule, if you need to have a certain message or messages displayed, you can reissue with Address WTO and OPTION(C). Option(C) will cause the reissued message to not be processed by MSG rules. So for your specific case:
)MSG ASN* NOOPSLOG
)Proc
if msg.id = 'ASN0109I' | msg.id = 'ASN1045I' then
do
parse var msg.text msgid msgtxt
address WTO
"Msgid("msgid") Text('"msgtxt"') Option(C)"
end
Note: Option(C) only works with single line WTOs . Meaning, if you attempted to reissue a MLWTO (using TEXTVAR keyword of Address WTO), OPTION(C) is not honored. So in your case if ASN0109I and ASN1045I are true MLWTO's, your rule above will only log the primary line of the message. If you wanted to reissue the complete MLWTO, you have to at least create a new MSGID so the rule would not refire. Also, in your particular case, it seems you just want some type of audit for the event that triggered the SSM CS=UP rule. Keep in mind that you can also use the OPS7914T SSM audit message (SSMAUDIT parm = YES) to determine when a resource was updated. Sure, no triggering event in the log if NOOPSLOGing, but at least an indication of what rule and when the event occurred via OPS7914T.