Your approach is correct and aligns with Semarchy xDM best practices for conditional authoring.
How It Works
Authoring Mode in Semarchy forms can be set dynamically using SemQL.
By using your SemQL expression in the Authoring Mode property, you are conditionally setting the field to 'force-read-only' when:
MasterRecord.FDN_ContactName is not null AND
MasterRecord.PublisherID = 'RAS'
In all other cases, the field is set to 'auto' (editable if allowed by workflow/role).
CASE WHEN MasterRecord.FDN_ContactName IS NOT NULL AND MasterRecord.PublisherID = 'RAS' THEN 'force-read-only' ELSE 'auto' END
Result
If ContactName is populated from PublisherID = 'RAS':
The field is read-only in the UI—users cannot edit it.
If not:
The field is editable as usual.
Make sure the Authoring Mode property is set on the correct field in the correct form (editing form for Customer).
Test with multiple scenarios to confirm the behavior:
ContactName populated with PublisherID = 'RAS'
ContactName populated with other PublisherIDs
ContactName null
Kousik DAS
Hi,
I have a requirement as below:
(Data Model : Customer : Fuzzy Entity- connected to Contact Entity( Basic Entity- used as reference data for Customer)
If ContactName field is populated from backend through PublisherID = 'RAS' then no should be able to author that in MDM UI ( No Direct authoring).
But if that is not the case Data Steward should be able to author that from MDM.
Proposed Solution:
In Editing Form, for the FDN_Contact field > General Section> Authoring Mode properties, I have created below SEMQL which is syntactically correct.
--------------------------
Case when MasterRecord.FDN_ContactName is NOT NULL and MasterRecord.PublisherID ='RAS'
THEN 'force-read-only'
else 'auto'
end
--------------------------------------------
Can anyone confirm if this approach will fulfill my requirement or I need to take different approach.
Please Suggest.
Regards,
Kousik