Best Practices - Common Use
Managed Package Components Custom Use - Best Practices
PURPOSE
Smart CPQ managed package components are locked down by design by Salesforce.com and cannot therefore be modified or altered in the subscriber organizations on which they are deployed.
Regarding re-using managed package components or invoking functions of the package from within local implementations, the ability is either controlled by the owner of the package (we, Conga) as for Apex classes, or is out of control as for VisualForce pages, which can be invoked without restriction from outside a managed package. The purpose of this page is to specify for each type of component, which component or which part of a component, could be referenced or invoked from outside of the Smart CPQ managed package. These guidelines will help implementation teams, customers, or integrators to choose whether to reuse a package component for their needs or to develop the functionality on their own.
DEFAULT RULE
Unless listed below, none of the components of the Smart CPQ managed package can be re-used, referenced, or invoked from outside the package, whether it is through declarative setup (in Salesforce flows, console, etc.) or programmatic means. It is specifically true for VisualForce pages, VisualForce components, and Lightning components which access URLs can be referenced in external code to embed part of CPQ UI within a custom component. The VisualForce pages of the managed package are dedicated to operate within a specific context, specific devices and won't fit to any situation. For components that can be re-used or referenced by external code, such as Apex classes methods, the definition or the way to invoke the component can be modified without prior notice.
| COMPONENT TYPE | |
|---|---|
| Apex Class | Any method, any complex type declared as global and visible within subscriber's organization can be invoked by local implementations classes. Those methods are usually provided to ease custom integration of Smart CPQ product within Salesforce. |
| Static Resources | Images can be referenced without any restriction. CSS (cascading style sheets) or Java script libraries embedded into static resources can be reused with caution as they are subject to change without notice. Better to have a local copy of these components. |
| Custom Labels | Custom labels can be referenced but could be modified from one to next version of the package. Best is to use the translation workbench to make a local "copy" if you don't want the label to evolve between releases of the package. |
| Layouts Buttons Actions Links | It is better to clone a managed package layout to customize it rather than modifying an existing one. Some buttons are dedicated to the Classic UI, some others to the Lightning UI. Actions usually restrict the size of UI content produced by a VisualForce component. Ensure to embed the right buttons / actions in your custom layouts. |
| Custom objects Custom fields |
