• e.lestrade
  • NEWBIE
  • 0 Points
  • Member since 2011

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 4
    Questions
  • 6
    Replies

I've created a managed package with a custom field (on User) and I want that, when an organization installs the package, all users have access to this custom field (more precisely, I want this custom field to be queriable through the API).

 

For now I ask the admin of each organization to set the Field Level Security for this field to "Visible" for all profiles, but it's too much work for me (and them).

 

I guess that a solution would be to include FLS for this field in the package. This question was handled in this thread but JonP's answer did not work for me.

 

I tried the solution described by JonP. I've added a custom profile with the right FLS for this field in my package (I've built the package in a Developper Edition), then I've installed it in a Enterprise Edition TestOrg, but the wizard did not appear. Furthermore when I look to the content of the package, on publisher side, there is a line for my custom profile with the following data:

  Type: Profile Settings

  Included By: User Selected

  Available in Versions: N/A



I guess the last point (N/A) may be a problem but I am not sure as, in the third message of this thread, "chess" had the same properties for its package but he apparently saw the wizard (although he was confused about the expected behaviour).

 

So my questions would be:

  • Is JonP answer outdated?
  • If not, can someone be more specific about what should be done in the package to make this wizard appear?
  • More generally speaking, is there any another way to ensure that, by default, all users have access to a custom field included in a package?

Other related thread : http://boards.developerforce.com/t5/Apex-Code-Development/Bundle-user-profile-in-managed-package/td-p/191786

 

We are publishing a package that (among other things) gives access to our external webapplication through a custom web tab. The license of this package is handled by LMA.

As it's easy to duplicate the custom web tab included in our package, our external webapp must check if the user has a licence for our package.

It's easy to check if user's organization has a valid license because this information is available in our own Salesforce account: We use the API to dynamically query our Salesforce Organisation and check if user's organization has a valid license.

It seems not so easy to check if the given user is a licensed user, as this information is not in our Salesforce account. This information is available in the user's organization but we don't know how to directly retrieve this information from the outside (through the API).

For now, we included a Custom Field in the package and our external webapp checks if the user has access to this Custom Field (LMA prevents users who are not licensed from having access to this field). This technique needs the Field Level Security (FLS) for this custom field to be set to visible for all profiles (otherwise we can not say if a user does not  have access to this field because of LMA or because of FLS), which causes some problems, as I've explained in this thread.

We are looking for alternate ways.

We've found one possible way, as APEX ignores FLS (according to this thread), we could check the accessibility of this field with APEX (hoping that LMA will prevent APEX access for non licensed users) and exposing a webservice that will give this information to our external webserver. However this can work only with Entreprise Edition or more, as Profesional Edition or less can not expose webservices, even if you are an aloha app.

Is anyone seeing another way to check if a given user is licensed?

When a user who has installed a package, uninstall it, the license is flagged as "unsinstall".

 

If he installs the package again, the license is reseted. The original expiration date and the seat count seems to be lost.

 

That leads to two disturbing consequences:

  • A user can use indefinitely a package in a trial period by installing it and uninstalling it regularly
  • We can not use LMA as a reliable back-office for license management as data on a real customer can be lost. If a user uninstall and install the package again, and comes to me asking the restoration of his license, I can not do it, even manually, because I have no data on his license anymore.

Is there something I misunderstood?

 

On AppExchange, I've linked two organizations (two developer edition accounts).

 

Let's say I defined the first organization, O1, as the APO for the second one, O2.

 

Now I wan to unlink them but:

  • on the O2 board there is no button to cancel the link
  • on the O1 board, there is a button to link a new organization, a list of linked organizations (O2), but no button to remove an existing link

Note: There is no public listing.

 

How can I unlink these organizations or, in other words, how can I change APO for O2 ?

I've created a managed package with a custom field (on User) and I want that, when an organization installs the package, all users have access to this custom field (more precisely, I want this custom field to be queriable through the API).

 

For now I ask the admin of each organization to set the Field Level Security for this field to "Visible" for all profiles, but it's too much work for me (and them).

 

I guess that a solution would be to include FLS for this field in the package. This question was handled in this thread but JonP's answer did not work for me.

 

I tried the solution described by JonP. I've added a custom profile with the right FLS for this field in my package (I've built the package in a Developper Edition), then I've installed it in a Enterprise Edition TestOrg, but the wizard did not appear. Furthermore when I look to the content of the package, on publisher side, there is a line for my custom profile with the following data:

  Type: Profile Settings

  Included By: User Selected

  Available in Versions: N/A



I guess the last point (N/A) may be a problem but I am not sure as, in the third message of this thread, "chess" had the same properties for its package but he apparently saw the wizard (although he was confused about the expected behaviour).

 

So my questions would be:

  • Is JonP answer outdated?
  • If not, can someone be more specific about what should be done in the package to make this wizard appear?
  • More generally speaking, is there any another way to ensure that, by default, all users have access to a custom field included in a package?

Other related thread : http://boards.developerforce.com/t5/Apex-Code-Development/Bundle-user-profile-in-managed-package/td-p/191786

 

When a user who has installed a package, uninstall it, the license is flagged as "unsinstall".

 

If he installs the package again, the license is reseted. The original expiration date and the seat count seems to be lost.

 

That leads to two disturbing consequences:

  • A user can use indefinitely a package in a trial period by installing it and uninstalling it regularly
  • We can not use LMA as a reliable back-office for license management as data on a real customer can be lost. If a user uninstall and install the package again, and comes to me asking the restoration of his license, I can not do it, even manually, because I have no data on his license anymore.

Is there something I misunderstood?

 

Hi All,

Thank you for taking the time to read my question.

 

I have a salesprocess for my opportunity stage values. I have the businessprocess id, and can query it via the api. However, I can not find a way to filter the picklist values for return to a visualforce page to return only those that are part of the business process.

I have seen lots of questions on the forums related to this, but NOT ONE has a satisfactory answer. The businessprocess object DOES NOT return picklist values, nor does it look like it should. There was one post about the metadata, but that seems to be a different api that I can't access via my custom controller.

 

Can anyone help?

Thank you!

  • February 04, 2011
  • Like
  • 0

The Web Services API Developers Guide says the following...

 

Use the BusinessProcess object to offer different subsets of picklist values to different users for the LeadStatus, CaseStatus, and OpportunityStage fields. Similar to a RecordType, a BusinessProcess identifies the type of a row in a Case, Lead, or Opportunity and implies a subset of picklist values for these three fields. The values for the remaining picklist fields are driven off of RecordType.

 

What it doesn't give is an EXAMPLE of HOW we can use the BusinessProcess object to determine the subset of picklist values. Can I get some guidence on this one?

Hi

 

I created a couple of customer fields on sandbox for two profiles. Then I created a unmanage package with them. After I installed the package on another sandbox, I found the field-level security  were not set correctly. So I have to reset them manually. Is there any solution for this?

 

 

Thanks

  • May 11, 2009
  • Like
  • 0