We need to limit access to tickets by affected service such that some users can see all ticket and other are locked out of specific affected services. I have implemented this with a Data Partition Constraint on View for Call_Req of NOT(affected_service.name IN('name1', name2'). This seems to work but had the unexpected consequence of also blocking access to tickets where affected service was not set.
I tried adding an or affected_service.name = NULL and got an error "AHD05800:Bad where clause. AHD03106:Where clause results in a Cartesian product".
Anyone have a suggestion that will not block empty affected services?
have you tried to add "OR affected_resource is NULL"?
reference to .name is not needed.
Thanks for the suggestion! The syntax below worked without error, but gave the same result; blocking the affected service tickets, but also blocking tickets without any affected service.
(NOT (affected_service.name IN('name1', 'name2')) or affected_service is NULL)
I assume you meant affected_service instead of affected_resource. I tried with affected_resource and that stopped blocking the affected services correctly.
If I execute the following command ( with a whereclause as suggested by cdtj )
bop_odump domsrvr cr "active=1 and ( not ( affected_service.name in ( 'name1', 'name2' )) or affected_service is null)" ref_num affected_service.name
I get tickets with and without an affected service, but none with an affected service equals to 'name1' or 'name2'.
Is this what you are looking for? Does it work for you in the same way? If so, I would wonder, that this would not work as a data partition view constraint. Did you relogin after changing the constraint?