Oracle Configurator build 12.1.3.31.9 has introduced a new flag for PROPERTY object - PUBLICATION ENABLED. This property indicates whether the property and its values should be copied to target publication instance during model publication or not. This is introduced mainly for performance reasons because in certain cases, properties in OCD are not required in published target model data. By default, new build sets this property to False for all properties stopping them being published to target instance. This is sudden change by Oracle in 31.9 build, which many customers are not aware of. This causes customers wonder by model not working correctly in target instance after publication and upgrade to 31.9. I have seen persons debugging a log around this for days finally to figure out properties are not copied in target instance. Thanks to Oracle that there exists a note that can help customer identify the issue quickly if anyone has searched metalink.
After Upgrading To Build 31.9, Unable to Access Properties in Published Models (Doc ID 2084634.1)
Let's discuss about scenarios when this flag should be enabled.
- Set Publication Enabled to True, when the property is used in UI or CX code. This means you are accessing property value in CX code OR have display/enable condition in UI based on property or have UI node caption based on property.
- Set Publication Enabled to False, when property is used only in CDL Rules like property based rules Or property is imported in Configurator from BOM model catalog/APC and not used anywhere. This is most likely the case and is major concern in publication process performance for customers who use large amount of attribute based classification (from APC or Catalog or OCD created) for rule. Whenever you generate logic, all logic rule details are translated to rule engine language and stored in cz_lce% tables. Hence, actual rule texts and rule data are not required for rule execution in target instance.
Oracle provided the script listed below that will enable the check box for all properties on a instance.
ReplyDelete--Verify that no records are found
SELECT * FROM cz_properties where deleted_flag = '0' and exists (select 1 from cz_rp_entries where deleted_flag = '0' and object_type = 'PRP') AND NOT user_str01 IS NULL;
--Enable flag for all properties
Update cz_properties set user_str01 = '1'
where deleted_flag = '0' and exists (select 1 from cz_rp_entries where deleted_flag = '0' and object_type = 'PRP');