function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
BidhanBidhan 

Designing a Managed package with unmanged components

I am designing an application on force.com platform. The application includes


    • A base/core Object Model.
    • An application extension or template
    • Base object model is built using custom object, Relationships, a few  custom fields, apex classes, trigger, etc. Once installed, the base-object mode can not be modified by our customers. We intend to enhance and support the core-model through new releases and patch releases.

       

      The application extension is built on top of the base object model. Basically, extends the base object model by adding additional custom fields, reports, etc, The application extension is like a template that the customer can modify by adding additional attribute, deleting attribute, adding required fields, etc.  Our application code doesn’t depend on it hence, this as long as the core doesn’t change, we don’t care.

       

      How can I build a package that includes both the core-object model and extensions to the core.  The idea is that the user can install the package, make changes to the extension. Subsequently, the user can upgrade the core-object model when we make new releases.

       

      One approach I can think of is to develop 2 packages: A Managed  pacakge that includes the core-model Then create an un-managed packaged that extends the core model. The customer first has to install the core and then install the extension. But, that’s a 2 step process  . Ideally; I would have liked to do in one step and don;t want the user to go trhough addtional steps to install my app.

       

      I would appreciate any help /guidance.

       

       

    Ispita_NavatarIspita_Navatar

    In salesforce the only way of preventing end user from modifying the schema of the product or spplication is to release a managed package.Conversely one can modify the contents of an application or product if it is unmanaged. hence if your product comprises of 2 sub-dividions one which cannot be altered and the other which does not have such restrictions then the only option that you have as of now ishaving

    1. a managed package- part that cannot be altered

    2. an unmamanaged package - fo the part that can be altered.

    Also remember standard objects(but custom fields in them can be) cannot be managed packaged so when you design your solution you can map the part that can be altered to the standard objects.

    Did this answer your question? If not, let me know what didn't work, or if so, please mark it solved.

    BidhanBidhan

    Ispita, Thanks!

    I build a simpel prototype and see how the packaing works out.