Best practices of process sharing

The main reason for using process sharing is that you can use the same shared process in many project areas and then changes to the shared process are reflected in the consumer projects. The propagation of changes to consumers in shared process differentiates a shared process from a process template. Avoid situations where customization in the consumer prevents the consumer from getting all changes that are made to the shared process.

Adding roles to the consumer is safe because the roles from the shared process and the consumer are modifying permissions and operation behavior, which are both included in the effective process. Modifying permissions is safe because the effective process is a merge of the permissions from the shared process and permissions in the consumer. Operation behaviors work the same way as permissions.

If you modify configuration data in the consuming project area, updates in the shared process are not propagated. If the same configuration data section is modified first in the consumer and then later in the shared process, the consuming project area does not get updates in the shared process. If the consumer and shared process modify different configuration data sections, no problems occur. If the configuration data in the consumer project area is never customized, then updates to the shared process are always reflected in the consumer, except for any permissions that are overridden in the consumer. If configuration data is customized in the consumer project area, the situation is more complex.

Consider the following suggestions:

  • Use the project area that provides the process only for that purpose. Do not use it for production work.
  • Grant access to the shared project to Everyone to allow all users to see it. This permission allows members of consumer projects to see the shared process without requiring you to make them members of the project area that provides the process.
  • Remove friend entries for servers that are no longer used. Friend entries are used when users look for process providers and when process changes are communicated across servers. Stale friend entries can cause the search for process providers to take longer and confuse users.
  • When you use process sharing, create the consumer project area by using an Unconfigured Process template. Any other template overrides the process from the shared producer project area.
  • When you use process sharing, do not customize the configuration data in the consumer unless it is necessary to do so.
  • Complete all process customization in the provider before you complete any process customization in the consumer.
  • Initially, make any customizations of configuration data in the consumer by using the user interface instead of the XML. Using the user interface gives you the full set of data for the process element.
  • To minimize duplication, which breaks sharing, customize as few process elements as possible on the consumer.
  • The provider configuration data that is accessed in the Attribute Customization page in the user interface is referenced from other process elements. If possible, customize the provider configuration data in the shared process project area.
  • The enumeration configuration data that is accessed in the Enumeration user interface is referenced from other process elements. If possible, customize the enumeration configuration data in the shared process project area.
  • In the Workflow and Approval Tracking user interface, you can modify workflow and approvalTracking on the consumer without impacting other process configuration data.
  • In the Editor Presentations user interface, you can modify presentations on the consumer without impacting other process configuration data.
  • Use the history feature to view changes in the XML source of the provider and consumer to ensure that they are synchronized.
  • When you update process configuration in the provider, manually merge those changes into any customized process configuration XML source in the consumer.
  • If the consumer’s process is not functional for a process element, you can remove the configuration-data node from the consumer’s XML configuration source. Try other options to resolve the problem because after you remove the node, you must rebuild your customizations for that process element.