Revenue Management API Developer Reference

ffrr.RevenueScheduleService

global with sharing class RevenueScheduleService

contains methods for revenue schedule operations.

Methods

generate

global static List<Id> generate(Set<Id> sourceRecordIds)

Takes a set of input source recordIds and generates and inserts multiple ffrr__RevenueRecognitionSchedule__c and multiple associated ffrr__RevenueRecognitionScheduleLine__c. The schedules and lines are populated with information from the source records, as defined by the associated ffrr__Settings__c, using the calculation type from the associated ffrr__Template__c.
Note: The appropriate ffrr__Settings__c and ffrr__Template__c must be set up for the source records, and the source record types.

Input Parameters

Name Type Description
sourceRecordIds Set<Id> Ids of the source records to generate the ffrr__RevenueSchedule__c records from.

Return Value

The Ids of the created ffrr__RevenueSchedule__c records.

Sample Code

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

// In this example the Revenue Schedule Service is used to create a Revenue Schedule for each
// source record Id passed in to the service method, and return a list of associated Revenue Schedule Ids
// If any of the sources are not set up for revenue recognition then no schedules will be generated.

// Retrieve the Ids of the Performance Obligations that will be used as the source Ids from which to generate Revenue Schedules
List<ffrr__PerformanceObligation__c> sourceRecords = [SELECT Id FROM ffrr__PerformanceObligation__c WHERE ffrr__AccountName__c = 'FF'];
Set<Id> sourceRecordIds = new Set<Id>();

for( ffrr__PerformanceObligation__c sourceRecord : sourceRecords )
{
    sourceRecordIds.add(sourceRecord.Id);
}

// Get the List of Revenue Schedule Ids that have been generated by this service
List<Id> revenueScheduleIds = ffrr.RevenueScheduleService.generate(sourceRecordIds);

generate

global static Map<Id, ffrr.RevenueScheduleService.GenerateResult> generate(Set<Id> sourceRecordIds, ffrr.RevenueScheduleService.GenerateConfig config)

Takes a set of input source recordIds and a configuration and generates and inserts multiple ffrr__RevenueRecognitionSchedule__c and multiple associated ffrr__RevenueRecognitionScheduleLine__c. The schedules and lines are populated with information from the source records, as defined by the associated ffrr__Settings__c, using the calculation type from the associated ffrr__Template__c.
Note: The appropriate ffrr__Settings__c and ffrr__Template__c must be set up for the source records, and the source record types.

Input Parameters

Name Type Description
sourceRecordIds Set<Id> Ids of the source records to generate the ffrr__RevenueSchedule__c records from.
config ffrr.RevenueScheduleService.GenerateConfig GenerateConfig used to specify how the generate process behaves, specifically if ffrr__RevenueSchedule__c generation stops on errors.

Return Value

The Ids of the created ffrr__RevenueSchedule__c records.

Sample Code

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

// In this example the Revenue Schedule Service is used to create a Revenue Schedule for each
// source record Id passed in to the service method, and return a map of source Ids to associated results.
// The generate method is called with a GenerateConfig object that sets the all or none parameter to false.
// If a source is not set up for revenue recognition then no schedules will be generated for it.
// If a source is set up for revenue recognition then a schedule will be generated for it.

// Retrieve the Ids of the Performance Obligations that will be used as the source Ids from which to generate Revenue Schedules
List<ffrr__PerformanceObligation__c> sourceRecords = [SELECT Id FROM ffrr__PerformanceObligation__c WHERE ffrr__AccountName__c = 'FF'];
Set<Id> sourceRecordIds = new Set<Id>();

for( ffrr__PerformanceObligation__c sourceRecord : sourceRecords )
{
    sourceRecordIds.add(sourceRecord.Id);
}

ffrr.RevenueScheduleService.GenerateConfig config = new ffrr.RevenueScheduleService.GenerateConfig();
config.allOrNone = false;

// Get the results that have been generated by this service
Map<Id, ffrr.RevenueScheduleService.GenerateResult> results = ffrr.RevenueScheduleService.generate(sourceRecordIds, config);

for(Id sourceId : results.keySet()) {
  ffrr.RevenueScheduleService.GenerateResult result = results.get(sourceId);
  // Log the Id of the source record for which this result is associated with
  System.debug('Source Record Id ' + result.sourceRecordId);
  // Log the Id of the schedule  that was generated
  System.debug('Schedule Id ' + result.scheduleId);
  // Log the status of the generate for this source record Id
  System.debug('Success ' + result.success);
  // Log any errors that were thrown
  for(String e : result.errors) {
    System.debug('error: ' + e);
  }
}

