+ Start a Discussion
markciramarkcira 

Managed Package Upgrade Problem

Hi All:  We have a managed app published on the AppExchange, and have recently created a new version where the only change made is that our Custom Tab uses the FULL WIDTH of the framed page versus the 2 column layout and the framed page length has been changed to 1300 pixels from 600.  We also changed the color of the tab.

 

I have confirmed these changes are inside the new package version we uploaded, and when I install the upgrade I see a notice that the Custom tab is the single component which will get upgraded....BUT...

 

PROBLEM:  Any SF instance which upgrades to our new version does NOT get the full width page, but instead gets the 2 column layout.   Interestingly, they do get the change to 1300 pixel page length from 600, but the change in the full width versus 2 column layout does NOT occur.  They also do not get the tab color change.

 

I'm going crazy with this!  Why can't we upgrade existing installs to switch from a 2 column layout to a full width layout??  Anyone have any insights?

 

Thanks in advance for any help!

 

Mark Cira @ PrintSf.com 

Message Edited by markcira on 01-04-2010 10:35 AM
Best Answer chosen by Admin (Salesforce Developers) 
A_SmithA_Smith

You can update page layouts using the metadata API, but this requires you to host some code outside of force.com as the metadata API can only be called from client applications.  

 

We're looking into ways to provide admins with a quick merge and deploy tool for existing page layouts.  This will probably be a while out though based on our current roadmap.  

 

Another trick some partners have used is to supply a new page layouts and then just ask admins to change the page layout assignments for their users.  It's a little easier.  

 

Thanks,

 

All Answers

A_SmithA_Smith

Hi Mark,

 

Can you log a case with the details and post the case number?  That should work if this is a managed package, so be interested to see what's wrong.

 

Thanks, 

markciramarkcira
Thanks for having a look, Adam. I have logged a case # 03205487.  Any help is greatly appreciated. - Mark
markciramarkcira

Also, Adam, the new package version is 

https://login.salesforce.com/?startURL=%2Fpackaging%2FinstallPackage.apexp%3Fp0%3D04t700000007vT3

 

The old version, still pubic on the AppExchange, is:

https://login.salesforce.com/?startURL=%2Fpackaging%2FinstallPackage.apexp%3Fp0%3D04t700000007txZ 

 

Thanks, Mark 

jhartfieldjhartfield

Hello,

 

I believe we are having a similar problem.  We developed some custom objects and were able to successfully package page layouts for the objects which were assigned to user profiles.  Great!  This software is deployed and working fine.

 

But now we have added some fields and moved around some fields on those same layout objects.  We made another package to upgrade the old one, but once the new one is installed we noticed that the layouts do not change.  They are the same as before. 

 

The only workaround we have is to make new layouts in our development environment and include those in the package.  Then after the package is installed, the users have to go and delete the old layout, and select to replace it with the new one. Ouch!

 

Is this a bug that needs to be logged or is there some trick to force the page layouts to be overwritten?

 

Thanks,

Jason

Message Edited by jhartfield on 01-29-2010 04:48 PM
A_SmithA_Smith

Hi Jason,

 

This is actually working as designed.  It follows the same model as when salesforce does a release, we don't auto update page layouts for fear that the chnages will impact existing users.  They must be manually updated by the admin.

 

Are you distributing this package to multiple customers or only one org?

 

Thanks, 

JPClark2JPClark2

Hi Andrew,

I work with Jason.

We are distributing to multiple ORGs. By the time we deploy this next version, we will need to upgrade close to 100 ORGs. We would like to push our page layouts to all users. There are new fields that need to be displayed and used for the new features added in this release cycle.

 

We will continue making updates to the application. The currently deployed version is version 1. We don't want to convert everything to VF pages. We want all of our customers to get the lastest version.

 

What is the best way to do this?

 

Jeff Clark

jhartfieldjhartfield

Andrew, thanks for the response - I see what you are saying.  One of the reasons we are using the standard pages rather than VisualForce pages is because then we can give our customers more flexibility.  So, yes, not upgrading pages would then be  feature so we don't blow away their modifications.  Understand 100%.

 

Yet, many of our customers will not be modifying their pages and will just want to get the new layouts automatically...

 

Is there some way we can programatically set the page layout?  My thinking is that we could have our own custom 'Setup' area that would allow them to, say, click a button that would update all of their page layouts for them without having to manually do it for each object.  I poked around but have not found any such 'Page Layout' or similar object in apex.

A_SmithA_Smith

You can update page layouts using the metadata API, but this requires you to host some code outside of force.com as the metadata API can only be called from client applications.  

 

We're looking into ways to provide admins with a quick merge and deploy tool for existing page layouts.  This will probably be a while out though based on our current roadmap.  

 

Another trick some partners have used is to supply a new page layouts and then just ask admins to change the page layout assignments for their users.  It's a little easier.  

 

Thanks,

 

This was selected as the best answer
jhartfieldjhartfield

Andrew: Thanks - we were thinking about building a tool that uses the Metadata API as you described and instruct customers to run it to assist in their org upgrades.  Good to have the confirmation of the solution from you though!

 

Cheers,

Jason