If you haven’t noticed, Salesforce removed the “Manage Licenses” link from the CPQ Installed Package listing. Here’s an easy Visualforce page that shows these license assignments. The intention here is to enhance this page to allow for assigning/unassigning licenses.
Class
public with sharing class CPQPSLAssignments {
public List<PermissionSetLicenseAssign> CPQPSLRecords {get; set;}
public boolean hasCPQ {get; set;}
public List<PermissionSetLicenseAssign> AAPSLRecords {get; set;}
public boolean hasAA {get; set;}
public CPQPSLAssignments() {
CPQPSLRecords = [select Assignee.Id, Assignee.Name, PermissionSetLicense.MasterLabel from PermissionSetLicenseAssign where PermissionSetLicense.MasterLabel in ('Salesforce CPQ License')];
hasCPQ = CPQPSLRecords.size() > 0;
AAPSLRecords = [select Assignee.Id, Assignee.Name, PermissionSetLicense.MasterLabel from PermissionSetLicenseAssign where PermissionSetLicense.MasterLabel in ('Salesforce CPQ AA License')];
hasAA = AAPSLRecords.size() > 0;
}
}
Visualforce Page
<apex:page controller="CPQPSLAssignments">
<apex:pageBlock title="CPQ PSL Assignments">
<apex:pageBlockTable value="{!CPQPSLRecords}" var="Record" rendered="{!hasCPQ}">
<apex:column >
<apex:facet name="header">Actions</apex:facet>
<a href='/udd/Licensing/assignPermissionSetLicense.apexp?userId={!Record.Assignee.Id}' target="_blank">Edit</a>
</apex:column>
<apex:column >
<apex:facet name="header">Account Name</apex:facet>
<a href='/{!Record.Assignee.Id}?noredirect=1&isUserEntityOverride=1' target="_blank"><apex:outputText value="{!Record.Assignee.Name}"/></a>
</apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
<apex:pageBlock title="Advanced Approvals PSL Assignments" rendered="{!hasAA}">
<apex:pageBlockTable value="{!AAPSLRecords}" var="Record">
<apex:column >
<apex:facet name="header">Actions</apex:facet>
<a href='/udd/Licensing/assignPermissionSetLicense.apexp?userId={!Record.Assignee.Id}' target="_blank">Edit</a>
</apex:column>
<apex:column >
<apex:facet name="header">Account Name</apex:facet>
<a href='/{!Record.Assignee.Id}?noredirect=1&isUserEntityOverride=1' target="_blank"><apex:outputText value="{!Record.Assignee.Name}"/></a>
</apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:page>
Comments