Automation of the End-to-End Process for Recognizing Revenue against Revenue Schedules

The RevenueScheduleAutomationService is a global API that allows you to automate the end-to-end process for recognizing revenue against revenue schedules, from generating the schedules through to creating FinancialForce Accounting journals.

Warning:

Before you start using this automation, Revenue Management must be set up to generate revenue schedules and recognize revenue against revenue schedules. For setup information, see Setting up Revenue Management, Additional Setup for Generating Revenue Schedules, and Enable Recognize Revenue Schedules.

If you intend creating FinancialForce Accounting journals from the revenue recognition transactions, the RRT To Journal Integrations must also be enabled and working. For more information, see RRT to Journal Integrations Overview and Summarized RRT to Journal Integration Overview.

The processes that can be started from the RevenueScheduleAutomationService are:

Sequential Order

Process

1 Delete Schedules Where Source Unavailable
2 Generate Schedules
3 Recognize Schedules
4 Summarize Transactions
5 Create Journals

The processes always run in the sequential order shown in the table above, but you can specify which process to start from and which process to finish at. For example, if you have a customization that posts revenue recognition transactions to a third party accounting system you might want the automation service to only run processes 1-3. Each process in the chain creates a process run record containing log information. Depending on the configuration parameters used, each individual process might send an email notification upon completion.

The configuration parameters you can specify for the RevenueScheduleAutomationService are:

Config Parameter

Description

firstProcess The process to start from. For example, if firstProcess = Generate and lastProcess = Summarize, then Generate, Recognize and Summarize will be run in that order.
lastProcess The process to finish at. For example, if firstProcess = Generate and lastProcess = Summarize, then Generate, Recognize and Summarize will be run in that order.
summarizeTransactions

Note: If this option is not specified it defaults to true.

When the Summarize process is included in the processes to run:

  • If this option is true, revenue recognition transactions are summarized
  • If this option is false, revenue recognition transactions are not summarized. This allows running processes before and after Summarize together in one API call while skipping the summarization process itself.

When the CreateJournals process is included in the processes to run:

  • If this option is true, journals are created from revenue transaction summaries.
  • If this option is false, journals are created from revenue transaction lines.
shouldSendEmailAtEndOfProcesses

Note: If this option is not specified it defaults to true.

When true, email notifications are sent after each individual process.

When false, no email notifications at all are sent as a result of the API call.

For more information about using the RevenueScheduleAutomationService, see the Revenue Management API Developer Reference which is listed in Permission Sets and Other Technical Documentation.

Warning:

The automation will not run if a revenue schedule process is already running. We recommend you restrict permissions for deleting, generating, synchronizing, and recognizing revenue schedules to a small number of users who are aware that they must not to run these processes while the automation is running.

Delete Schedules Where Source Unavailable

The asynchronous Delete Schedules Where Source Unavailable process ensures that obsolete revenue schedules do not accumulate and affect your data.

A source record might be unavailable for any of the following reasons:

  • The source record has been deleted.
  • The source record is no longer marked as active for revenue recognition.
  • The source record has had its recognition template removed.

For more information about what happens when you run this process, see Deleting Obsolete Revenue Schedules.

Generate Schedules

The asynchronous Generate Revenue Schedules process creates or updates revenue schedules for all valid source records in the org.

The process generates a revenue schedule per source record, with separate revenue schedule lines for each period that the source record covers. If a revenue schedule already exists for a source record, the process updates it to reflect the latest source record details.

If Revenue Management is set up for both revenue and cost, revenue schedules are generated with both revenue and cost amounts.

Recognize Schedules

The asynchronous Recognize Schedules process recognizes revenue on all valid revenue schedule lines up to the current period. For example, if the process runs in February, revenue up to and including January is recognized. The recognition period in this example is set to January. The recognition date is set to the date the process runs.

If Revenue Management is set up for both revenue and cost, the process amortizes cost in addition to recognizing revenue.

Note:

The Recognize Schedules process creates revenue recognition transactions and commits them. There is no opportunity to review the "In Progress" transactions before they are committed.

Summarize Transactions

The asynchronous Summarize Transactions process only summarizes a revenue recognition transaction if it meets all the following criteria:

  • The transaction was created by the Recognize Schedules process.
  • The transaction's Recognized Date is within the last 30 days.
  • The transaction's status is "Committed".
  • The transaction is not already summarized.

The batch size is controlled by the Schedules Transaction Summary Batch Size field in the Revenue Management Batch Settings custom setting.

For information about how transaction lines are grouped for summarization, see Revenue Transaction Summaries.

Note:

The Summarized RRT to Journal Integration must be enabled and working if you intend creating journals from revenue transaction summaries rather than from revenue recognition transaction lines.

Create Journals

The asynchronous Create Journals process creates FinancialForce Accounting journals from a revenue recognition transaction if it meets all the following criteria:

  • The transaction's status is "Committed".
  • The transaction has a valid Grouped By value.
  • The transaction is not already linked to a journal.

Separate journals are created for revenue and cost amounts. The journals are created with the status "In Progress".

The batch size is controlled by the Schedules Create Journals Batch Size field in the Revenue Management Batch Settings custom setting.

Note:

Journals are created from revenue transaction summaries or from revenue recognition transaction lines depending on the summarizeTransactions configuration parameter. If this parameter is not specified it defaults to true and journals are created from revenue transaction summaries. The relevant RRT To Journal Integrations must be enabled and working for journals to be created successfully.