This project is a reference implementation to convert Assets with a Subscription Management (SM) data-shape to conform to the Revenue Lifecycle Management (RLM) data-shape so that Assets can continue to be amended, renewed, and/or cancelled in RLM.
- Active Subscription Management license
- Active Revenue Lifecycle Management license
- CalmSObjectAccess organization permission enabled
-
“Access Lifecycle-Managed Assets” user permission enabled
-
Read access for the following entities and fields:
- Asset Action
- AssetId
- CategoryEnum
- Order Item
- UnitPrice
- NetUnitPrice
- ListPrice
- TotalPrice
- TotalLineAmount
- ObligatedAmount
- PeriodBoundary
- PeriodBoundaryDay
- PeriodBoundaryStartMonth
- PricingTermCount
- PricebookEntryId
- ProductSellingModelId
- ProrationPolicyId
- TaxTreatmentId
- Order Item Relationship
- AssociatedOrderItemPricing
- AssociatedQuantScaleMethod
- Product Related Component
- ParentProductId
- ChildProductId
- Asset Action
-
Update access for the following entities and fields:
- Asset Action Source
- UnitPrice
- NetUnitPrice
- ListPrice
- TotalPrice
- TotalLineAmount
- ObligatedAmount
- PeriodBoundary
- PeriodBoundaryDay
- PeriodBoundaryStartMonth
- PricingTermCount
- PricebookEntryId
- ProductSellingModelId
- ProrationPolicyId
- TaxTreatmentId
- Asset Relationship
- RelatedAssetPricing
- RelatedAssetQtyScaleMethod
- ProductRelatedComponentId
- Asset Action Source
- 0 <
assetIds.size()
<= 200 - If the Id of an Asset belonging to a collection of bundled Assets is included in the input to
assetIds
, then the Ids of ALL Assets in the associated bundle must be included inassetIds
.
- Users can change or disable the validations associated with the above access checks and limits by making changes to their functions within the
SmToRlmAssetConverter
andSmToRlmAssetConverterUtil
classes. Without these validations in place, Salesforce platform and Apex execution limits are still enforced and users must ensure their use of the SmToRlmAssetConversionTool is in compliance. - While the project performs some validations of the input data before converting the Assets, these validations aren't exhaustive, and they offer no guarantee of success. Additionally, as with any data migration, there’s a potential for data corruption resulting from the conversion, and validations offer no guarantee against this. We strongly advise users to extensively test their use of the SmToRlmAssetConversionTool in sandbox environments and ensure the operation executes as expected before using it live in production. This project is not a replacement for a thorough testing process that the users should pursue.
Now that you’ve created a Salesforce DX project, what’s next? Here are some documentation resources to get you started.
Do you want to deploy a set of changes, or create a self-contained application? Choose a development model.
The sfdx-project.json
file contains useful configuration information for your project. See Salesforce DX Project Configuration in the Salesforce DX Developer Guide for details about this file.
- Salesforce Extensions Documentation
- Salesforce CLI Setup Guide
- Salesforce DX Developer Guide
- Salesforce CLI Command Reference
- Open Execute anonymous window on developer console.
- Replace
<List of Asset Ids>
with a List of Asset Ids you want to convert and call the convert function. For example:
SmToRlmAssetConverter converter = new SmToRlmAssetConverter();
converter.assetIds = <List of Asset Ids>;
converter.convert();
- Open debug logs to verify result of execution.
- On success, check the fields on Asset Action Sources and Asset Relationships of converted Assets to verify fields are correctly populated.