Our company has four sites; each of the sites shares the same EU_ROLES permissions.
I wonder if there is a way to set up one of the sites to be read-only access to IFS or read-only to Inventory Transactions, Customer Order, WO without me recreating all the permission set manually?
I will appreciate your advice.
Thanks, JL
Best answer by VivekBhandiwad
Hi JL
Please find some of my notes, and if this helps , then use the same.
As indicated by @ShawnBerk, there is no direct possible way, to make one site as read only, while being a user who is allowed transactions in the others. The same is feasible for Finance Only Users at a company level ( multi company scenario) , but not at Site level.
This may be possible in the future versions, where Oracle Row Level data security is being pursued as feature , probably similar to History Logging setup . We know it is being discussed, but not yet a full fledged solution, and is not available currently.
You can expand on the event options presented by @ShawnBerk with an additional tweak.
Here are some steps
Create a EU ROLE, with complete Read Only rights. ( see the tips below to create one, for full IFS ). Since you have specific components in mind ( like WO, CO, Inventory etc, I recommend using the “Permission sets by Component” tab when creating the permission sets. The naming convention can be ABC_EU_ROLE_Limited_read, where ABC is the site.
Connect this role , to the users, to whom you want to give the Read_only access for specific Site
Expand the Event, and limit it to users, to whom this Permission set is connected as follows
----recopied from Shawn text, and added a few additional items -----
BEGIN
IF ( ('&NEW:CONTRACT' = 'ABC') and (‘&New:User_id’ in (‘select user_id from ifsapp.end_user_role where End_user_role = ‘ABC_EU_ROLE_Limited_read’)) THEN
Error_SYS.Record_General('CustomerOrder', 'CORAMODERR1: This site is read only, changes are not allowed.');
END IF;
END;
PS: Query will need some more cleanup.
This approach only gives a bit more control over the users, using permission sets, and not by naming each user, in the query.
Refer
How to grant permission sets - for read only.
Create a permission set.
Go to details
Go to Permission sets by Component
Select each component and RMB, and grant Query All - see screenshot.
Ensure there is a review on the Database objects, and Activities list, where essential, to ensure error free usage .
No, there is no way to make one site read only when the person has access to do transactions in any other site. One of the many sought after features that isn’t present in IFS. You can only control it via monitoring history. You could create a custom logical unit to validate who can do transactions or not in that site, but you would need an event for each different table or module you want to control.
I need to freeze transaction “Read-Only” Inventory Transactions, Customer Order, and WO, except for HR and Finance. I need to apply the read-only to the entire employees that belong to one of the sites. It will be painful to go employee by employee and manually create each EU view only role.
Is there a way to apply a global view only EU Permission to a SITE?
If you need read only access for handful of objects, one thing you can do is that create event actions on Modify for each object and give an error when someone tries to modify an object.
Eg event action for Customer order:
BEGINIF ('&NEW:CONTRACT' = 'ABC') THEN
Error_SYS.Record_General('CustomerOrder', 'CORAMODERR1: This site is read only, changes are not allowed.');ENDIF;END;
Please find some of my notes, and if this helps , then use the same.
As indicated by @ShawnBerk, there is no direct possible way, to make one site as read only, while being a user who is allowed transactions in the others. The same is feasible for Finance Only Users at a company level ( multi company scenario) , but not at Site level.
This may be possible in the future versions, where Oracle Row Level data security is being pursued as feature , probably similar to History Logging setup . We know it is being discussed, but not yet a full fledged solution, and is not available currently.
You can expand on the event options presented by @ShawnBerk with an additional tweak.
Here are some steps
Create a EU ROLE, with complete Read Only rights. ( see the tips below to create one, for full IFS ). Since you have specific components in mind ( like WO, CO, Inventory etc, I recommend using the “Permission sets by Component” tab when creating the permission sets. The naming convention can be ABC_EU_ROLE_Limited_read, where ABC is the site.
Connect this role , to the users, to whom you want to give the Read_only access for specific Site
Expand the Event, and limit it to users, to whom this Permission set is connected as follows
----recopied from Shawn text, and added a few additional items -----
BEGIN
IF ( ('&NEW:CONTRACT' = 'ABC') and (‘&New:User_id’ in (‘select user_id from ifsapp.end_user_role where End_user_role = ‘ABC_EU_ROLE_Limited_read’)) THEN
Error_SYS.Record_General('CustomerOrder', 'CORAMODERR1: This site is read only, changes are not allowed.');
END IF;
END;
PS: Query will need some more cleanup.
This approach only gives a bit more control over the users, using permission sets, and not by naming each user, in the query.
Refer
How to grant permission sets - for read only.
Create a permission set.
Go to details
Go to Permission sets by Component
Select each component and RMB, and grant Query All - see screenshot.
Ensure there is a review on the Database objects, and Activities list, where essential, to ensure error free usage .
We use 3 different kinds of cookies. You can choose which cookies you want to accept. We need basic cookies to make this site work, therefore these are the minimum you can select. Learn more about our cookies.