Found good blog post
http://erpschools.com/articles/make-dff-segment-readonly-through-security-rules
Just copying it here for my records -
http://erpschools.com/articles/make-dff-segment-readonly-through-security-rules
Just copying it here for my records -
Goal: Define new DFF segment in Transactions Form and make it read only to Receivables Manager responsibility. All other responsibilities will have access to enter and edit the values and Receivables Manager will have access to only read but not edit and enter the value.
You cannot make DFF segment read-only through personalization but you can restrict users from changing the value in DFF segment through personalization by displaying error message when they try to save the form.
Steps:
1. Define New Segment for DFF in Transactions forms.
2. Define Security Rules
3. Test it.
1. Define New Segment for DFF in Transactions forms.
2. Define Security Rules
3. Test it.
If you are not familiar with enabling the DFF (Descriptive FlexFields) click here
Define new SEGMENT for DFF in Transactions Form
Navigation: Receivables Manager >> Transactions >> Transactions


click on the box which is enclosed in []

So we have already one segment Available.
DFF that I have in this form is
Title | Transaction Information |
Application | Receivables |
And it has one segment enabled and displayed.
Navigation: Application Developer >> Flexfield >> Descriptive >> Segments


Enter F11 and then fill the information
: Receivables
Title: Transaction Information
Do CTL + F11

uncheck the “Freeze Flexfield Definition”

Click OK
Now the screen looks like this.


Add New Segment by clicking + Icon on the toolbar and enter the following information
Number | 10 |
Name | DEMO |
Window Prompt | ERP DEMO |
Column | ATTRIBUTE11 |
Value Set: erp_demo (click here to see how to define value set)

Click open

Check Security Enabled Flag and uncheck the Required flag
save (CTL+S)
Close it.
Close Segments Screen.
Check the Freeze Flexfield Definition check box

Click OK.
Save it.


Click OK.
Close this Form.
Define Security Rules
Navigation: System Administrator Responsibility >> Security >> Responsibility >> ValueSet >> Define

Click to open

Enter existing value set name erp_demo which we assigned to DFF segment that we defined above.

Click Find

Enter the following information
Name | erpschools |
Description | erpschools.com |
Message | erpschools.com demo |
In Security Rile Elements
Type | Exclude |
From | A |
To | D |
Add New record and enter
Type | Include |
From | Don’t fill anything |
To | Don’t fill anything |

Save it.
Click on Assign Button to restrict this functionality to a specific responsibility. This is optional.

Enter the following information
Application | Receivables |
Responsibility | Receivables Manager |
Name | erpschools |

Save and close.
Testing:
To test the changes Navigate to any Receivables Responsibility like US Receivables Manager which has access to Transactions form and query up any record.
Then navigate to DFF and enter some value for ERP DEMO and save the record.
Come back to Receivables Manager responsibility and query up the same transaction which you saved above.

Define New ValueSet:

To assign values to this value set follow the navigation path below and do accordingly
Navigation: Application Developer >> Flexfield >> Descriptive >> Values

