28
votes
Accepted
Extension packages & Licence Management in 2GP
Thanks for the question! I've created an answer in three parts, each one meant to address a specific question you've asked.
PART ONE: How to Create Second-Generation Extension Packages
PART TWO: How ...
11
votes
How the LMA(License Management Application) works in Salesforce?
The LMA has documentation here. There's a lot of reading material to go over, but basically it is pretty straight forward. You request an installation link to the package, you install the package into ...
8
votes
Accepted
Understanding App Exchange LeadSource in the LMA
Great observations. I've encountered these are two variations:
someone who logs into the AppExchange and clicks Get It Now will have:
lead source SFDC IN|PackageName
appropriate campaign membership
...
5
votes
Accepted
How to implement per user Licenses with LMA for an AppExchange App
Generally speaking, there's nothing "special" you need to do (in most cases). Once you switch to a per-license model, salesforce will automatically restrict access to all components in your package ...
5
votes
Allocate (deallocate) managed package licenses to users via Apex
I know it is marked as an Answer because probably at that time this function wasn't yet devised by Salesforce, I'm adding the link for anyone coming to this question like I did today :-) ...
...
5
votes
Understanding App Exchange LeadSource in the LMA
I've recently tested for all the cases dealing with Leads coming from the AppExchange (SFDC-XX) and Leads coming from an actual Package installation.
As expected, it's pretty confusing at times.
...
5
votes
Accepted
What happens when I reduce Seats for a license in LMA
All currently assigned users retain access to the application until they are deactivated by the Administrator. No further licenses can be assigned to other users until the License Count reaches a ...
5
votes
Accepted
Use FMA Features for per-user licensing
In salesforce, access is controlled through Permission sets.
LMO org can assign how many feature-specific licenses are assigned using an FMA Integer parameter,
Currently there is no standard ...
5
votes
License Management Application (LMA) in scratch org
As long as you have the package ID, you can:
sfdx force:package:install --package 04t... --targetusername scratchOrgAlias
If you don't have the package ID, you can't use this command.
You can get ...
5
votes
Extension packages & Licence Management in 2GP
2GP managed packages only appear in the LMA after security review has been passed (as you have pondered). (Note that, as an aside, without the security review being passed it is actually impossible to ...
4
votes
Accepted
Turning off features using an extension package
We have used the following technique for a similar situation.
We have added a custom field to the License object in our LMA org and added a Force.com site (so public, meaning no authentication is ...
4
votes
Access to debug logs in managed package
If you can, it's much better to use the License Management App application to access the debug logs from a managed package installed in a client org.
You'll find limited usage for a custom object ...
4
votes
Don’t install the LMA in the Developer Edition org where you created a managed package
Install the LMA in your production org. This is necessary because the LMA will create leads for you as your clients install or try out your app. If you put this in your developer org, you may run out ...
3
votes
Access to debug logs in managed package
Should you need a custom logging class for your managed package?
Generally speaking, no. Some ISVs do decide to do this to avoid the complications of subscriber logging (you have to submit a case, ...
3
votes
Accepted
No subscribers under Subscriber Organizations tab in license management app (LMA)
If you go to the Package in the LMA there is a "Refresh Licenses" button. Press that and then wait 24 hours for all the Subscriber information to be refreshed.
Otherwise you need to wait for the ...
3
votes
Granting the "Debug Apex" permission for the Apex Debugger as an ISV Partner
The required permission isn't called "Debug Apex" as it currently appears in the docs. Rather it is
Permission Name: View and Debug Managed Apex
Description: View the Apex code in your packages, ...
3
votes
Accepted
LMA: Get a list of all Subscribers with version installed
This managed package application (namespace sfLma) includes conventional SObjects that you can access programmatically and see in the normal setup UI or in the Schema Builder:
So you can write Apex ...
3
votes
Salesforce LMA - License object
As far as I know this is fine. The warning is really that if you have something, anything, that prevents the license record from saving you end up losing that license record.
However if you're ...
3
votes
Check managed app installation using PartnerWSDl
You can use the Metadata API (just import that WSDL separately), login with the Partner WSDL, assign the endpoint/session ID to the Metadata API binding, then call listMetadata from the Metadata API. ...
3
votes
Accepted
Managed package license checks for users
How can I check license for a set of users other than current user?
Use UserPackageLicense:
SELECT UserId FROM UserPackageLicense WHERE PackageLicense.NamespacePrefix = 'your_prefix'
I'm aware ...
2
votes
Understanding App Exchange LeadSource in the LMA
I am assuming in your description that Lead 1 and Lead 2 are actually the same installer. This is the typical scenario, where both an SFDC IN|PackageName and a Package Install lead are created. The ...
2
votes
Accepted
Revenue sharing for ISVforce
Yes, it is mandatory to use the COA. It is used for two things:
For OEM partners the app is for provisioning the underlying salesforce.com licenses as well as revenue sharing
For ISVforce partners ...
2
votes
Accepted
How do I get an ISV business org?
When your app is approved and passed security review, you can submit a case to have your ISV business org provisioned, or your current org upgraded to two full licenses, or two additional licenses ...
2
votes
Accepted
Changing the Duration of the License Management App Trial
You can do that - open a case and request this from Salesforce support.
2
votes
Accepted
Publishing on appExchange
See Publish Your First App with AppExchange Checkout. It lists all the steps necessary to publish an app to the app exchange, including going through the required security review. There are lots of ...
2
votes
Access to debug logs in managed package
You cannot limit access to the object aside from the local standard OWD and sharing settings.
And even at that logging will be limited to your specific text. Any errors logged via getMessage, ...
2
votes
Accepted
Managed package licensing
A license allows the currently running user to use an app. Any user can be referenced normally (e.g. a custom lookup to a user), but they will be unable to query or modify the data that points to ...
2
votes
Accepted
Do installing a Managed Package (listed in AppExchange) via Salesforce CLI, create a License & Lead in package developer's LMA org?
Yes, Installing a package into a scratch org WILL create a license record in the LMA and a Lead Record.
The Lead name will be User User. I not not have a current one to check the org Status on the ...
2
votes
Minimal Salesforce License to use LMA and Subscriber Support
I don't think there's an explicit document that states this for sure, but checking a few different type of profiles based on license types, it appears that the Log in to Subscriber Org permission can ...
2
votes
Accepted
Get NamespacePrefix for a given Package Id (in org with LMA app)
You can use the Tooling API to query SubscriberPackage, e.g.
$ force query -t "SELECT NamespacePrefix FROM SubscriberPackage WHERE Id = '033f40000001ZCXAA2'"
NamespacePrefix
-----------------
osfb
...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
lma × 85managed-package × 34
appexchange × 16
licenses × 16
isv × 15
apex × 8
subscriber × 6
fma × 6
lmo × 6
grant-login-access × 5
feature-management × 5
trigger × 4
leads × 4
scratch-org × 3
partner × 3
beta-managed-package × 3
managed-extension × 3
packagelicense × 3
cma × 3
api × 2
customsetting × 2
debugging × 2
security-review × 2
namespace × 2
package-install × 2