generateAsync

global static Id generateAsync()

Generates and inserts multiple ffrr__RevenueRecognitionSchedule__c and multiple associated ffrr__RevenueRecognitionScheduleLine__c asynchronously for all the valid objects available in the Org. The schedules and lines are populated with information from the source records, as defined by the associated ffrr__Settings__c, using the calculation type from the associated ffrr__Template__c.
Note: The appropriate ffrr__Settings__c and ffrr__Template__c must be set up for the source records, and the source record types.

Return Value

Id of the executing fferpcore__ProcessRun__c record.

Sample Code

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

// In this example the Revenue Schedule Service is used to asynchronously create a Revenue Schedule for each
// available source record in the org, and return the Async Apex Job Id.
// If a source is not set up for revenue recognition then no schedules will be generated for it.
// If a source is set up for revenue recognition then a schedule will be generated for it.

// Get the Id of Async Apex Job generating the Revenue Schedules
Id batchJobId = ffrr.RevenueScheduleService.generateAsync();

// Get AsyncApexJob status
List<AsyncApexJob> batchJob = [SELECT Id, Status FROM AsyncApexJob WHERE Id = :batchJobId];

generateAsync

global static Id generateAsync(Set<Id> sourceRecordIds)

Takes a set of input source recordIds and generates and inserts multiple ffrr__RevenueRecognitionSchedule__c and multiple associated ffrr__RevenueRecognitionScheduleLine__c asynchronously. The schedules and lines are populated with information from the source records, as defined by the associated ffrr__Settings__c, using the calculation type from the associated ffrr__Template__c.
Note: The appropriate ffrr__Settings__c and ffrr__Template__c must be set up for the source records, and the source record types.

Input Parameters

Name Type Description
sourceRecordIds Set<Id> Ids of the source records to generate the ffrr__RevenueSchedule__c records from.

Return Value

Id of the executing fferpcore__ProcessRun__c record.

Sample Code

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

// In this example the Revenue Schedule Service is used to asynchronously create a Revenue Schedule for each
// source record Id passed in to the service method, and return the Async Apex Job Id.
// If a source is not set up for revenue recognition then no schedules will be generated for it.
// If a source is set up for revenue recognition then a schedule will be generated for it.

// Retrieve the Ids of the Performance Obligations that will be used as the source Ids from which to generate Revenue Schedules
List<ffrr__PerformanceObligation__c> sourceRecords = [SELECT Id FROM ffrr__PerformanceObligation__c WHERE ffrr__AccountName__c = 'FF'];
Set<Id> sourceRecordIds = new Set<Id>();

for( ffrr__PerformanceObligation__c sourceRecord : sourceRecords )
{
    sourceRecordIds.add(sourceRecord.Id);
}

// Get the Id of Async Apex Job generating the Revenue Schedules
Id batchJobId = ffrr.RevenueScheduleService.generateAsync(sourceRecordIds);

// Get AsyncApexJob status
List<AsyncApexJob> batchJob = [SELECT Id, Status FROM AsyncApexJob WHERE Id = :batchJobId];

ffrr.RevenueScheduleService.GenerateConfig

global with sharing class GenerateConfig

class that contains the configuration to be used for generating schedules

Sample Code

//Note: This sample code is for demonstration purposes only. It is not intended for
//use in a production environment, is not guaranteed against defects or errors, and
//is in no way optimized or streamlined.

// Configure the way generate revenue schedules should be performed
ffrr.RevenueScheduleService.GenerateConfig config = new ffrr.RevenueScheduleService.GenerateConfig();

// Set the allOrNone configuration to false to continue with schedule generation process even if one or more of the schedules could not be created
config.allOrNone = false;

Properties

Name Type Description
allOrNone Boolean boolean to specify whether the generation should be all or none. If true when a record is invalid then all schedules will fail to be generated. If false, only valid records will cause a schedule to be generated. If unset defaults to true.

Methods

GenerateConfig

global GenerateConfig()

ffrr.RevenueScheduleService.GenerateResult

global with sharing class GenerateResult

class that contains the results given back from the generate method.

Properties

Name Type Description
sourceRecordId Id id of the source record associated with these results.
scheduleId Id id of the generated revenue schedule.
success Boolean boolean to indicate whether the revenue schedule was generated.
errors List<String> list of errors that occurred when attempting to generate the revenue schedule.
© Copyright 2009–2022 FinancialForce.com, inc. All rights reserved. Various trademarks held by their respective owners.