After importing the input fields and augmenting them with the data from their lookup objects, the PS Cloud Analytics dataflow filters out non-relevant or repeated records.
You can use the dataflow editor in Analytics Studio to visualize the PS Cloud Analytics dataflow and its nodes. Alternatively, you can download the dataflow definition file which is a JSON file representing the dataflow and its logic. For more information on the dataflow editor and the dataflow definition file, see Configure the Dataflow in the Salesforce Help.
Dataflow Nodes
These are the main dataflow nodes in the Billings flow.
Dataflow Nodes Related to the Billings Dataset
Dataflow Node
Description
timecard_FILTER
Matches timecards that have the "Approved" status.
expense_FILTER
Matches expenses that are included in financials.
eva_FILTER
Matches estimates vs. actuals that have an assignment and a time period associated.
miscAdjustment_passThrough_FILTER
Matches miscellaneous adjustments that are included in financials and that have a transaction category field "Pass-Through Ready-to-Bill Revenue".
misc_adjustment_ready_to_bill__FILTER
Matches miscellaneous adjustments that are included in financials and that have a transaction category field "Ready-to-Bill Revenue".
milestone__FILTER
Categorizes the milestones by subtype. The filter logic is either:
(Actual) Matches a milestone if the actual date field has a value and the milestone is included in financials.
(Scheduled) Matches a milestone if the actual date field has no value and the milestone amount value is other than zero.
billing_first_level_project_FILTER
Ensures that only records associated with the top-level Project are included.
Budget_FILTER
Ensures that only budgets with the status "Approved" are included in the dataset. Budgets that have the "Draft", "Open", or "Rejected" status are discarded. The only budget types supported are:
Customer Purchase Order
Customer Purchase Order Change Request
Vendor Purchase Order
Vendor Purchase Order Change Request
Work Order
Work Order Change Request
The Type field from which these budget varieties are derived is renamed as "Subtype" in this filter node.
Calculated Fields
These are the fields calculated by the Billings flow.
Calculated Fields Created for the Billings Dataset
Field API Name
Description
Type
Identifies the base object that a billing has associated. The base object can be timecards, expenses, misc. adjustments, milestones, est vs. actuals, or budget.
Subtype
Identifies if a billing is actual, scheduled or budget.
BillingDate
This is the billing date time. It varies in function of the record type:
For Expenses, Misc. Adjustments, Milestones, Timecards, and Budgets, this is the bill date field.
For Estimates Vs. Actuals, this is the end date field.
EndDate
Depending on the base object this field can be:
For Misc. Adjustments and Budgets, this is the effective date field.
For Timecards, this is the timecard split end date field.
For Expenses, this is the expense date field.
For Estimates Vs. Actuals, this is the end date field.
For Milestones, if the subtype is actual the end date is the actual date field. If the subtype is scheduled the end date is the target date field.
TimePeriodType
Identifies the time period type of an estimates vs. actuals record.
ValueProjectExchangeRate
Depending on the base object this field can be:
For Expenses, Budgets, and Misc. Adjustments, this is the project currency exchange rate field of the transaction associated with the record.
For Timecards and Estimates Vs. Actuals, this is the project currency exchange rate field.
For Milestones, if the subtype is actual then this is the this is the project currency exchange rate field of the transaction associated with the record. If the subtype is scheduled then this is the project currency exchange rate field.
ValueAmount
Depending on the base object this field can be:
For Expenses, Misc. Adjustments, and Budgets, this is the amount field.
For Milestones. this is the milestone amount field.
For Timecards, this is the timecard split's total billable amount field.
For Estimates Vs. Actuals, when the scheduled bill rate is daily rate field is selected then this is the scheduled bill rate multiplied by estimated days field. Else this is the scheduled bill rate multiplied by estimated hours field.
For Budgets, Misc. Adjustments, and Expenses, this value is zero.
For Timecards, this is the total days worked field.
For Milestones, this is the billable days in financials field.
For Estimates Vs. Actuals, this is the estimated days field.
ValueTotalHours
Depending on the base object this field can be:
For Misc. Adjustments, and Expenses, this value is zero.
For Timecards, this is the total hours field.
For Milestones, this is the billable hours in financials field.
For Estimates Vs. Actuals, this is the estimated hours field.
For Budgets, the dataflow follows the lookup relation between the budget and the project record and takes the value of the project's planned hours field.
ValueTotalBillableDays
When the ValueBillings calculated field is greater than zero then this field takes the value of the ValueTotalDays. Else ValueTotalBillableDays is zero.
ValueTotalBillableHours
When the ValueBillings calculated field is greater than zero then this field takes the value of the ValueTotalHours. Else ValueTotalBillableHours is zero.
HasFirstLevelProject
Identifies records with a top-level project associated.
ValueActualBillRateBillings
For records with the type timecard, milestone, or miscellaneous adjustment. If the subtype is "Actual" then this field takes the value of the ValueBillings calculated field. Else, ValueActualBillRateBillings is zero.
ValueScheduledBillRateBillings
For records with the type est vs. actuals or milestone. If the subtype is "Scheduled" then this field takes the value of the ValueBillings calculated field. Else, ValueScheduledBillRateBillings is zero.
ValueActualBillRateTotalHours
For records with the type timecard. If the subtype is "Actual" then this field takes the value of the ValueTotalHours calculated field. Else, is zero.
ValueActualBillRateTotalDays
For records with the type timecard. If the subtype is "Actual" then this field takes the value of the ValueTotalDays calculated field. Else, ValueActualBillRateTotalHours is zero.
ValueScheduledBillRateTotalHours
For records with the type est vs. actuals. If the subtype is "Scheduled" then this field takes the value of the ValueTotalHours calculated field. Else, ValueScheduledBillRateTotalHours is zero.
ValueScheduledBillRateTotalDays
For records with the type est vs. actuals. If the subtype is "Scheduled" then this field takes the value of the ValueTotalDays calculated field. Else, ValueScheduledBillRateTotalDays is zero.