global static ffrr.RevenueScheduleService.DeleteResult deleteOrphanedSchedules(Set<Id> scheduleIds)
Processes List of ffrr__RevenueSchedule__c Id for deletion. If there are no ffrr__RevenueScheduleLine__c marked complete for the schedule and if there is no source, the source does not have a template mapped, or the source is marked inactive then the schedule will be deleted. If there are ffrr__RevenueScheduleLine__c marked complete for the schedule then all ffrr__RevenueScheduleLine__c that are not complete will be deleted and the ffrr__RevenueSchedule__c will be marked source unavailable.
Input Parameters
Name
Type
Description
scheduleIds
Set<Id>
Set of ffrr__RevenueScheduleLine__c.Id to process for deletion
Return Value
DeleteResult for the deleteOrphanedSchedules process
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//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 synchronously delete schedules
// that are missing source records, and return the DeleteResult object.
// If a schedule has no source record but contains recognized schedule lines, then only
// the unrecognized lines are deleted.
// Retrieve the Ids of the Recognition Schedules that will be used as the recognition schedule Ids from which to delete orphaned Recognition Schedules
List<ffrr__RevenueSchedule__c> revenueSchedules = [SELECT Id FROM ffrr__RevenueSchedule__c WHERE ffrr__Account__r.Name = 'FF'];
Processes ffrr__RevenueSchedule__c for deletion If there are no ffrr__RevenueScheduleLine__c marked complete for the schedule then the schedule will be deleted if there is no source, the source does not have a template mapped, or the source is marked inactive. If there are ffrr__RevenueScheduleLine__c marked complete for the schedule then ffrr__RevenueScheduleLine__c that are not recognized will be deleted.
Return Value
Id of the executing ffrr__RevenueManagementBackgroundProcess__c record.
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//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 delete schedules
// that are missing source records, and return the Async Apex Job Id.
// If a schedule has no source record but contains recognized schedule lines, then only
// the unrecognized lines are deleted.
// Get the Id of Async Apex Job generating the Recognition Schedules
Id jobId = ffrr.RevenueScheduleService.deleteOrphanedSchedulesAsync();
// Get AsyncApexJob status
List<AsyncApexJob> asyncJob = [SELECT Id, Status FROM AsyncApexJob WHERE Id = :jobId];
global static List<Id> generate(Set<Id> sourceRecordIds)
Takes a set of source record Id and generates and inserts ffrr__RevenueSchedule__c and associated ffrr__RevenueScheduleLine__c. The ffrr__RevenueSchedule__c and ffrr__RevenueScheduleLine__c are populated with information from the source record, 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 a source record and its type.
Input Parameters
Name
Type
Description
sourceRecordIds
Set<Id>
Set of source record Id from which to generate ffrr__RevenueSchedule__c.
Return Value
List of ffrr__RevenueSchedule__c.Id generated for sourceRecordIds.
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//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 Recognition Schedule for each
// source record Id passed in to the service method, and return a list of associated Recognition 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 Recognition Schedules
List<ffrr__PerformanceObligation__c> sourceRecords = [SELECT Id FROM ffrr__PerformanceObligation__c WHERE ffrr__AccountName__c = 'FF'];
global static Map<Id, ffrr.RevenueScheduleService.GenerateResult> generate(Set<Id> sourceRecordIds, ffrr.RevenueScheduleService.GenerateConfig config)
Takes a set of source record Id and generates and inserts or updates ffrr__RevenueSchedule__c and associated ffrr__RevenueScheduleLine__c. The ffrr__RevenueSchedule__c and ffrr__RevenueScheduleLine__c are populated with information from the source record, 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 a source record and its type.
Input Parameters
Name
Type
Description
sourceRecordIds
Set<Id>
Set of source record Id from which to generate ffrr__RevenueSchedule__c.
Generates and inserts or updates ffrr__RevenueRecognitionSchedule__c and associated ffrr__RevenueRecognitionScheduleLine__c asynchronously for all valid source records available in the Org. The ffrr__RevenueSchedule__c and ffrr__RevenueScheduleLine__c are populated with information from the source record, 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 a source record, and its type.
Return Value
Id of the executing ffrr__RevenueManagementBackgroundProcess__c record.
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//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 Recognition 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 Recognition Schedules
Id batchJobId = ffrr.RevenueScheduleService.generateAsync();
// Get AsyncApexJob status
List<AsyncApexJob> batchJob = [SELECT Id, Status FROM AsyncApexJob WHERE Id = :batchJobId];
global static Id generateAsync(Set<Id> sourceRecordIds)
Takes a set of source record Id and generates and inserts or updates ffrr__RevenueSchedule__c and associated ffrr__RevenueScheduleLine__c asynchronously. The ffrr__RevenueSchedule__c and ffrr__RevenueScheduleLine__c are populated with information from the source record, 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 a source record and its type.
Input Parameters
Name
Type
Description
sourceRecordIds
Set<Id>
Set of source record Id from which to generate ffrr__RevenueSchedule__c.
Return Value
Id of the executing ffrr__RevenueManagementBackgroundProcess__c record.
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//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 Recognition 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 Recognition Schedules
List<ffrr__PerformanceObligation__c> sourceRecords = [SELECT Id FROM ffrr__PerformanceObligation__c WHERE ffrr__AccountName__c = 'FF'];
Information about how the recognition process should be recorded.
Return Value
RecognizeResult for the recognized ffrr__RevenueScheduleLine__c
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//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 Recognition Transaction for each
// Recognition Schedule Line Id passed in to the service method.
// The recognize method is called with a RecognitionInformation object that sets the recognition date.
// Retrieve the Ids of the Recognition Schedule Lines that will be used to create Recognition Transactions from.
Map<Id, ffrr__RevenueScheduleLine__c> scheduleLinesByIds = newMap<Id, ffrr__RevenueScheduleLine__c>([SELECT Id, Name FROM ffrr__RevenueScheduleLine__c]);
global static Id recognizeAsync(ffrr.RevenueScheduleService.RecognitionFilters recognitionFilters, ffrr.RevenueScheduleService.RecognitionInformation recognitionInformation)
Recognizes revenue for the ffrr__RevenueScheduleLine__c described by recognitionFilters.
Information about how the recognition process should be recorded.
Return Value
Id of the executing ffrr__RevenueManagementBackgroundProcess__c record.
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//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 Recognition Transaction with associated lines for each
// source record type and revenue stream based on the Recognition Schedule Line Id passed in to the service method.
// If the provided ffrr.RecognitionFilters configuration object has no fromDate all valid records from start of time will be retrieved
// If the provided ffrr.RecognitionFilters configuration object has no untilDate all valid records until end of time will be retrieved
// If the provided ffrr.RecognitionFilters configuration object has no revenueScheduleLineIds all valid records will be retrieved in conjunction of the fromDate and untilDate
// Retrieve the Ids of the Recognition Schedule Lines that will be used to create Recognition Transactions from.
Map<Id, ffrr__RevenueScheduleLine__c> scheduleLinesByIds = newMap<Id, ffrr__RevenueScheduleLine__c>([SELECT Id, Name FROM ffrr__RevenueScheduleLine__c]);
global static ffrr.RevenueScheduleService.SynchronizeResult synchronize(Set<Id> sourceRecordIds)
Synchronizes ffrr__RevenueSchedule__c with their associated source records If a source record has become unavailable and there are no ffrr__RevenueScheduleLine__c marked complete for the schedule, then the ffrr__RevenueSchedule__c and all its ffrr__RevenueScheduleLine__c will be deleted. A source record can become unavailable if it has been deleted, if it does not have a template, or if it is marked inactive. If a source record has become unavailable and there are ffrr__RevenueScheduleLine__c marked complete for the schedule, then any ffrr__RevenueScheduleLine__c that are not recognized will be deleted. Complete and Opening Balance lines persist. If a source record has changed then the associated ffrr__RevenueSchedule__c and its ffrr__RevenueScheduleLine__c will be updated to reflect the changes.
Input Parameters
Name
Type
Description
sourceRecordIds
Set<Id>
Ids of the source records to synchronize with ffrr__RevenueSchedule__c where applicable.
Return Value
SynchronizeResult for the processed records.
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//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 synchronize Recognition Schedules for each
// source record Id passed in to the service method, and return a SynchronizeResult object
// containing information about how the process completed
// Retrieve the Ids of the Performance Obligations that will be used as the source Ids from which to synchronize Recognition Schedules
List<ffrr__PerformanceObligation__c> sourceRecords = [SELECT Id FROM ffrr__PerformanceObligation__c WHERE ffrr__AccountName__c = 'FF'];
global static ffrr.RevenueScheduleService.SynchronizeResult synchronize(Set<Id> sourceRecordIds, ffrr.RevenueScheduleService.SynchronizeConfig config)
Synchronizes ffrr__RevenueSchedule__c with their associated source records If a source record has become unavailable and there are no ffrr__RevenueScheduleLine__c marked complete for the schedule, then the ffrr__RevenueSchedule__c and all its ffrr__RevenueScheduleLine__c will be deleted. A source record can become unavailable if it has been deleted, if it does not have a template, or if it is marked inactive. If a source record has become unavailable and there are ffrr__RevenueScheduleLine__c marked complete for the schedule, then any ffrr__RevenueScheduleLine__c that are not recognized will be deleted. Complete and Opening Balance lines persist. If a source record has changed then the associated ffrr__RevenueSchedule__c and its ffrr__RevenueScheduleLine__c will be updated to reflect the changes.
Input Parameters
Name
Type
Description
sourceRecordIds
Set<Id>
Ids of the source records to synchronize with ffrr__RevenueSchedule__c where applicable.
// 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.
Identifies the information to be recognized by a recognize method. Adding multiple filters, such as line Ids and an until date, will join the filter together with an AND. This means only Recognition Schedule Lines with Ids in Id set AND date =< untilDate will be processed.
Sample Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//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 recognizing of Recognition Schedules should be performed
// Sets the optional recognition schedule line Ids to be taken into consideration when recognizing schedules
// If passed in only those schedule lines will be recognized, otherwise all valid schedule lines will be recognized
Map<Id, ffrr__RevenueScheduleLine__c> scheduleLinesByIds = newMap<Id, ffrr__RevenueScheduleLine__c>([SELECT Id, Name FROM ffrr__RevenueScheduleLine__c]);
global void setRevenueScheduleLineIds(Set<Id> revenueScheduleLineIds)
Sets the optional recognition schedule line Ids to be taken into consideration when recognizing schedules. If any schedules are passed to this method then only those schedule lines will be recognized, otherwise all valid schedule lines will be recognized.
global void setRevenueScheduleLineIds(List<Id> revenueScheduleLineIds)
Sets the optional recognition schedule line Ids to be taken into consideration when recognizing schedules. If any schedules are passed to this method then only those schedule lines will be recognized, otherwise all valid schedule lines will be recognized.
// Set the allOrNone configuration to false to continue with schedule synchronization process even if one or more of the schedules could not be synchronized
config.allOrNone = false;
Properties
Name
Type
Description
allOrNone
Boolean
Boolean to specify whether synchronize 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.